:root {
    --portal-accent: #2563eb;
    --portal-sidebar: #111827;
}

body {
    --lte-sidebar-width: 320px;
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

.app-sidebar {
    --bs-body-bg: var(--portal-sidebar);
}

.brand-mark {
    align-items: center;
    background: linear-gradient(135deg, #2563eb, #7c3aed);
    border-radius: .55rem;
    color: #fff;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    margin-right: .5rem;
    width: 2rem;
}

.small-box,
.card,
.info-box {
    border-radius: .65rem;
}

.metric-unit {
    font-size: 1rem;
    margin-left: .2rem;
}

.table code {
    white-space: nowrap;
}

.empty-state {
    padding: 2.5rem !important;
}

.assistant-messages {
    min-height: 21rem;
}

.one-time-secret code {
    display: block;
    overflow-wrap: anywhere;
    padding: .75rem;
}

.login-page {
    background:
        radial-gradient(circle at 20% 10%, rgba(37, 99, 235, .25), transparent 30%),
        radial-gradient(circle at 80% 80%, rgba(124, 58, 237, .2), transparent 30%),
        var(--bs-tertiary-bg);
}

.login-logo {
    letter-spacing: -.03em;
}

.status-dot {
    border-radius: 50%;
    display: inline-block;
    height: .65rem;
    margin-right: .35rem;
    width: .65rem;
}

.status-good {
    background: #16a34a;
}

.status-bad {
    background: #dc2626;
}

.management-section {
    scroll-margin-top: 1rem;
}

.form-hint {
    color: var(--bs-secondary-color);
    font-size: .8rem;
}

@media (max-width: 767.98px) {
    .app-content-header h3 {
        font-size: 1.25rem;
    }
}

/* Friendly browser error page ------------------------------------------------ */
.portal-error-page {
    background:
        radial-gradient(circle at 15% 15%, rgba(37, 99, 235, .18), transparent 32%),
        radial-gradient(circle at 86% 80%, rgba(124, 58, 237, .16), transparent 34%),
        var(--bs-tertiary-bg);
    min-height: 100vh;
}

.portal-error-shell {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 100vh;
    padding: 2rem 1rem;
}

.portal-error-card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1.5rem;
    display: grid;
    grid-template-columns: minmax(300px, .85fr) minmax(360px, 1.15fr);
    max-width: 1040px;
    overflow: hidden;
    width: 100%;
}

.portal-error-visual {
    align-items: center;
    background: linear-gradient(145deg, rgba(37, 99, 235, .08), rgba(124, 58, 237, .08));
    display: flex;
    justify-content: center;
    min-height: 520px;
    overflow: hidden;
    position: relative;
}

.portal-error-glow {
    animation: portal-error-pulse 3.4s ease-in-out infinite;
    background: radial-gradient(circle, rgba(37, 99, 235, .20), rgba(124, 58, 237, .04) 55%, transparent 72%);
    border-radius: 50%;
    height: 420px;
    position: absolute;
    width: 420px;
}

.portal-error-illustration {
    animation: portal-error-float 4.2s ease-in-out infinite;
    height: auto;
    max-width: 500px;
    position: relative;
    width: 88%;
    z-index: 1;
}

.portal-error-content {
    align-self: center;
    padding: 3rem;
}

.portal-error-brand {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    font-size: .9rem;
    font-weight: 600;
    gap: .25rem;
    margin-bottom: 1.75rem;
}

.portal-error-status {
    color: var(--portal-accent);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    margin-bottom: .8rem;
    text-transform: uppercase;
}

.portal-error-content h1 {
    font-size: clamp(2rem, 5vw, 3.35rem);
    font-weight: 750;
    letter-spacing: -.045em;
    line-height: 1.02;
    margin-bottom: 1rem;
}

.portal-error-message {
    color: var(--bs-secondary-color);
    font-size: 1.05rem;
    line-height: 1.7;
    margin-bottom: 1.5rem;
    max-width: 36rem;
}

.portal-error-reference {
    align-items: center;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: .9rem;
    padding: .85rem 1rem;
}

.portal-error-reference-label {
    color: var(--bs-secondary-color);
    display: block;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    margin-bottom: .2rem;
    text-transform: uppercase;
}

.portal-error-reference code {
    color: var(--bs-body-color);
    display: block;
    font-size: .86rem;
    overflow-wrap: anywhere;
}

.portal-error-help {
    color: var(--bs-secondary-color);
    font-size: .84rem;
    line-height: 1.55;
    margin-bottom: 1.75rem;
}

.portal-error-support {
    align-items: center;
    background: color-mix(in srgb, var(--bs-danger) 7%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-danger) 28%, var(--bs-border-color));
    border-radius: .9rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin: 1rem 0 1.25rem;
    padding: .9rem 1rem;
}

.portal-error-support > div {
    min-width: 0;
}

.portal-error-support .btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.portal-error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.portal-error-meta {
    border-top: 1px solid var(--bs-border-color-translucent);
    color: var(--bs-secondary-color);
    display: grid;
    font-size: .76rem;
    gap: .45rem;
    margin-top: 2rem;
    padding-top: 1rem;
}

@keyframes portal-error-float {
    0%, 100% { transform: translateY(0) rotate(-.3deg); }
    50% { transform: translateY(-12px) rotate(.5deg); }
}

@keyframes portal-error-pulse {
    0%, 100% { opacity: .65; transform: scale(.94); }
    50% { opacity: 1; transform: scale(1.04); }
}

@media (max-width: 820px) {
    .portal-error-card {
        grid-template-columns: 1fr;
        max-width: 620px;
    }

    .portal-error-visual {
        min-height: 280px;
    }

    .portal-error-illustration {
        max-width: 350px;
        width: 75%;
    }

    .portal-error-glow {
        height: 300px;
        width: 300px;
    }

    .portal-error-content {
        padding: 2rem;
    }
}

@media (max-width: 480px) {
    .portal-error-shell {
        padding: .75rem;
    }

    .portal-error-card {
        border-radius: 1rem;
    }

    .portal-error-visual {
        min-height: 220px;
    }

    .portal-error-content {
        padding: 1.5rem;
    }

    .portal-error-reference {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-error-reference .btn {
        width: 100%;
    }

    .portal-error-support {
        align-items: stretch;
        flex-direction: column;
    }

    .portal-error-support .btn,
    .portal-error-actions .btn {
        width: 100%;
    }
}


.dashboard-observability-cockpit {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dashboard-observability-tile {
    background: linear-gradient(180deg, rgba(255,255,255,.4), rgba(255,255,255,0)), var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .95rem;
    min-height: 7rem;
    padding: .95rem 1rem;
    box-shadow: 0 .45rem 1rem rgba(15,23,42,.04);
}
.dashboard-observability-value {
    font-size: 1.55rem;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    letter-spacing: -.04em;
    margin: .18rem 0;
}
.dashboard-rhythm-chart {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.dashboard-rhythm-cell {
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .45rem .35rem;
    text-align: center;
}
.dashboard-rhythm-cell small { color: var(--bs-secondary-color); font-size: .64rem; }
.dashboard-rhythm-cell span { font-size: .72rem; font-variant-numeric: tabular-nums; font-weight: 700; }
.dashboard-rhythm-stack {
    align-items: stretch;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 92%, var(--bs-border-color) 8%);
    border-radius: .45rem;
    display: flex;
    flex-direction: column;
    height: 4.5rem;
    overflow: hidden;
    width: 1.65rem;
}
.dashboard-rhythm-success { background: rgba(var(--bs-success-rgb), .85); }
.dashboard-rhythm-failure { background: rgba(var(--bs-danger-rgb), .85); }
.dashboard-rhythm-neutral { background: rgba(var(--bs-secondary-rgb), .15); flex: 1 1 auto; }
.dashboard-latency-grid { stroke: color-mix(in srgb, var(--bs-border-color) 72%, transparent); stroke-dasharray: 3 4; stroke-width: 1; }
.dashboard-latency-area { fill: rgba(var(--bs-warning-rgb), .12); }
.dashboard-latency-line { stroke: rgba(var(--bs-warning-rgb), .95); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.dashboard-latency-point { fill: var(--bs-body-bg); stroke: rgba(var(--bs-warning-rgb), .92); stroke-width: 2.2; }
.dashboard-latency-point.is-current { fill: rgba(var(--bs-danger-rgb), 1); stroke: rgba(var(--bs-danger-rgb), .35); stroke-width: 4.4; }
.dashboard-insight-grid {
    display: grid;
    gap: .85rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dashboard-insight-card {
    align-items: flex-start;
    background: linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,0)), color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-primary) 6%);
    border: 1px solid var(--bs-border-color);
    border-radius: .95rem;
    display: flex;
    gap: .8rem;
    min-height: 7rem;
    padding: .9rem;
}
.dashboard-insight-icon {
    align-items: center;
    border-radius: .85rem;
    box-shadow: 0 .45rem 1rem rgba(15,23,42,.08);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
}
.dashboard-insight-title { color: var(--bs-secondary-color); font-size: .73rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.dashboard-insight-value { font-size: 1.45rem; font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: -.04em; line-height: 1.1; margin: .15rem 0 .25rem; }
.dashboard-insight-copy { color: var(--bs-body-color); font-size: .84rem; }
@media (max-width: 1199.98px) {
    .dashboard-observability-cockpit,
    .dashboard-insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .dashboard-observability-cockpit,
    .dashboard-insight-grid { grid-template-columns: 1fr; }
    .dashboard-rhythm-chart { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .portal-error-glow,
    .portal-error-illustration {
        animation: none;
    }
}

/* Active navigation + async portal interactions ----------------------------- */
.sidebar-menu {
    min-width: 0;
    padding-inline: .2rem;
    width: 100%;
}

.sidebar-menu .nav-item {
    min-width: 0;
}

.sidebar-menu .nav-link {
    align-items: center;
    border-inline-start: 3px solid transparent;
    border-radius: .45rem;
    display: flex;
    gap: .55rem;
    margin: .12rem .35rem;
    min-width: 0;
    padding: .55rem .72rem;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease;
    width: auto;
}

.sidebar-menu .nav-link:hover {
    transform: none;
}

.sidebar-menu .nav-link > .nav-icon {
    flex: 0 0 1.25rem;
    margin: 0;
    max-width: 1.25rem;
    min-width: 1.25rem;
    width: 1.25rem;
}

.sidebar-menu .nav-link > p {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    gap: .35rem;
    margin: 0;
    min-width: 0;
    overflow: visible;
    padding-left: 0;
    text-overflow: clip;
    white-space: normal;
}

.sidebar-menu .nav-link > p > .nav-arrow {
    flex: 0 0 auto;
}

/* Keep labels, status badges and AdminLTE's absolutely-positioned tree arrow
   in separate layout lanes. Labels are allowed to wrap instead of being
   truncated, so the complete menu name remains visible while LIVE/Mock/PDF
   badges and tree chevrons keep their own non-overlapping space. */
.sidebar-menu .nav-link > p > .nav-label {
    display: block;
    flex: 1 1 auto;
    line-height: 1.25;
    min-width: 0;
    overflow: visible;
    overflow-wrap: break-word;
    text-overflow: clip;
    white-space: normal;
}

.sidebar-menu .nav-link > p > .badge,
.sidebar-menu .nav-link > p > .nav-meta {
    flex: 0 0 auto;
    margin-left: auto !important;
    max-width: 5.5rem;
}

.sidebar-menu .portal-nav-parent > p {
    /* AdminLTE positions .nav-arrow at right: 1rem. Reserve that space so the
       label never sits underneath the chevron. */
    padding-right: 1.65rem;
}

.sidebar-menu .portal-nav-parent > p > .nav-label {
    padding-right: .2rem;
}

.sidebar-menu .nav-treeview {
    margin: 0;
    padding-left: 0;
}

.sidebar-menu .nav-treeview > .nav-item > .nav-link {
    margin-left: .55rem;
    margin-right: .35rem;
    padding-left: .82rem;
}

.sidebar-menu .nav-treeview > .nav-item > .nav-link > .nav-icon {
    font-size: .92rem;
    opacity: .88;
}

/* An expanded group is contextual, not the selected page. Keep it visually
   open without competing with the single blue child-page selection. */
.sidebar-menu > .nav-item.menu-open > .nav-link.portal-nav-parent {
    background: rgba(255, 255, 255, .055);
    border-inline-start-color: rgba(255, 255, 255, .24);
    box-shadow: none;
    color: rgba(255, 255, 255, .88) !important;
    font-weight: 600;
}

.sidebar-menu .nav-link.active,
.sidebar-menu .nav-link[aria-current="page"] {
    background: linear-gradient(90deg, rgba(13, 110, 253, .95), rgba(78, 70, 229, .82));
    border-inline-start-color: #fff;
    box-shadow: 0 .35rem 1rem rgba(0, 0, 0, .22);
    color: #fff !important;
    font-weight: 650;
}

.sidebar-menu .nav-link.active .nav-icon,
.sidebar-menu .nav-link[aria-current="page"] .nav-icon {
    color: #fff !important;
}

.portal-loader {
    align-items: center;
    background: rgba(10, 15, 25, .34);
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    transition: opacity .16s ease;
    z-index: 2000;
}

.portal-loader.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.portal-loader-card {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    display: flex;
    gap: 1rem;
    max-width: min(92vw, 440px);
    padding: 1.1rem 1.3rem;
}

.portal-flash {
    position: relative;
    z-index: 10;
}

.profile-avatar {
    align-items: center;
    background: linear-gradient(145deg, var(--bs-primary), #6f42c1);
    border-radius: 50%;
    color: #fff;
    display: flex;
    flex: 0 0 4.25rem;
    font-size: 2rem;
    height: 4.25rem;
    justify-content: center;
    width: 4.25rem;
}

.verification-proof-item {
    align-items: flex-start;
    display: flex;
    gap: .75rem;
    margin-bottom: 1rem;
}

.verification-proof-item > i {
    color: var(--bs-primary);
    font-size: 1.1rem;
    margin-top: .1rem;
}

.verification-result-grid > div {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .75rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .8rem 1rem;
}

.verification-result-grid span {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.result-json {
    background: #111827;
    border-radius: .75rem;
    color: #e5e7eb;
    max-height: 28rem;
    overflow: auto;
    padding: 1rem;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (prefers-reduced-motion: reduce) {
    .sidebar-menu .nav-link,
    .portal-loader {
        transition: none;
    }
}

/* Contextual AJAX failures stay visible until dismissed or corrected. */
.portal-ajax-error {
    border-left: .3rem solid var(--bs-danger);
    box-shadow: 0 .35rem 1rem rgba(220, 53, 69, .08);
    margin-bottom: 1rem;
}

.portal-ajax-error-meta {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .045em;
    opacity: .8;
    text-transform: uppercase;
}

.portal-ajax-support-reference {
    align-items: center;
    background: color-mix(in srgb, var(--bs-danger-bg-subtle) 72%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-danger-border-subtle) 78%, transparent);
    border-radius: .65rem;
    display: flex;
    gap: .75rem;
    padding: .7rem .8rem;
}

.portal-ajax-support-reference code {
    color: inherit;
    font-size: .84rem;
}

.min-w-0 {
    min-width: 0;
}

/* Development mock-provider management */
.provider-mode-banner {
    background: linear-gradient(135deg, color-mix(in srgb, var(--bs-warning) 16%, var(--bs-body-bg)), var(--bs-body-bg));
}

.mock-provider-card {
    overflow: hidden;
}

.mock-provider-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: .75rem;
    background: color-mix(in srgb, var(--bs-primary) 14%, transparent);
    color: var(--bs-primary);
    font-size: 1.15rem;
    flex: 0 0 auto;
}

.mock-provider-metrics > div {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.mock-provider-metrics span {
    color: var(--bs-secondary-color);
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.mock-provider-metrics strong {
    font-size: .93rem;
    overflow-wrap: anywhere;
}

.provider-route-grid {
    display: grid;
    gap: .5rem;
}

.provider-route-grid > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .55rem .7rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    background: color-mix(in srgb, var(--bs-body-bg) 88%, var(--bs-secondary-bg));
}

.provider-route-grid span {
    font-weight: 600;
}


/* Verification Console response presentation */
.verification-result-accordion .accordion-button {
    font-weight: 700;
}

.verification-response-grid > div {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .75rem;
    display: flex;
    flex-direction: column;
    gap: .22rem;
    min-height: 4.6rem;
    padding: .8rem 1rem;
}

.verification-response-grid span,
.verification-field-label {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.verification-response-grid code,
.verification-result-grid code {
    overflow-wrap: anywhere;
}

.verification-photo-panel {
    position: sticky;
    top: 1rem;
}

.verification-photo-button {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: 1rem;
    cursor: zoom-in;
    display: block;
    overflow: hidden;
    padding: .55rem;
    position: relative;
    width: 100%;
}

.verification-photo {
    aspect-ratio: 4 / 5;
    border-radius: .7rem;
    display: block;
    object-fit: contain;
    width: 100%;
}

.verification-photo-zoom {
    align-items: center;
    background: rgba(17, 24, 39, .78);
    border-radius: 999px;
    bottom: .9rem;
    color: #fff;
    display: flex;
    height: 2.25rem;
    justify-content: center;
    position: absolute;
    right: .9rem;
    width: 2.25rem;
}

.verification-photo-placeholder {
    align-items: center;
    aspect-ratio: 4 / 5;
    background: var(--bs-tertiary-bg);
    border: 1px dashed var(--bs-border-color);
    border-radius: 1rem;
    color: var(--bs-secondary-color);
    display: flex;
    flex-direction: column;
    gap: .65rem;
    justify-content: center;
    min-height: 15rem;
    padding: 1rem;
    text-align: center;
}

.verification-photo-placeholder i {
    font-size: 3rem;
}

.provider-json-modal-body {
    padding-top: .75rem;
}

.provider-json-console {
    max-height: min(68vh, 48rem);
    min-height: 20rem;
    white-space: pre;
}

.provider-photo-modal-image {
    border-radius: .8rem;
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .16);
    max-height: 72vh;
    max-width: 100%;
    object-fit: contain;
}

@media (max-width: 991.98px) {
    .verification-photo-panel {
        position: static;
    }

    .verification-photo-button,
    .verification-photo-placeholder {
        margin-inline: auto;
        max-width: 18rem;
    }
}

/* Enterprise Verification Console result presentation */
.verification-result-card {
    border-radius: .8rem;
    overflow: hidden;
}

.verification-result-header {
    padding: .75rem 1rem;
}

.verification-result-header .card-title {
    font-size: 1rem;
    font-weight: 700;
}

.verification-result-body {
    padding: .85rem;
}

.verification-result-accordion {
    --bs-accordion-border-radius: .65rem;
    --bs-accordion-inner-border-radius: .65rem;
}

.verification-result-accordion .accordion-item {
    border-color: color-mix(in srgb, var(--bs-border-color) 78%, transparent);
    overflow: hidden;
}

.verification-result-accordion .accordion-item + .accordion-item {
    margin-top: .65rem;
}

.verification-result-accordion .accordion-button {
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 72%, var(--bs-body-bg));
    box-shadow: none;
    font-size: .9rem;
    min-height: 2.75rem;
    padding: .65rem .85rem;
}

.verification-result-accordion .accordion-button.collapsed {
    background: color-mix(in srgb, var(--bs-secondary-bg) 72%, var(--bs-body-bg));
}

.accordion-header-hint {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 500;
}

.verification-response-body,
.verification-metadata-body {
    padding: .8rem;
}

.verification-enterprise-layout {
    display: grid;
    gap: .9rem;
    grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
}

.verification-photo-column,
.verification-detail-column {
    min-width: 0;
}

.verification-section-caption {
    color: var(--bs-secondary-color);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .055em;
    margin-bottom: .4rem;
    text-transform: uppercase;
}

.verification-photo-panel {
    position: static;
}

.verification-photo-button,
.verification-photo-placeholder {
    aspect-ratio: 4 / 5;
    background:
        linear-gradient(145deg,
            color-mix(in srgb, var(--bs-tertiary-bg) 88%, var(--bs-primary) 12%),
            var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 85%, transparent);
    border-radius: .65rem;
    box-shadow: 0 .15rem .55rem rgba(15, 23, 42, .08);
    min-height: 0;
    overflow: hidden;
    width: 100%;
}

.verification-photo-button {
    cursor: zoom-in;
    display: block;
    padding: .35rem;
    position: relative;
}

.verification-photo {
    aspect-ratio: 4 / 5;
    background: #eef1f5;
    border-radius: .45rem;
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.verification-photo-zoom {
    align-items: center;
    backdrop-filter: blur(3px);
    background: rgba(15, 23, 42, .78);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: .45rem;
    bottom: .7rem;
    color: #fff;
    display: flex;
    height: 2rem;
    justify-content: center;
    position: absolute;
    right: .7rem;
    width: 2rem;
}

.verification-photo-placeholder {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    justify-content: center;
    padding: .8rem;
    text-align: center;
}

.verification-photo-placeholder i {
    font-size: 2.2rem;
    opacity: .75;
}

.verification-photo-placeholder strong {
    color: var(--bs-body-color);
    font-size: .85rem;
}

.verification-photo-placeholder span,
.verification-photo-caption {
    color: var(--bs-secondary-color);
    font-size: .68rem;
    line-height: 1.35;
}

.verification-photo-caption {
    margin-top: .4rem;
}

.verification-data-section {
    margin-bottom: .75rem;
}

.verification-detail-grid {
    background: var(--bs-body-bg);
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: .55rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
}

.verification-detail-item {
    border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 68%, transparent);
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-height: 3.05rem;
    padding: .48rem .68rem;
}

.verification-detail-item:nth-child(odd) {
    border-right: 1px solid color-mix(in srgb, var(--bs-border-color) 68%, transparent);
}

.verification-detail-item:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.verification-detail-item-wide {
    grid-column: auto;
}

.verification-detail-item > span,
.verification-metadata-grid > div > span {
    color: var(--bs-secondary-color);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .045em;
    line-height: 1.2;
    text-transform: uppercase;
}

.verification-detail-item > strong,
.verification-detail-item > code {
    color: var(--bs-body-color);
    font-size: .84rem;
    font-weight: 650;
    line-height: 1.28;
    overflow-wrap: anywhere;
}

.verification-detail-item > code {
    color: var(--bs-primary-text-emphasis);
    font-size: .76rem;
}

.verification-metadata-grid {
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: .55rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
}

.verification-metadata-grid > div {
    border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 65%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--bs-border-color) 65%, transparent);
    display: flex;
    flex-direction: column;
    gap: .12rem;
    min-height: 2.85rem;
    padding: .45rem .6rem;
}

.verification-metadata-grid > div:nth-child(3n) {
    border-right: 0;
}

.verification-metadata-grid > div > strong,
.verification-metadata-grid > div > code {
    color: var(--bs-body-color);
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.verification-metadata-grid > div > code {
    color: var(--bs-primary-text-emphasis);
    font-size: .72rem;
}

.verification-metadata-json {
    align-items: center;
    flex-direction: row !important;
    grid-column: 2 / span 2;
    justify-content: space-between;
}

.verification-json-view-button {
    flex: 0 0 auto;
    font-size: .72rem;
    padding: .28rem .55rem;
}

.verification-result-footer {
    padding: .65rem .85rem;
}

.execution-control-notice {
    align-items: flex-start;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .55rem;
    display: flex;
    gap: .65rem;
    padding: .58rem .7rem;
}

.execution-control-notice-danger {
    background: color-mix(in srgb, var(--bs-danger-bg-subtle) 55%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-danger-border-subtle) 72%, var(--bs-border-color));
}

.execution-control-icon {
    align-items: center;
    background: color-mix(in srgb, var(--bs-danger) 12%, transparent);
    border-radius: .45rem;
    color: var(--bs-danger);
    display: flex;
    flex: 0 0 2rem;
    height: 2rem;
    justify-content: center;
}

.platform-control-card .platform-control-state {
    align-items: center;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color-translucent);
    border-radius: .55rem;
    display: flex;
    gap: .65rem;
    padding: .6rem .75rem;
}

.platform-control-card .platform-control-state > i {
    font-size: 1.2rem;
}

.provider-json-console {
    font-size: .78rem;
    line-height: 1.45;
    max-height: min(68vh, 48rem);
    min-height: 16rem;
    tab-size: 2;
    white-space: pre;
}

.provider-photo-modal-image {
    background: #eef1f5;
    border-radius: .6rem;
    box-shadow: 0 .4rem 1.25rem rgba(0, 0, 0, .16);
    max-height: 75vh;
    max-width: min(100%, 42rem);
    object-fit: contain;
}

@media (max-width: 1199.98px) {
    .verification-enterprise-layout {
        grid-template-columns: 13rem minmax(0, 1fr);
    }
}

@media (max-width: 991.98px) {
    .verification-enterprise-layout {
        grid-template-columns: 1fr;
    }

    .verification-photo-column {
        max-width: 14rem;
    }

    .verification-metadata-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .verification-metadata-grid > div:nth-child(3n) {
        border-right: 1px solid color-mix(in srgb, var(--bs-border-color) 65%, transparent);
    }

    .verification-metadata-grid > div:nth-child(2n) {
        border-right: 0;
    }

    .verification-metadata-json {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {
    .verification-detail-grid,
    .verification-metadata-grid {
        grid-template-columns: 1fr;
    }

    .verification-detail-item,
    .verification-detail-item:nth-child(odd),
    .verification-metadata-grid > div,
    .verification-metadata-grid > div:nth-child(2n),
    .verification-metadata-grid > div:nth-child(3n) {
        border-right: 0;
    }

    .verification-detail-item:nth-last-child(-n + 2) {
        border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 68%, transparent);
    }

    .verification-detail-item:last-child,
    .verification-metadata-grid > div:last-child {
        border-bottom: 0;
    }

    .verification-photo-column {
        max-width: 12rem;
    }
}


/* Normalized provider console context footer */
.provider-json-modal-footer {
    align-items: center;
    gap: .75rem;
    justify-content: flex-start;
}

.provider-json-footer-time {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    gap: .55rem;
    min-width: 13rem;
}

.provider-json-footer-time > i {
    align-items: center;
    background: color-mix(in srgb, var(--bs-primary) 10%, transparent);
    border-radius: 50%;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 2rem;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.provider-json-footer-time span {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.provider-json-footer-time small {
    font-size: .66rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.provider-json-footer-time strong {
    color: var(--bs-body-color);
    font-size: .78rem;
    font-weight: 650;
    margin-top: .15rem;
}

.provider-json-footer-actions,
.provider-json-footer-badges {
    align-items: center;
    display: flex;
    gap: .45rem;
}

.provider-json-footer-badges {
    border-left: 1px solid var(--bs-border-color);
    margin-left: .15rem;
    padding-left: .7rem;
}

.provider-context-badge {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .035em;
    padding: .48rem .7rem;
}

@media (max-width: 767.98px) {
    .provider-json-modal-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .provider-json-footer-time {
        margin-right: 0 !important;
        width: 100%;
    }

    .provider-json-footer-actions,
    .provider-json-footer-badges {
        justify-content: flex-end;
        width: 100%;
    }

    .provider-json-footer-badges {
        border-left: 0;
        border-top: 1px solid var(--bs-border-color);
        margin-left: 0;
        padding-left: 0;
        padding-top: .6rem;
    }
}

/* Verification Console-generated client reference */
.verification-client-reference-badge {
    align-items: center;
    align-self: flex-start;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-primary) 14%, var(--bs-body-bg)),
        color-mix(in srgb, var(--bs-info) 12%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 34%, var(--bs-border-color));
    border-radius: 999px;
    box-shadow: 0 .15rem .45rem color-mix(in srgb, var(--bs-primary) 10%, transparent);
    color: var(--bs-primary-text-emphasis);
    display: inline-flex;
    font-family: var(--bs-font-monospace);
    font-size: .7rem;
    font-weight: 750;
    gap: .35rem;
    line-height: 1.25;
    max-width: 100%;
    padding: .28rem .55rem;
}

.verification-client-reference-badge > i {
    color: var(--bs-primary);
    flex: 0 0 auto;
    font-size: .82rem;
}

.verification-client-reference-badge > span {
    overflow-wrap: anywhere;
}


/* Verification request/response JSON console launchers */
.verification-console-launchers {
    align-items: flex-start;
    display: flex;
    flex-wrap: nowrap;
    gap: .9rem;
    justify-content: center;
    margin-top: .7rem;
}

.verification-console-launchers-inline {
    justify-content: flex-start;
    margin-top: 0;
}

.verification-console-launcher {
    align-items: center;
    appearance: none;
    background: transparent;
    border: 0;
    color: var(--bs-body-color);
    display: inline-flex;
    flex: 0 0 5.4rem;
    flex-direction: column;
    gap: .38rem;
    min-width: 0;
    padding: .12rem;
    text-align: center;
}

.verification-console-launcher:hover,
.verification-console-launcher:focus-visible {
    color: var(--bs-primary);
    outline: 0;
}

.verification-console-launcher-icon {
    align-items: center;
    background: linear-gradient(135deg, var(--bs-primary), color-mix(in srgb, var(--bs-primary) 68%, var(--bs-info)));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 58%, #fff 12%);
    border-radius: 50%;
    box-shadow: 0 .3rem .75rem color-mix(in srgb, var(--bs-primary) 20%, transparent);
    color: #fff;
    display: inline-flex;
    flex: 0 0 2.85rem;
    font-size: 1.05rem;
    height: 2.85rem;
    justify-content: center;
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
    width: 2.85rem;
}

.verification-console-launcher-request .verification-console-launcher-icon {
    background: linear-gradient(135deg, var(--bs-info), color-mix(in srgb, var(--bs-info) 62%, var(--bs-primary)));
    border-color: color-mix(in srgb, var(--bs-info) 58%, #fff 12%);
    box-shadow: 0 .3rem .75rem color-mix(in srgb, var(--bs-info) 18%, transparent);
}

.verification-console-launcher:hover .verification-console-launcher-icon,
.verification-console-launcher:focus-visible .verification-console-launcher-icon {
    box-shadow: 0 .45rem 1rem color-mix(in srgb, var(--bs-primary) 26%, transparent);
    filter: saturate(1.08);
    transform: translateY(-2px) scale(1.035);
}

.verification-console-launcher-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.12;
    max-width: 5.4rem;
    min-width: 0;
}

.verification-console-launcher-copy strong {
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.15;
    overflow-wrap: anywhere;
    white-space: normal;
}

.verification-console-launcher-copy small {
    display: none;
}

@media (max-width: 575.98px) {
    .verification-console-launchers,
    .verification-console-launchers-inline {
        gap: 1rem;
        justify-content: center;
    }
}

/* Verification Console elapsed-time breakdown: provider, portal logistics, then whole UI total. */
.verification-performance-panel {
    background:
        linear-gradient(145deg,
            color-mix(in srgb, var(--bs-primary-bg-subtle) 34%, var(--bs-body-bg)),
            color-mix(in srgb, var(--bs-info-bg-subtle) 24%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 20%, var(--bs-border-color));
    border-radius: .85rem;
    box-shadow: 0 .28rem .9rem rgba(15, 23, 42, .07);
    display: grid;
    gap: .42rem;
    margin: .72rem auto 0;
    max-width: 18rem;
    overflow: hidden;
    padding: .55rem;
    width: 100%;
}

.verification-performance-panel-inline {
    margin-left: 0;
    margin-right: 0;
    max-width: 24rem;
}

.verification-performance-step {
    align-items: center;
    background: color-mix(in srgb, var(--bs-body-bg) 88%, var(--bs-secondary-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: .68rem;
    display: flex;
    gap: .62rem;
    min-width: 0;
    padding: .5rem .58rem;
}

.verification-performance-step-provider {
    border-left: .22rem solid var(--bs-primary);
}

.verification-performance-step-logistics {
    border-left: .22rem solid var(--bs-info);
}

.verification-performance-icon {
    align-items: center;
    background: color-mix(in srgb, var(--bs-primary) 11%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, transparent);
    border-radius: 50%;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 2rem;
    font-size: .9rem;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.verification-performance-step-logistics .verification-performance-icon {
    background: color-mix(in srgb, var(--bs-info) 12%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-info) 22%, transparent);
    color: var(--bs-info-text-emphasis);
}

.verification-performance-copy,
.verification-performance-total-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.08;
    min-width: 0;
}

.verification-performance-copy small,
.verification-performance-total-copy small {
    color: var(--bs-secondary-color);
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.verification-performance-copy strong {
    color: var(--bs-body-color);
    font-size: .84rem;
    font-variant-numeric: tabular-nums;
    font-weight: 850;
    margin-top: .16rem;
}

.verification-performance-operator {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    font-size: .78rem;
    font-weight: 900;
    height: .55rem;
    justify-content: center;
    line-height: .55rem;
    opacity: .72;
}

.verification-performance-total {
    align-items: center;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-success) 16%, var(--bs-body-bg)),
        color-mix(in srgb, var(--bs-primary) 11%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-success) 30%, var(--bs-border-color));
    border-radius: .72rem;
    display: flex;
    gap: .68rem;
    margin-top: .06rem;
    padding: .58rem .64rem;
}

.verification-performance-total-icon {
    align-items: center;
    background: color-mix(in srgb, var(--bs-success) 16%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-success) 28%, transparent);
    border-radius: .62rem;
    color: var(--bs-success-text-emphasis);
    display: inline-flex;
    flex: 0 0 2.18rem;
    font-size: 1rem;
    height: 2.18rem;
    justify-content: center;
    width: 2.18rem;
}

.verification-performance-total-copy strong {
    color: var(--bs-success-text-emphasis);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
    font-weight: 900;
    margin-top: .12rem;
}

.verification-performance-total-copy > span {
    color: var(--bs-secondary-color);
    font-size: .59rem;
    font-weight: 650;
    margin-top: .12rem;
}

.verification-performance-panel.is-measured [data-portal-logistics-time],
.verification-performance-panel.is-measured [data-total-ui-time] {
    animation: verificationTimingReveal .28s ease-out;
}

@keyframes verificationTimingReveal {
    from { opacity: .35; transform: translateY(2px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 575.98px) {
    .verification-performance-panel,
    .verification-performance-panel-inline {
        margin-inline: auto;
        max-width: 20rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .verification-performance-panel.is-measured [data-portal-logistics-time],
    .verification-performance-panel.is-measured [data-total-ui-time] {
        animation: none;
    }
}

/* Result header: keep the outcome and transaction reference readable at every width. */
.verification-result-summary {
    display: flex;
    flex-direction: column;
    gap: .38rem;
}

.verification-result-outcome {
    align-items: center;
    display: flex;
    gap: .45rem;
    line-height: 1.2;
}

.verification-result-outcome > i {
    flex: 0 0 auto;
    font-size: 1rem;
}

.verification-result-outcome > strong {
    font-size: .98rem;
    font-weight: 750;
}

.verification-transaction-reference {
    align-items: center;
    align-self: flex-start;
    background: color-mix(in srgb, var(--bs-secondary-bg) 72%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    display: inline-flex;
    gap: .45rem;
    max-width: 100%;
    min-width: 0;
    padding: .22rem .55rem;
}

.verification-transaction-label {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.verification-transaction-reference code {
    color: var(--bs-primary-text-emphasis);
    font-size: .68rem;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

/* Provider Management typography: AdminLTE's card-title float must never pull descriptions beside headings. */
.provider-management-content .card-title,
.provider-management-content h5.card-title {
    display: block;
    float: none !important;
    margin: 0;
    width: auto;
}

.provider-management-content .card-header .text-body-secondary {
    clear: both;
}

.provider-heading-block {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .22rem;
    min-width: 0;
}

.provider-heading-block > h5,
.provider-heading-block > .card-title {
    float: none;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
}

.provider-heading-description {
    color: var(--bs-secondary-color);
    display: block;
    font-size: .76rem;
    line-height: 1.38;
    margin: 0;
    max-width: 70rem;
}

.provider-card-heading {
    gap: .12rem;
}

.provider-card-heading > .card-title {
    font-size: .98rem;
}

.provider-card-heading > .provider-heading-description {
    font-size: .7rem;
}

.provider-management-content .card-header > .provider-heading-block {
    padding-block: .05rem;
}

@media (max-width: 575.98px) {
    .verification-transaction-reference {
        align-items: flex-start;
        border-radius: .55rem;
        flex-direction: column;
        gap: .12rem;
    }
}

.verification-metadata-client-reference {
    grid-column: 1 / -1;
}

.verification-metadata-client-reference .verification-client-reference-badge {
    margin-top: .12rem;
}

/* Verification payload modal downloads */
.provider-json-download-group {
    flex: 0 0 auto;
}

.provider-json-download-button {
    align-items: center;
    border-radius: 999px !important;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 750;
    gap: .15rem;
    letter-spacing: .02em;
    padding: .4rem .72rem;
}

.provider-json-download-button > i {
    font-size: .9rem;
}

.provider-json-download-menu {
    min-width: 11.25rem;
    padding: .35rem;
}

.provider-json-download-menu .dropdown-item {
    border-radius: .45rem;
    font-size: .78rem;
    padding: .48rem .62rem;
}

.provider-json-download-menu .dropdown-item > i {
    color: var(--bs-primary);
    font-size: .92rem;
    width: 1rem;
}

/* NPR Verification Console WebCGI override */
.npr-webcgi-panel {
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-info) 7%, var(--bs-body-bg)),
        color-mix(in srgb, var(--bs-primary) 4%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-info) 24%, var(--bs-border-color));
    border-radius: .85rem;
    box-shadow: 0 .28rem .9rem rgba(15, 23, 42, .045);
    padding: 1rem;
}

.npr-webcgi-heading {
    align-items: flex-start;
    display: flex;
    gap: .75rem;
}

.npr-webcgi-icon {
    align-items: center;
    background: color-mix(in srgb, var(--bs-info) 14%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-info) 26%, transparent);
    border-radius: .72rem;
    color: var(--bs-info-text-emphasis);
    display: inline-flex;
    flex: 0 0 2.45rem;
    font-size: 1.05rem;
    height: 2.45rem;
    justify-content: center;
    width: 2.45rem;
}

.npr-webcgi-effective {
    background: color-mix(in srgb, var(--bs-body-bg) 90%, var(--bs-secondary-bg));
    border: 1px solid var(--bs-border-color);
    border-radius: .72rem;
    min-height: 5.45rem;
    padding: .72rem .8rem;
}

.npr-webcgi-effective-label {
    color: var(--bs-secondary-color);
    display: block;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.npr-webcgi-effective code {
    color: var(--bs-primary-text-emphasis);
    font-size: .92rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

/* Verification Console header runtime status */
.verification-console-header-status {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
    margin-left: auto;
}

.verification-idempotency-status {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 700;
    gap: .38rem;
    line-height: 1;
    min-height: 1.75rem;
    padding: .34rem .45rem .34rem .55rem;
    white-space: nowrap;
}

.verification-idempotency-status-off {
    background: color-mix(in srgb, var(--bs-danger-bg-subtle) 78%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-danger) 30%, var(--bs-border-color));
    color: var(--bs-danger-text-emphasis);
    box-shadow: 0 .12rem .35rem color-mix(in srgb, var(--bs-danger) 9%, transparent);
}

.verification-idempotency-status-off > i {
    color: var(--bs-danger);
    font-size: .86rem;
}

.verification-idempotency-scope {
    background: var(--bs-danger);
    border-radius: 999px;
    color: #fff;
    font-size: .6rem;
    font-weight: 800;
    letter-spacing: .035em;
    padding: .24rem .38rem;
}

@media (max-width: 575.98px) {
    .verification-console-header-status {
        justify-content: flex-start;
        margin-left: 0;
        width: 100%;
    }
}

/* NPR Verification Console: dense, enterprise presentation for structured NPR data. */
.npr-verification-toolbar {
    align-items: stretch;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-primary-bg-subtle) 28%, var(--bs-body-bg)),
        color-mix(in srgb, var(--bs-info-bg-subtle) 18%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: .8rem;
    display: grid;
    gap: .9rem;
    grid-template-columns: auto minmax(0, 1fr);
    margin-bottom: .9rem;
    padding: .72rem .82rem;
}

.npr-console-launchers {
    align-items: center;
    align-self: center;
    gap: .7rem;
    margin: 0;
    min-width: 11rem;
}

.verification-performance-panel-npr {
    align-items: stretch;
    background: transparent;
    border: 0;
    box-shadow: none;
    display: grid;
    gap: .5rem;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) minmax(0, 1.08fr);
    margin: 0;
    max-width: none;
    padding: 0;
}

.verification-performance-panel-npr .verification-performance-operator {
    align-self: center;
    height: auto;
    min-width: 1rem;
}

.verification-performance-panel-npr .verification-performance-step,
.verification-performance-panel-npr .verification-performance-total {
    height: 100%;
    margin: 0;
    min-height: 3.6rem;
}

.npr-response-dashboard {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.npr-card-span-2 {
    grid-column: 1 / -1;
}

.npr-data-card {
    background: var(--bs-body-bg);
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 82%, transparent);
    border-radius: .72rem;
    box-shadow: 0 .12rem .45rem rgba(15, 23, 42, .045);
    min-width: 0;
    overflow: hidden;
}

.npr-card-header {
    align-items: center;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 72%, var(--bs-body-bg));
    border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 72%, transparent);
    display: flex;
    gap: .58rem;
    min-height: 3.35rem;
    padding: .58rem .68rem;
}

.npr-card-header > div {
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    min-width: 0;
}

.npr-card-header > div > strong {
    color: var(--bs-body-color);
    font-size: .82rem;
    font-weight: 800;
}

.npr-card-header > div > small {
    color: var(--bs-secondary-color);
    font-size: .64rem;
    margin-top: .14rem;
}

.npr-card-icon {
    align-items: center;
    border: 1px solid transparent;
    border-radius: .55rem;
    display: inline-flex;
    flex: 0 0 2.15rem;
    font-size: .9rem;
    height: 2.15rem;
    justify-content: center;
    width: 2.15rem;
}

.npr-card-icon-primary {
    background: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-primary) 20%, transparent);
    color: var(--bs-primary);
}

.npr-card-icon-info {
    background: color-mix(in srgb, var(--bs-info) 13%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-info) 22%, transparent);
    color: var(--bs-info-text-emphasis);
}

.npr-card-icon-success {
    background: color-mix(in srgb, var(--bs-success) 12%, var(--bs-body-bg));
    border-color: color-mix(in srgb, var(--bs-success) 21%, transparent);
    color: var(--bs-success-text-emphasis);
}

.npr-card-icon-rose {
    background: color-mix(in srgb, #e83e8c 10%, var(--bs-body-bg));
    border-color: color-mix(in srgb, #e83e8c 20%, transparent);
    color: #b52b70;
}

.npr-card-icon-purple {
    background: color-mix(in srgb, #6f42c1 11%, var(--bs-body-bg));
    border-color: color-mix(in srgb, #6f42c1 21%, transparent);
    color: #6f42c1;
}

.npr-kv-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.npr-kv-grid > div {
    border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 62%, transparent);
    display: flex;
    flex-direction: column;
    gap: .08rem;
    min-height: 2.8rem;
    padding: .42rem .62rem;
}

.npr-kv-grid > div:nth-child(odd) {
    border-right: 1px solid color-mix(in srgb, var(--bs-border-color) 62%, transparent);
}

.npr-kv-grid > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.npr-kv-grid > .npr-kv-wide {
    border-bottom: 0;
    border-right: 0;
    grid-column: 1 / -1;
}

.npr-kv-grid span,
.npr-relative-values span,
.npr-child-main span,
.npr-reference-strip > div > span {
    color: var(--bs-secondary-color);
    font-size: .61rem;
    font-weight: 800;
    letter-spacing: .045em;
    line-height: 1.15;
    text-transform: uppercase;
}

.npr-kv-grid strong,
.npr-relative-values strong,
.npr-child-main strong {
    color: var(--bs-body-color);
    font-size: .8rem;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.npr-address-card {
    align-items: flex-start;
    display: flex;
    gap: .72rem;
    min-height: 8.25rem;
    padding: .9rem;
}

.npr-address-marker {
    align-items: center;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-info) 18%, var(--bs-body-bg)),
        color-mix(in srgb, var(--bs-primary) 11%, var(--bs-body-bg)));
    border: 1px solid color-mix(in srgb, var(--bs-info) 22%, transparent);
    border-radius: .7rem;
    color: var(--bs-info-text-emphasis);
    display: inline-flex;
    flex: 0 0 2.65rem;
    font-size: 1.1rem;
    height: 2.65rem;
    justify-content: center;
    width: 2.65rem;
}

.npr-address-lines {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
}

.npr-address-lines > strong {
    font-size: .87rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.npr-address-lines > span:not(.npr-postal-code) {
    color: var(--bs-secondary-color);
    font-size: .78rem;
    overflow-wrap: anywhere;
}

.npr-postal-code {
    align-items: center;
    align-self: flex-start;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 65%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 18%, transparent);
    border-radius: 999px;
    color: var(--bs-primary-text-emphasis);
    display: inline-flex;
    font-size: .68rem;
    font-weight: 650;
    margin-top: .42rem;
    padding: .28rem .55rem;
}

.npr-postal-code strong {
    margin-left: .28rem;
}

.npr-card-header-family {
    position: relative;
}

.npr-family-count {
    background: color-mix(in srgb, #6f42c1 12%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, #6f42c1 20%, transparent);
    border-radius: 999px;
    color: #6f42c1;
    font-size: .64rem;
    font-weight: 800;
    margin-left: auto;
    padding: .24rem .5rem;
    white-space: nowrap;
}

.npr-parent-grid {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: .7rem;
}

.npr-parent-card {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 48%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 75%, transparent);
    border-radius: .65rem;
    min-width: 0;
    overflow: hidden;
}

.npr-relative-heading {
    align-items: center;
    border-bottom: 1px solid color-mix(in srgb, var(--bs-border-color) 58%, transparent);
    display: flex;
    gap: .52rem;
    padding: .5rem .58rem;
}

.npr-relative-heading > div {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.npr-relative-heading strong {
    font-size: .76rem;
    font-weight: 800;
}

.npr-relative-heading small {
    color: var(--bs-secondary-color);
    font-size: .6rem;
    margin-top: .14rem;
}

.npr-relative-avatar {
    align-items: center;
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 1.9rem;
    font-size: .82rem;
    height: 1.9rem;
    justify-content: center;
    width: 1.9rem;
}

.npr-relative-avatar.mother {
    background: color-mix(in srgb, #e83e8c 12%, var(--bs-body-bg));
    color: #b52b70;
}

.npr-relative-avatar.father {
    background: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg));
    color: var(--bs-primary);
}

.npr-relative-values {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr;
}

.npr-relative-values > div {
    display: flex;
    flex-direction: column;
    gap: .08rem;
    min-width: 0;
    padding: .42rem .5rem;
}

.npr-relative-values > div + div {
    border-left: 1px solid color-mix(in srgb, var(--bs-border-color) 55%, transparent);
}

.npr-children-section {
    border-top: 1px solid color-mix(in srgb, var(--bs-border-color) 64%, transparent);
    padding: .7rem;
}

.npr-subsection-title {
    color: var(--bs-secondary-color);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .045em;
    margin-bottom: .48rem;
    text-transform: uppercase;
}

.npr-children-grid {
    display: grid;
    gap: .52rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.npr-child-card {
    align-items: center;
    background: color-mix(in srgb, var(--bs-body-bg) 90%, var(--bs-primary-bg-subtle));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 75%, transparent);
    border-radius: .6rem;
    display: grid;
    gap: .48rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-width: 0;
    padding: .52rem;
}

.npr-child-number {
    align-items: center;
    background: linear-gradient(135deg, var(--bs-primary), color-mix(in srgb, var(--bs-primary) 65%, var(--bs-info)));
    border-radius: .48rem;
    color: #fff;
    display: inline-flex;
    font-size: .67rem;
    font-weight: 900;
    height: 2rem;
    justify-content: center;
    width: 2rem;
}

.npr-child-main {
    display: flex;
    flex-direction: column;
    gap: .06rem;
    min-width: 0;
}

.npr-child-main strong {
    font-size: .72rem;
}

.npr-child-meta {
    display: flex;
    gap: .35rem;
    grid-column: 2;
}

.npr-child-meta > span {
    background: var(--bs-secondary-bg);
    border-radius: 999px;
    color: var(--bs-secondary-color);
    font-size: .58rem;
    font-weight: 800;
    padding: .18rem .38rem;
    text-transform: uppercase;
}

.npr-child-meta > .npr-child-status {
    background: color-mix(in srgb, var(--bs-success) 10%, var(--bs-body-bg));
    color: var(--bs-success-text-emphasis);
}

.npr-empty-family {
    align-items: center;
    background: var(--bs-tertiary-bg);
    border: 1px dashed color-mix(in srgb, var(--bs-border-color) 85%, transparent);
    border-radius: .58rem;
    color: var(--bs-secondary-color);
    display: flex;
    font-size: .72rem;
    gap: .45rem;
    justify-content: center;
    min-height: 3rem;
    padding: .6rem;
}

.npr-reference-strip {
    align-items: stretch;
    background: linear-gradient(135deg,
        color-mix(in srgb, var(--bs-secondary-bg) 72%, var(--bs-body-bg)),
        var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 78%, transparent);
    border-radius: .66rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    overflow: hidden;
}

.npr-reference-strip > div {
    display: flex;
    flex-direction: column;
    gap: .16rem;
    min-width: 0;
    padding: .52rem .65rem;
}

.npr-reference-strip > div + div {
    border-left: 1px solid color-mix(in srgb, var(--bs-border-color) 62%, transparent);
}

.npr-reference-strip code,
.npr-reference-strip strong {
    font-size: .72rem;
    overflow-wrap: anywhere;
}

@media (max-width: 1199.98px) {
    .npr-verification-toolbar {
        grid-template-columns: 11rem minmax(0, 1fr);
    }

    .verification-performance-panel-npr {
        grid-template-columns: 1fr 1fr;
    }

    .verification-performance-panel-npr .verification-performance-operator {
        display: none;
    }

    .verification-performance-panel-npr .verification-performance-total {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991.98px) {
    .npr-verification-toolbar,
    .npr-response-dashboard {
        grid-template-columns: 1fr;
    }

    .npr-card-span-2 {
        grid-column: auto;
    }

    .npr-console-launchers {
        justify-content: flex-start;
    }

    .npr-parent-grid,
    .npr-children-grid {
        grid-template-columns: 1fr 1fr;
    }

    .npr-reference-strip {
        grid-template-columns: 1fr;
    }

    .npr-reference-strip > div + div {
        border-left: 0;
        border-top: 1px solid color-mix(in srgb, var(--bs-border-color) 62%, transparent);
    }
}

@media (max-width: 575.98px) {
    .verification-performance-panel-npr,
    .npr-kv-grid,
    .npr-parent-grid,
    .npr-children-grid,
    .npr-relative-values {
        grid-template-columns: 1fr;
    }

    .verification-performance-panel-npr .verification-performance-total,
    .npr-kv-grid > .npr-kv-wide {
        grid-column: auto;
    }

    .npr-kv-grid > div:nth-child(odd),
    .npr-relative-values > div + div {
        border-left: 0;
        border-right: 0;
    }

    .npr-child-meta {
        grid-column: auto;
    }
}

/* Sidebar provider runtime state */
.provider-mode-menu-badge {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .67rem;
    font-weight: 700;
    gap: .28rem;
    letter-spacing: .045em;
    min-width: 3.45rem;
    justify-content: center;
}

.provider-mode-menu-badge.provider-mode-live::before {
    background: currentColor;
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(255, 255, 255, .72);
    content: "";
    height: .38rem;
    width: .38rem;
    animation: provider-live-badge-blink 1000ms step-end infinite;
}

.provider-mode-menu-badge.provider-mode-live {
    animation: provider-live-badge-pulse 1000ms ease-in-out infinite;
}

@keyframes provider-live-badge-blink {
    0%, 44% { opacity: 1; }
    45%, 64% { opacity: .18; }
    65%, 100% { opacity: 1; }
}

@keyframes provider-live-badge-pulse {
    0%, 100% { filter: brightness(1); box-shadow: 0 0 0 rgba(25, 135, 84, 0); }
    50% { filter: brightness(1.18); box-shadow: 0 0 .6rem rgba(25, 135, 84, .42); }
}

@media (prefers-reduced-motion: reduce) {
    .provider-mode-menu-badge.provider-mode-live,
    .provider-mode-menu-badge.provider-mode-live::before {
        animation: none;
    }
}


/* Runtime platform settings */
.runtime-setting-list > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--bs-border-color);
}
.runtime-setting-list > div:first-child { padding-top: 0; }
.runtime-setting-list > div:last-child { border-bottom: 0; padding-bottom: 0; }
.runtime-setting-list dt { margin: 0; font-weight: 500; color: var(--bs-secondary-color); }
.runtime-setting-list dd { margin: 0; font-weight: 700; text-align: right; }

/* Operational intelligence / motion */
.runtime-setting-card-heading { min-width: 0; padding-right: .75rem; }
.runtime-setting-card-heading .card-title { display: block; float: none !important; line-height: 1.25; margin-bottom: .25rem !important; }
.runtime-setting-card-heading .small { display: block; line-height: 1.35; max-width: 34rem; overflow-wrap: anywhere; }
.smart-badge { transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; cursor: help; }
.smart-badge:hover { transform: translateY(-1px) scale(1.03); filter: brightness(1.06); box-shadow: 0 .25rem .65rem rgba(0,0,0,.16); }
.presence-indicator { align-items: center; display: inline-flex; gap: .4rem; font-size: .78rem; font-weight: 700; white-space: nowrap; }
.presence-dot { background: var(--bs-secondary); border-radius: 50%; display: inline-block; height: .62rem; width: .62rem; box-shadow: 0 0 0 0 rgba(108,117,125,.3); }
.presence-indicator.online { color: var(--bs-success); }
.presence-indicator.online .presence-dot { background: var(--bs-success); animation: operational-presence-pulse 1000ms ease-in-out infinite; }
.presence-indicator.offline { color: var(--bs-secondary-color); }
@keyframes operational-presence-pulse {
  0%,100% { opacity: 1; box-shadow: 0 0 0 0 rgba(25,135,84,.45); }
  50% { opacity: .42; box-shadow: 0 0 0 .42rem rgba(25,135,84,0); }
}
.verification-run-button { position: relative; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.verification-run-button:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 .45rem 1rem rgba(13,110,253,.25); }
.verification-run-button:not(:disabled)::after { content:""; position:absolute; inset:-80% -30%; background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.34) 50%,transparent 62%); transform:translateX(-120%); animation: verification-button-sheen 3.2s ease-in-out infinite; pointer-events:none; }
@keyframes verification-button-sheen { 0%,68%{transform:translateX(-120%)} 88%,100%{transform:translateX(120%)} }
.dashboard-bar { transform-origin: bottom; animation: dashboard-bar-grow .7s cubic-bezier(.22,.61,.36,1) both; transition: filter .15s ease, transform .15s ease; }
.dashboard-bar:hover { filter: brightness(1.14); transform: scaleY(1.02); }
@keyframes dashboard-bar-grow { from { transform: scaleY(.05); opacity:.35; } to { transform: scaleY(1); opacity:1; } }
.decision-signal { transition: transform .18s ease, box-shadow .18s ease; }
.decision-signal:hover { transform: translateY(-2px); box-shadow: 0 .45rem 1.1rem rgba(0,0,0,.08); }
@media (prefers-reduced-motion: reduce) {
  .presence-indicator.online .presence-dot, .verification-run-button::after, .dashboard-bar { animation:none !important; }
  .smart-badge, .verification-run-button, .decision-signal { transition:none !important; }
}
.dashboard-hourly-chart { align-items:end; display:grid; gap:.28rem; grid-template-columns:repeat(24,minmax(.55rem,1fr)); height:15rem; padding-top:.5rem; }
.dashboard-hour-column { align-items:center; display:flex; flex-direction:column; height:100%; justify-content:flex-end; min-width:0; cursor:crosshair; }
.dashboard-hour-column .dashboard-bar { border-radius:.35rem .35rem .08rem .08rem; min-height:2px; width:72%; }
.dashboard-hour-column > span { color:var(--bs-secondary-color); font-size:.58rem; margin-top:.35rem; overflow:hidden; text-overflow:clip; white-space:nowrap; writing-mode:vertical-rl; transform:rotate(180deg); height:2.6rem; }
@media(max-width:767.98px){.dashboard-hourly-chart{gap:.12rem}.dashboard-hour-column>span{display:none}.dashboard-hour-column .dashboard-bar{width:90%}}

/* System Logs — live, correlation-first operational diagnostics */
.system-log-page { --system-log-viewer-height: min(68vh, 56rem); }
.system-log-intro { border-left: .22rem solid var(--bs-info); }
.system-log-summary .card { transition: transform .16s ease, box-shadow .16s ease; }
.system-log-summary .card:hover { transform: translateY(-2px); box-shadow: 0 .45rem 1rem rgba(0,0,0,.08); }
.system-log-file-list { max-height: var(--system-log-viewer-height); overflow: auto; }
.system-log-file-list .list-group-item { min-width: 0; }
.system-log-viewer-card { overflow: hidden; }
.system-log-viewer-header { align-items: center; display: flex; flex-wrap: wrap; gap: .8rem; justify-content: space-between; }
.system-log-viewer-body { min-height: 28rem; }
.system-log-table-wrap, .system-log-console { height: var(--system-log-viewer-height); min-height: 28rem; overflow: auto; }
.system-log-table { table-layout: fixed; }
.system-log-table thead { position: sticky; top: 0; z-index: 3; }
.system-log-table thead th { background: var(--bs-body-bg); box-shadow: inset 0 -1px 0 var(--bs-border-color); white-space: nowrap; }
.system-log-col-time { width: 13.2rem; }
.system-log-col-level { width: 7.6rem; }
.system-log-col-correlation { width: 12rem; }
.system-log-row { border-left: .23rem solid transparent; }
.system-log-row-fatal, .system-log-row-error { border-left-color: var(--bs-danger); }
.system-log-row-warning { border-left-color: var(--bs-warning); }
.system-log-row-information { border-left-color: var(--bs-info); }
.system-log-row-debug, .system-log-row-verbose { border-left-color: var(--bs-secondary); }
.system-log-time { font-family: var(--bs-font-monospace); font-size: .78rem; white-space: nowrap; }
.system-log-correlation { font-family: var(--bs-font-monospace); font-size: .73rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.system-log-event-cell { min-width: 0; overflow-wrap: anywhere; }
.system-log-message { font-size: .86rem; font-weight: 520; line-height: 1.35; }
.system-log-source { color: var(--bs-secondary-color); font-family: var(--bs-font-monospace); font-size: .68rem; margin-top: .25rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.system-log-details { margin-top: .35rem; }
.system-log-details summary { color: var(--bs-link-color); cursor: pointer; font-size: .74rem; }
.system-log-details pre { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .35rem; font-size: .72rem; margin: .35rem 0 0; max-height: 22rem; overflow: auto; padding: .65rem; white-space: pre-wrap; }
.system-log-console { background: #0b1017; color: #d5dde7; font-family: var(--bs-font-monospace); padding: .7rem .85rem; }
.system-log-console-entry { border-bottom: 1px solid rgba(255,255,255,.07); color: inherit; font: inherit; font-size: .72rem; line-height: 1.42; margin: 0; padding: .26rem 0; white-space: pre-wrap; word-break: break-word; }
.system-log-new-indicator { bottom: 1rem; box-shadow: 0 .4rem 1rem rgba(0,0,0,.24); position: absolute; right: 1rem; z-index: 5; }
@media (max-width: 991.98px) {
  .system-log-page { --system-log-viewer-height: 62vh; }
  .system-log-col-time { width: 10.5rem; }
  .system-log-col-level { width: 6.7rem; }
  .system-log-col-correlation { width: 8rem; }
  .system-log-time, .system-log-correlation { font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) {
  .system-log-summary .card { transition: none; }
}

/* RabbitMQ management is intentionally given a workstation-style viewport inside the portal. */
.rabbitmq-shell {
    min-height: 70vh;
}

.rabbitmq-frame-wrap {
    position: relative;
    min-height: 72vh;
    background: var(--bs-body-bg);
    overflow: hidden;
}

.rabbitmq-management-frame {
    display: block;
    width: 100%;
    min-height: 72vh;
    height: calc(100vh - 260px);
    border: 0;
    background: #fff;
}

.rabbitmq-frame-loading {
    position: absolute;
    z-index: 2;
    inset: 0 0 auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 3rem;
    background: color-mix(in srgb, var(--bs-body-bg) 92%, transparent);
    border-bottom: 1px solid var(--bs-border-color);
    pointer-events: none;
}

.batch-tune-table th[data-bs-toggle="tooltip"],
[data-tooltip-heading] {
    cursor: help;
    text-decoration: underline dotted;
    text-underline-offset: .2rem;
}

@media (max-width: 767.98px) {
    .rabbitmq-management-frame,
    .rabbitmq-frame-wrap {
        min-height: 65vh;
        height: 65vh;
    }
}

.portal-help-term {
    cursor: help;
    text-decoration-line: underline;
    text-decoration-style: dotted;
    text-underline-offset: .18rem;
}

/* LIVE provider datasource step-up protection */
.provider-sensitive-wrapper {
    position: relative;
    overflow: hidden;
    min-height: 330px;
}
.provider-sensitive-content {
    transition: filter .2s ease, opacity .2s ease;
}
.provider-sensitive-wrapper.is-locked .provider-sensitive-content {
    filter: blur(7px);
    opacity: .62;
    pointer-events: none;
    user-select: none;
}
.provider-sensitive-overlay {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    padding: 1.25rem;
    background: rgba(248, 249, 250, .24);
    backdrop-filter: blur(1px);
}
.provider-sensitive-overlay-panel {
    width: min(520px, 100%);
    padding: 1.25rem;
    text-align: center;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(13,110,253,.22);
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(15,23,42,.18);
}
.provider-sensitive-lock-icon {
    width: 3.25rem;
    height: 3.25rem;
    display: inline-grid;
    place-items: center;
    margin-bottom: .75rem;
    border-radius: 50%;
    font-size: 1.4rem;
    color: var(--bs-primary);
    background: rgba(13,110,253,.1);
}
[data-bs-theme="dark"] .provider-sensitive-overlay-panel {
    background: rgba(33,37,41,.97);
}

/* Customer Portal + Service Desk */
.customer-portal-hero {
    background: radial-gradient(circle at 85% 15%, rgba(13,110,253,.20), transparent 36%),
                linear-gradient(135deg, var(--bs-body-bg), var(--bs-tertiary-bg));
}
.customer-portal-hero h2 { letter-spacing: -.025em; }
.support-comment { border-left: .22rem solid var(--bs-border-color); padding: .85rem 1rem; background: var(--bs-tertiary-bg); border-radius: .35rem; }
.support-comment.staff { border-left-color: var(--bs-primary); }
.support-comment.customer { border-left-color: var(--bs-info); }
.support-comment.internal { border-left-color: var(--bs-warning); background: var(--bs-warning-bg-subtle); }
.support-pre { max-height: 24rem; overflow: auto; white-space: pre-wrap; word-break: break-word; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .4rem; padding: .75rem; }
.support-terms { max-height: 38rem; overflow: auto; }
.worker-incident { background: var(--bs-tertiary-bg); }
.worker-incident-panel > .card-header { border-bottom-color: rgba(var(--bs-danger-rgb), .35); }
/* Operations: PII remains masked at rest/in markup; reveal styling is applied only after an audited copy request. */
.identity-number-value {
    white-space: nowrap;
}

.identity-number-revealed {
    font-weight: 700;
    text-decoration: underline dotted;
    text-underline-offset: 0.2rem;
}


/* Batch run navigation: make active/history status discoverable without manual URL construction. */
.batch-run-navigator {
    background: color-mix(in srgb, var(--bs-info-bg-subtle) 35%, transparent);
    border-color: color-mix(in srgb, var(--bs-info) 28%, var(--bs-border-color)) !important;
}
.batch-run-status-link {
    padding: .42rem .55rem;
    border-radius: .45rem;
    color: var(--bs-body-color);
    background: color-mix(in srgb, var(--bs-body-bg) 86%, var(--bs-info-bg-subtle));
    transition: transform .14s ease, background-color .14s ease, color .14s ease;
}
.batch-run-status-link:hover {
    color: var(--bs-primary);
    background: var(--bs-info-bg-subtle);
    transform: translateX(2px);
}

/* Intentionally understated platform-builder credit. */
.platform-builder-credit {
    display: inline-flex;
    align-items: baseline;
    gap: .22rem;
    font-size: .67rem;
    font-weight: 400;
    letter-spacing: .028em;
    opacity: .48;
    vertical-align: baseline;
    white-space: nowrap;
    transition: opacity .18s ease;
}
.platform-builder-credit:hover { opacity: .88; }
.platform-builder-prefix { font-size: .62rem; text-transform: lowercase; }
.platform-builder-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
    text-underline-offset: .14rem;
}
.platform-builder-link:hover { color: var(--bs-primary); }
.platform-builder-icon { font-size: .56rem; margin-left: .05rem; }
@media (max-width: 575.98px) {
    .platform-builder-credit { display: block; margin-left: 0 !important; margin-top: .16rem; }
}

/* Live operations dashboard ------------------------------------------------ */
.dashboard-live-strip {
    align-items: center;
    background:
        radial-gradient(circle at 0% 0%, rgba(var(--bs-primary-rgb), .08), transparent 34%),
        radial-gradient(circle at 100% 100%, rgba(var(--bs-info-rgb), .08), transparent 34%),
        color-mix(in srgb, var(--bs-body-bg) 92%, var(--bs-primary) 8%);
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 76%, var(--bs-primary) 24%);
    border-radius: .95rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .8rem .95rem;
    box-shadow: 0 .6rem 1.6rem rgba(15, 23, 42, .05);
}
.dashboard-live-dot {
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
    height: .65rem;
    width: .65rem;
}
.dashboard-live-dot.is-live { background: var(--bs-success); box-shadow: 0 0 0 .22rem rgba(var(--bs-success-rgb), .14); animation: dashboard-live-pulse 1.8s ease-in-out infinite; }
.dashboard-live-dot.is-connecting { background: var(--bs-warning); box-shadow: 0 0 0 .22rem rgba(var(--bs-warning-rgb), .14); animation: dashboard-live-pulse 1.15s ease-in-out infinite; }
.dashboard-live-dot.is-fallback { background: var(--bs-info); box-shadow: 0 0 0 .22rem rgba(var(--bs-info-rgb), .14); }
.dashboard-live-dot.is-error { background: var(--bs-danger); box-shadow: 0 0 0 .22rem rgba(var(--bs-danger-rgb), .14); }
@keyframes dashboard-live-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .55; transform: scale(.82); } }
.dashboard-live-signal-cluster { display: flex; flex-wrap: wrap; gap: .55rem; }
.dashboard-signal-chip {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.32);
    display: inline-flex;
    gap: .55rem;
    min-width: 10.25rem;
    padding: .36rem .7rem;
}
.dashboard-signal-pulse {
    border-radius: 50%;
    flex: 0 0 auto;
    height: .72rem;
    width: .72rem;
    animation: dashboard-beacon-pulse 1.9s ease-in-out infinite;
}
.dashboard-signal-copy { display: flex; flex-direction: column; line-height: 1.05; }
.dashboard-signal-copy strong { font-size: .73rem; letter-spacing: .02em; text-transform: uppercase; }
.dashboard-signal-copy small { color: var(--bs-secondary-color); font-size: .72rem; }
.dashboard-signal-chip.is-success .dashboard-signal-pulse { background: var(--bs-success); box-shadow: 0 0 0 .28rem rgba(var(--bs-success-rgb), .16), 0 0 .9rem rgba(var(--bs-success-rgb), .32); }
.dashboard-signal-chip.is-warning .dashboard-signal-pulse,
.dashboard-signal-chip.is-connecting .dashboard-signal-pulse { background: var(--bs-warning); box-shadow: 0 0 0 .28rem rgba(var(--bs-warning-rgb), .16), 0 0 .9rem rgba(var(--bs-warning-rgb), .28); }
.dashboard-signal-chip.is-danger .dashboard-signal-pulse { background: var(--bs-danger); box-shadow: 0 0 0 .28rem rgba(var(--bs-danger-rgb), .16), 0 0 .95rem rgba(var(--bs-danger-rgb), .3); }
.dashboard-signal-chip.is-info .dashboard-signal-pulse { background: var(--bs-info); box-shadow: 0 0 0 .28rem rgba(var(--bs-info-rgb), .16), 0 0 .95rem rgba(var(--bs-info-rgb), .28); }
@keyframes dashboard-beacon-pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.82); opacity: .65; } }
.dashboard-latency-guide { border-radius: .95rem; overflow: hidden; }
.dashboard-explainer-tile {
    align-items: flex-start;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 92%, var(--bs-primary) 8%);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    display: flex;
    gap: .85rem;
    padding: .95rem 1rem;
}
.dashboard-explainer-icon {
    align-items: center;
    border-radius: .8rem;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1rem;
    height: 2.5rem;
    justify-content: center;
    width: 2.5rem;
    box-shadow: 0 .45rem 1rem rgba(15,23,42,.08);
}
.dashboard-explainer-value { font-size: 1.4rem; font-weight: 700; letter-spacing: -.03em; }
.dashboard-latency-tip {
    background: color-mix(in srgb, var(--bs-info) 7%, var(--bs-body-bg));
    border: 1px dashed color-mix(in srgb, var(--bs-info) 35%, var(--bs-border-color));
    border-radius: .8rem;
    padding: .75rem .9rem;
}
.dashboard-live-stat {
    align-items: center;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .65rem;
    display: flex;
    justify-content: space-between;
    min-height: 2.65rem;
    padding: .55rem .8rem;
}
.dashboard-live-stat strong { font-variant-numeric: tabular-nums; }
.dashboard-hourly-overview {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.dashboard-measure-tile {
    background: linear-gradient(180deg, rgba(255,255,255,.38), rgba(255,255,255,0)), var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    display: flex;
    flex-direction: column;
    gap: .18rem;
    min-height: 5.6rem;
    padding: .8rem .9rem;
}
.dashboard-measure-tile strong { font-size: 1.35rem; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.dashboard-measure-tile small { color: var(--bs-secondary-color); }
.dashboard-meter-stack { display: grid; gap: .85rem; height: 100%; }
.dashboard-meter-card {
    background: color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-primary) 6%);
    border: 1px solid var(--bs-border-color);
    border-radius: .85rem;
    padding: .75rem .85rem;
}
.dashboard-meter-card .progress { background: color-mix(in srgb, var(--bs-tertiary-bg) 92%, var(--bs-border-color) 8%); height: .8rem; }
.dashboard-trend-panel, .dashboard-heatmap-panel, .dashboard-rhythm-panel, .dashboard-insight-panel {
    background: color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-primary) 4%);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    height: 100%;
    padding: .8rem .85rem;
}
.dashboard-trend-svg { display: block; height: 10.2rem; width: 100%; }
.dashboard-trend-grid { stroke: color-mix(in srgb, var(--bs-border-color) 72%, transparent); stroke-dasharray: 3 4; stroke-width: 1; }
.dashboard-trend-area { fill: rgba(var(--bs-primary-rgb), .10); }
.dashboard-trend-line { stroke: rgba(var(--bs-primary-rgb), .96); stroke-linecap: round; stroke-linejoin: round; stroke-width: 3; }
.dashboard-trend-point { fill: var(--bs-body-bg); stroke: rgba(var(--bs-primary-rgb), .92); stroke-width: 2.2; }
.dashboard-trend-point.is-current { fill: rgba(var(--bs-success-rgb), 1); stroke: rgba(var(--bs-success-rgb), .4); stroke-width: 4.6; }
.dashboard-heatmap { display: grid; gap: .35rem; grid-template-columns: repeat(6, minmax(0, 1fr)); }
.dashboard-heat-cell {
    align-items: flex-start;
    aspect-ratio: 1 / 1;
    border: 1px solid transparent;
    border-radius: .75rem;
    cursor: crosshair;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: .42rem;
}
.dashboard-heat-cell small { color: var(--bs-body-color); font-size: .62rem; opacity: .72; }
.dashboard-heat-cell span { font-size: .76rem; font-variant-numeric: tabular-nums; font-weight: 700; line-height: 1; }
.dashboard-heat-cell.level-0 { background: color-mix(in srgb, var(--bs-tertiary-bg) 96%, var(--bs-secondary) 4%); }
.dashboard-heat-cell.level-1 { background: rgba(var(--bs-primary-rgb), .10); }
.dashboard-heat-cell.level-2 { background: rgba(var(--bs-primary-rgb), .18); }
.dashboard-heat-cell.level-3 { background: rgba(var(--bs-primary-rgb), .26); }
.dashboard-heat-cell.level-4 { background: rgba(var(--bs-primary-rgb), .36); }
.dashboard-heat-cell.is-hot { border-color: rgba(var(--bs-danger-rgb), .42); box-shadow: inset 0 0 0 1px rgba(var(--bs-danger-rgb), .18); }
.dashboard-live-value-changed { animation: dashboard-live-value-change .55s ease-out; }
@keyframes dashboard-live-value-change {
    0% { opacity: .35; transform: translateY(-2px); }
    100% { opacity: 1; transform: translateY(0); }
}
@media (max-width: 1199.98px) {
    .dashboard-hourly-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .dashboard-live-strip { align-items: flex-start; flex-direction: column; gap: .45rem; }
    .dashboard-live-signal-cluster { width: 100%; }
    .dashboard-signal-chip { min-width: 0; flex: 1 1 13rem; }
}
@media (max-width: 767.98px) {
    .dashboard-hourly-overview { grid-template-columns: 1fr; }
    .dashboard-heatmap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
    .dashboard-live-dot, .dashboard-live-value-changed, .dashboard-signal-pulse { animation: none !important; }
}
.dashboard-live-rendered .dashboard-bar { animation: none; }

/* System manual ------------------------------------------------------------- */
.system-manual { scroll-behavior: smooth; }
.manual-hero {
    background:
        radial-gradient(circle at 12% 20%, rgba(var(--bs-primary-rgb), .16), transparent 34%),
        radial-gradient(circle at 88% 72%, rgba(var(--bs-info-rgb), .13), transparent 35%),
        linear-gradient(135deg, color-mix(in srgb, var(--bs-body-bg) 92%, var(--bs-primary) 8%), var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-border-color) 70%, var(--bs-primary) 30%);
}
.manual-hero-title { font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.045em; font-weight: 760; }
.manual-hero-orbit { border: 1px solid rgba(var(--bs-primary-rgb), .14); border-radius: 50%; position: absolute; }
.manual-hero-orbit-one { height: 18rem; right: -4rem; top: -7rem; width: 18rem; animation: manual-orbit 10s linear infinite; }
.manual-hero-orbit-two { bottom: -8rem; height: 24rem; left: 38%; width: 24rem; animation: manual-orbit 14s linear infinite reverse; }
@keyframes manual-orbit { to { transform: rotate(360deg); } }
.manual-hero-visual {
    align-items: center; background: color-mix(in srgb, var(--bs-body-bg) 84%, transparent); border: 1px solid var(--bs-border-color);
    border-radius: 1.35rem; box-shadow: 0 1.2rem 2.5rem rgba(15, 23, 42, .09); display: grid; gap: .6rem;
    grid-template-columns: 1fr .7fr 1fr .7fr 1fr; min-height: 13rem; overflow: hidden; padding: 1.25rem; position: relative;
}
.manual-flow-node { align-items: center; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 1rem; display: flex; flex-direction: column; gap: .35rem; justify-content: center; min-height: 7rem; position: relative; text-align: center; z-index: 2; }
.manual-flow-node i { font-size: 1.55rem; }
.manual-flow-node span { font-size: .76rem; font-weight: 700; }
.manual-flow-node.is-portal { border-color: rgba(var(--bs-primary-rgb), .45); box-shadow: 0 0 1.4rem rgba(var(--bs-primary-rgb), .13); }
.manual-flow-node.is-service { border-color: rgba(var(--bs-success-rgb), .4); }
.manual-flow-line { background: linear-gradient(90deg, rgba(var(--bs-primary-rgb), .15), rgba(var(--bs-primary-rgb), .8), rgba(var(--bs-primary-rgb), .15)); height: 2px; position: relative; }
.manual-flow-packet { background: var(--bs-primary); border-radius: 50%; box-shadow: 0 0 .7rem rgba(var(--bs-primary-rgb), .7); height: .5rem; left: 16%; position: absolute; top: 50%; width: .5rem; z-index: 3; }
.manual-flow-packet.packet-one { animation: manual-packet 3.4s ease-in-out infinite; }
.manual-flow-packet.packet-two { animation: manual-packet 3.4s ease-in-out 1.7s infinite; }
@keyframes manual-packet { 0% { left: 15%; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 84%; opacity: 0; } }
.manual-navigator { top: 1rem; }
.manual-topic-list { max-height: calc(100vh - 15rem); overflow: auto; }
.manual-topic-link { border-radius: .55rem; color: var(--bs-body-color); font-size: .82rem; padding: .42rem .55rem; text-decoration: none; }
.manual-topic-link:hover, .manual-topic-link:focus { background: var(--bs-tertiary-bg); color: var(--bs-primary); }
.manual-section { scroll-margin-top: 1rem; overflow: hidden; }
.manual-section.is-filtered-out { display: none; }
.manual-step { align-items: center; background: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg)); border: 1px solid rgba(var(--bs-primary-rgb), .25); border-radius: 50%; color: var(--bs-primary); display: inline-flex; font-size: .75rem; height: 1.85rem; justify-content: center; margin-right: .45rem; width: 1.85rem; }
.manual-do-card { align-items: flex-start; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .8rem; display: flex; gap: .75rem; padding: .75rem .85rem; }
.manual-do-card > i { color: var(--bs-primary); font-size: 1.2rem; margin-top: .05rem; }
.manual-screen-map { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 1rem; box-shadow: 0 .8rem 1.8rem rgba(15,23,42,.08); overflow: hidden; }
.manual-screen-top, .manual-screen-footer { background: var(--bs-tertiary-bg); color: var(--bs-secondary-color); font-size: .7rem; padding: .55rem .75rem; }
.manual-screen-body { display: grid; grid-template-columns: 30% 70%; min-height: 9rem; }
.manual-screen-side { background: color-mix(in srgb, var(--bs-dark) 86%, var(--bs-primary) 14%); color: #fff; font-size: .74rem; padding: .75rem; }
.manual-screen-content { align-items: center; display: flex; flex-direction: column; font-weight: 700; justify-content: center; text-align: center; }
.manual-screen-content small { color: var(--bs-secondary-color); font-weight: 400; }
.manual-architecture-flow, .manual-lifecycle, .manual-recovery-flow { align-items: center; display: flex; gap: .65rem; justify-content: space-between; }
.manual-arch-node { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .95rem; display: flex; flex: 1; flex-direction: column; gap: .25rem; min-height: 8rem; justify-content: center; padding: .8rem; text-align: center; }
.manual-arch-node i { font-size: 1.45rem; }
.manual-arch-node small { color: var(--bs-secondary-color); }
.manual-arch-node.is-primary { border-color: rgba(var(--bs-primary-rgb), .4); box-shadow: 0 0 1.4rem rgba(var(--bs-primary-rgb), .09); }
.manual-arch-arrow { color: var(--bs-primary); animation: manual-arrow-pulse 1.7s ease-in-out infinite; }
@keyframes manual-arrow-pulse { 0%,100% { opacity: .35; transform: translateX(-2px); } 50% { opacity: 1; transform: translateX(2px); } }
.manual-concept { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .85rem; display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: .85rem; }
.manual-concept i { color: var(--bs-primary); font-size: 1.2rem; }
.manual-concept span { color: var(--bs-secondary-color); font-size: .8rem; }
.manual-lifecycle > div { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .85rem; display: flex; flex: 1; flex-direction: column; gap: .25rem; min-height: 6.8rem; justify-content: center; padding: .7rem; text-align: center; }
.manual-lifecycle > div > span { align-items: center; background: var(--bs-primary); border-radius: 50%; color: #fff; display: inline-flex; font-size: .7rem; height: 1.55rem; justify-content: center; width: 1.55rem; }
.manual-lifecycle small { color: var(--bs-secondary-color); }
.manual-support-lane { align-items: center; border-bottom: 1px solid var(--bs-border-color); display: grid; gap: .75rem; grid-template-columns: 7rem 1fr auto 10rem; padding: .7rem 0; }
.manual-support-lane:last-child { border-bottom: 0; }
.manual-support-lane > span:first-child { border-radius: 999px; color: #fff; font-size: .72rem; font-weight: 700; padding: .35rem .6rem; text-align: center; }
.manual-support-lane .is-danger { background: var(--bs-danger); }
.manual-support-lane .is-warning { background: var(--bs-warning); color: #111; }
.manual-support-lane .is-info { background: var(--bs-info); color: #111; }
.manual-code-flow, .manual-audit-row { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .85rem; display: flex; flex-wrap: wrap; gap: .65rem; justify-content: center; padding: .9rem; }
.manual-mini-chart { align-items: end; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .9rem; display: grid; gap: .35rem; grid-template-columns: repeat(8,1fr); height: 10rem; margin-bottom: 1rem; padding: .8rem .8rem 1.7rem; position: relative; }
.manual-mini-chart > div { background: var(--bs-primary); border-radius: .35rem .35rem .08rem .08rem; }
.manual-mini-chart > div.is-warning { background: var(--bs-warning); }
.manual-mini-chart > div.is-danger { background: var(--bs-danger); }
.manual-mini-chart > span { bottom: .35rem; color: var(--bs-secondary-color); font-size: .66rem; position: absolute; }
.manual-mini-chart > span:nth-of-type(1) { left: .8rem; } .manual-mini-chart > span:nth-of-type(2) { right: 3.3rem; } .manual-mini-chart > span:nth-of-type(3) { right: .65rem; }
.manual-batch-illustration { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: 1rem; display: grid; gap: .75rem; grid-template-columns: 1.1fr 1.3fr 1.1fr 1fr 1.2fr; padding: 1rem; }
.manual-batch-source, .manual-batch-worker, .manual-batch-result { align-items: center; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: .8rem; display: flex; flex-direction: column; gap: .25rem; min-height: 7rem; justify-content: center; text-align: center; }
.manual-batch-source i, .manual-batch-worker i, .manual-batch-result i { color: var(--bs-primary); font-size: 1.45rem; }
.manual-batch-source small, .manual-batch-worker small, .manual-batch-result small { color: var(--bs-secondary-color); font-size: .7rem; }
.manual-batch-stream { display: flex; gap: .3rem; justify-content: center; }
.manual-batch-stream span { animation: manual-work-item 1.5s ease-in-out infinite; background: var(--bs-primary); border-radius: .25rem; height: .65rem; width: .65rem; }
.manual-batch-stream span:nth-child(2) { animation-delay: .15s; } .manual-batch-stream span:nth-child(3) { animation-delay: .3s; } .manual-batch-stream span:nth-child(4) { animation-delay: .45s; } .manual-batch-stream span:nth-child(5) { animation-delay: .6s; }
@keyframes manual-work-item { 0%,100% { opacity:.28; transform: translateY(0); } 50% { opacity:1; transform: translateY(-3px); } }
.manual-provider-mode { align-items: flex-start; border: 1px solid var(--bs-border-color); border-radius: .9rem; display: grid; gap: .25rem .65rem; grid-template-columns: auto 1fr; padding: .9rem; }
.manual-provider-mode > span { border-radius: 50%; grid-row: span 2; height: .8rem; margin-top: .2rem; width: .8rem; }
.manual-provider-mode small { color: var(--bs-secondary-color); }
.manual-provider-mode.is-mock > span { background: var(--bs-warning); box-shadow: 0 0 .6rem rgba(var(--bs-warning-rgb),.4); }
.manual-provider-mode.is-live > span { animation: manual-live-glow 1.8s ease-in-out infinite; background: var(--bs-success); box-shadow: 0 0 .7rem rgba(var(--bs-success-rgb),.45); }
@keyframes manual-live-glow { 50% { box-shadow: 0 0 1.1rem rgba(var(--bs-success-rgb),.75); transform: scale(.82); } }
.manual-recovery-flow > div { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .8rem; display: flex; flex: 1; flex-direction: column; gap: .35rem; min-height: 6.2rem; justify-content: center; text-align: center; }
.manual-troubleshooting-grid { display: grid; gap: .75rem; grid-template-columns: repeat(4,1fr); }
.manual-troubleshooting-grid > div { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .85rem; display: flex; flex-direction: column; gap: .35rem; padding: .85rem; }
.manual-troubleshooting-grid > div > span { align-items:center; background: var(--bs-primary); border-radius: 50%; color:#fff; display:inline-flex; font-size:.7rem; height:1.5rem; justify-content:center; width:1.5rem; }
.manual-troubleshooting-grid small { color: var(--bs-secondary-color); }
@media (max-width: 991.98px) {
    .manual-architecture-flow, .manual-lifecycle, .manual-recovery-flow { align-items: stretch; flex-direction: column; }
    .manual-arch-arrow { transform: rotate(90deg); }
    .manual-support-lane { grid-template-columns: 6.5rem 1fr; }
    .manual-support-lane > i, .manual-support-lane > strong { display:none; }
    .manual-batch-illustration { grid-template-columns: 1fr; }
    .manual-troubleshooting-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 575.98px) {
    .manual-hero-visual { grid-template-columns: 1fr; }
    .manual-flow-line { height: 2rem; width: 2px; justify-self: center; }
    .manual-flow-packet { display:none; }
    .manual-troubleshooting-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .manual-hero-orbit, .manual-flow-packet, .manual-arch-arrow, .manual-batch-stream span, .manual-provider-mode.is-live > span { animation: none !important; }
}
@media print {
    .app-header, .app-sidebar, .app-footer, #portal-loader, .manual-navigator, .manual-hero .btn, .manual-hero-orbit, .manual-flow-packet { display:none !important; }
    .app-main { margin: 0 !important; }
    .manual-section { break-inside: avoid; }
}

/* Guided tenant onboarding -------------------------------------------------- */
.tenant-onboarding-header {
    background: linear-gradient(135deg, color-mix(in srgb, var(--bs-primary) 7%, var(--bs-body-bg)), var(--bs-body-bg));
}
.tenant-onboarding-shell {
    display: grid;
    grid-template-columns: 15.5rem minmax(0, 1fr);
    min-height: 34rem;
}
.tenant-onboarding-rail {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 92%, var(--bs-primary) 8%);
    border-right: 1px solid var(--bs-border-color);
    padding: 1.2rem 1rem;
}
.tenant-onboarding-progress-label {
    color: var(--bs-secondary-color);
    display: flex;
    font-size: .7rem;
    font-weight: 700;
    justify-content: space-between;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.tenant-onboarding-progress { height: .42rem; }
.tenant-onboarding-nav {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: .8rem;
    color: var(--bs-secondary-color);
    display: flex;
    gap: .7rem;
    margin-bottom: .3rem;
    padding: .65rem .7rem;
    text-align: left;
    transition: background .15s ease, color .15s ease, transform .15s ease;
    width: 100%;
}
.tenant-onboarding-nav > span {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .72rem;
    font-weight: 800;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}
.tenant-onboarding-nav div { display: flex; flex-direction: column; min-width: 0; }
.tenant-onboarding-nav strong { color: var(--bs-body-color); font-size: .82rem; }
.tenant-onboarding-nav small { font-size: .69rem; }
.tenant-onboarding-nav.is-active { background: var(--bs-body-bg); box-shadow: 0 .35rem .9rem rgba(15,23,42,.06); color: var(--bs-primary); }
.tenant-onboarding-nav.is-active > span { background: var(--bs-primary); border-color: var(--bs-primary); color: #fff; box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .10); }
.tenant-onboarding-nav.is-complete > span { background: var(--bs-success); border-color: var(--bs-success); color: #fff; }
.tenant-onboarding-nav:disabled { cursor: default; opacity: .68; }
.tenant-onboarding-rail-note {
    align-items: flex-start;
    border-top: 1px dashed var(--bs-border-color);
    color: var(--bs-secondary-color);
    display: flex;
    font-size: .72rem;
    gap: .5rem;
    line-height: 1.45;
    padding: .9rem .35rem 0;
}
.tenant-onboarding-rail-note i { color: var(--bs-success); font-size: 1rem; }
.tenant-onboarding-content {
    max-height: 68vh;
    overflow-y: auto;
    padding: 1.5rem;
}
.tenant-onboarding-step-heading { align-items: flex-start; display: flex; gap: .9rem; margin-bottom: 1.25rem; }
.tenant-onboarding-step-heading h4 { font-size: 1.18rem; margin: 0 0 .2rem; }
.tenant-onboarding-step-heading p { color: var(--bs-secondary-color); font-size: .86rem; margin: 0; }
.tenant-onboarding-step-icon {
    align-items: center;
    background: color-mix(in srgb, var(--bs-primary) 12%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-primary) 25%, var(--bs-border-color));
    border-radius: .85rem;
    color: var(--bs-primary);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.15rem;
    height: 2.65rem;
    justify-content: center;
    width: 2.65rem;
}
.tenant-onboarding-insight {
    align-items: flex-start;
    background: color-mix(in srgb, var(--bs-info) 6%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-info) 22%, var(--bs-border-color));
    border-radius: .8rem;
    display: flex;
    gap: .65rem;
    padding: .75rem .85rem;
}
.tenant-onboarding-insight > i { color: var(--bs-info); font-size: 1.05rem; margin-top: .05rem; }
.tenant-onboarding-insight div { display: grid; gap: .12rem; }
.tenant-onboarding-insight strong { font-size: .78rem; }
.tenant-onboarding-insight span { color: var(--bs-secondary-color); font-size: .76rem; line-height: 1.45; }
.tenant-product-choice {
    align-items: center;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    cursor: pointer;
    display: flex;
    gap: .75rem;
    min-height: 5.2rem;
    padding: .8rem .9rem;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.tenant-product-choice:has(input:checked) { border-color: rgba(var(--bs-primary-rgb), .48); box-shadow: 0 0 0 .18rem rgba(var(--bs-primary-rgb), .08); }
.tenant-product-choice:hover { transform: translateY(-1px); }
.tenant-product-choice > input { flex: 0 0 auto; }
.tenant-product-choice > span:last-child { display: flex; flex-direction: column; gap: .1rem; }
.tenant-product-choice small { color: var(--bs-secondary-color); }
.tenant-product-icon { align-items: center; background: var(--bs-tertiary-bg); border-radius: .7rem; color: var(--bs-primary); display: inline-flex; flex: 0 0 auto; font-size: 1.2rem; height: 2.4rem; justify-content: center; width: 2.4rem; }
.tenant-pricing-grid { display: grid; gap: .65rem; grid-template-columns: repeat(4, minmax(0,1fr)); }
.tenant-price-card { background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .75rem; display: grid; gap: .45rem; padding: .7rem; }
.tenant-price-card > span { font-size: .72rem; font-weight: 700; }
.tenant-onboarding-review { border: 1px solid var(--bs-border-color); border-radius: .85rem; overflow: hidden; }
.tenant-onboarding-review-row { align-items: flex-start; border-bottom: 1px solid var(--bs-border-color-translucent); display: grid; gap: 1rem; grid-template-columns: 10rem minmax(0, 1fr); padding: .7rem .85rem; }
.tenant-onboarding-review-row:last-child { border-bottom: 0; }
.tenant-onboarding-review-row span { color: var(--bs-secondary-color); font-size: .76rem; }
.tenant-onboarding-review-row strong { font-size: .8rem; overflow-wrap: anywhere; }
.tenant-onboarding-footer { background: var(--bs-body-bg); border-top: 1px solid var(--bs-border-color); }
.tenant-onboarding-complete-header { background: linear-gradient(135deg, color-mix(in srgb, var(--bs-success) 9%, var(--bs-body-bg)), var(--bs-body-bg)); }
.tenant-onboarding-complete-icon { align-items: center; background: var(--bs-success); border-radius: 50%; color: #fff; display: inline-flex; font-size: 1.2rem; height: 2.7rem; justify-content: center; width: 2.7rem; box-shadow: 0 0 0 .3rem rgba(var(--bs-success-rgb), .12); }
.tenant-readiness-item { align-items: flex-start; border: 1px solid var(--bs-border-color); border-radius: .8rem; display: flex; gap: .65rem; min-height: 4.5rem; padding: .7rem .8rem; }
.tenant-readiness-item > span { font-size: 1rem; margin-top: .05rem; }
.tenant-readiness-item > div { display: flex; flex-direction: column; gap: .12rem; }
.tenant-readiness-item strong { font-size: .78rem; }
.tenant-readiness-item small { color: var(--bs-secondary-color); line-height: 1.35; }
.tenant-readiness-item.is-ready { background: color-mix(in srgb, var(--bs-success) 5%, var(--bs-body-bg)); border-color: color-mix(in srgb, var(--bs-success) 28%, var(--bs-border-color)); }
.tenant-readiness-item.is-ready > span { color: var(--bs-success); }
.tenant-readiness-item.is-blocked { background: color-mix(in srgb, var(--bs-danger) 5%, var(--bs-body-bg)); border-color: color-mix(in srgb, var(--bs-danger) 28%, var(--bs-border-color)); }
.tenant-readiness-item.is-blocked > span { color: var(--bs-danger); }
.tenant-readiness-item.is-optional > span { color: var(--bs-info); }
.tenant-secret-card { background: color-mix(in srgb, var(--bs-tertiary-bg) 94%, var(--bs-primary) 6%); border: 1px solid var(--bs-border-color); border-radius: .85rem; height: 100%; padding: .85rem; }
.tenant-secret-label { color: var(--bs-secondary-color); font-size: .7rem; font-weight: 800; letter-spacing: .045em; margin-bottom: .55rem; text-transform: uppercase; }
.tenant-secret-row { align-items: center; border-top: 1px dashed var(--bs-border-color); display: grid; gap: .55rem; grid-template-columns: 7rem minmax(0,1fr) auto; padding: .48rem 0; }
.tenant-secret-row:first-of-type { border-top: 0; }
.tenant-secret-row > span { color: var(--bs-secondary-color); font-size: .72rem; }
.tenant-secret-row code { font-size: .74rem; user-select: all; }
.tenant-handoff-next { background: color-mix(in srgb, var(--bs-primary) 5%, var(--bs-body-bg)); border: 1px solid var(--bs-border-color); border-radius: .85rem; padding: .8rem .9rem; }
.tenant-handoff-flow { align-items: center; display: flex; flex-wrap: wrap; gap: .45rem; }
.tenant-handoff-flow span { align-items: center; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 999px; display: inline-flex; font-size: .72rem; gap: .35rem; padding: .35rem .55rem; }
.tenant-handoff-flow b { align-items: center; background: var(--bs-primary); border-radius: 50%; color: #fff; display: inline-flex; font-size: .62rem; height: 1.2rem; justify-content: center; width: 1.2rem; }
.tenant-handoff-flow > i { color: var(--bs-secondary-color); }
@media (max-width: 991.98px) {
    .tenant-onboarding-shell { grid-template-columns: 1fr; }
    .tenant-onboarding-rail { border-bottom: 1px solid var(--bs-border-color); border-right: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
    .tenant-onboarding-progress-label, .tenant-onboarding-progress, .tenant-onboarding-rail-note { flex-basis: 100%; }
    .tenant-onboarding-nav { flex: 1 1 10rem; margin: 0; }
    .tenant-onboarding-content { max-height: 57vh; }
    .tenant-pricing-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
    .tenant-onboarding-nav small { display: none; }
    .tenant-pricing-grid { grid-template-columns: 1fr; }
    .tenant-onboarding-review-row { grid-template-columns: 1fr; gap: .15rem; }
    .tenant-secret-row { grid-template-columns: 1fr auto; }
    .tenant-secret-row > span { grid-column: 1 / -1; }
    .tenant-handoff-flow > i { display: none; }
}

/* Verification recovery controls ------------------------------------------ */
.verification-pipeline-control-card {
    background:
        radial-gradient(circle at 0 0, rgba(var(--bs-primary-rgb), .08), transparent 34%),
        var(--bs-body-bg);
}
.pipeline-control-dot {
    border-radius: 50%;
    display: inline-block;
    height: .55rem;
    margin-right: .28rem;
    width: .55rem;
    vertical-align: .02rem;
}
.pipeline-control-dot.is-live {
    background: var(--bs-success);
    box-shadow: 0 0 0 .18rem rgba(var(--bs-success-rgb), .15), 0 0 .7rem rgba(var(--bs-success-rgb), .35);
    animation: pipeline-control-pulse 1.8s ease-in-out infinite;
}
.pipeline-control-dot.is-paused {
    background: var(--bs-secondary);
    box-shadow: 0 0 0 .18rem rgba(var(--bs-secondary-rgb), .12);
}
.pipeline-wake-button,
.batch-wake-button {
    position: relative;
    box-shadow: 0 0 0 0 rgba(var(--bs-primary-rgb), .25);
    animation: pipeline-wake-glow 2.4s ease-in-out infinite;
}
@keyframes pipeline-control-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .55; transform: scale(.82); }
}
@keyframes pipeline-wake-glow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(var(--bs-primary-rgb), .16); }
    50% { box-shadow: 0 0 0 .3rem rgba(var(--bs-primary-rgb), .08), 0 0 1rem rgba(var(--bs-primary-rgb), .16); }
}
@media (prefers-reduced-motion: reduce) {
    .pipeline-control-dot.is-live,
    .pipeline-wake-button,
    .batch-wake-button { animation: none !important; }
}


/* Portal modal viewport containment ----------------------------------------- */
/*
 * AJAX modal partials wrap header/body/footer in a <form>. Bootstrap's native
 * .modal-dialog-scrollable rules expect those sections to be direct children
 * of .modal-content, so a tall form can otherwise make the outer .modal/page
 * own the scrollbar. Keep the chrome fixed and scroll only the form body.
 */
#portal-modal .modal-dialog.modal-dialog-scrollable {
    height: calc(100% - var(--bs-modal-margin) * 2);
    max-height: calc(100% - var(--bs-modal-margin) * 2);
}

#portal-modal .modal-dialog.modal-dialog-scrollable .modal-content {
    max-height: 100%;
    overflow: hidden;
}

#portal-modal .modal-dialog.modal-dialog-scrollable .modal-content > .portal-scrollable-modal-form {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    width: 100%;
}

#portal-modal .portal-scrollable-modal-form > .modal-header,
#portal-modal .portal-scrollable-modal-form > .modal-footer {
    flex: 0 0 auto;
}

#portal-modal .portal-scrollable-modal-form > .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}

#portal-modal .portal-scrollable-modal-form > .modal-body:focus-visible {
    outline: 2px solid rgba(var(--bs-primary-rgb), .35);
    outline-offset: -2px;
}

@media (max-width: 575.98px) {
    #portal-modal .modal-dialog.modal-dialog-scrollable {
        height: calc(100% - 1rem);
        max-height: calc(100% - 1rem);
        margin: .5rem;
    }
}

/* Global platform health / incident beacon -------------------------------- */
.platform-health-top-trigger {
    align-items: center;
    border: 1px solid var(--bs-border-color) !important;
    border-radius: 999px;
    display: inline-flex !important;
    margin-block: .18rem;
    padding: .32rem .65rem !important;
}
.platform-health-sidebar-trigger {
    align-items: center;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 999px;
    color: inherit;
    display: inline-flex;
    gap: .35rem;
    padding: .18rem .42rem;
}
.platform-health-light {
    background: var(--bs-secondary);
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
    height: .72rem;
    width: .72rem;
}
.platform-health-light.is-loading {
    background: var(--bs-info);
    box-shadow: 0 0 0 .22rem rgba(var(--bs-info-rgb), .13);
    animation: platform-health-pulse 1.2s ease-in-out infinite;
}
.platform-health-light.is-healthy {
    background: var(--bs-success);
    box-shadow: 0 0 0 .22rem rgba(var(--bs-success-rgb), .16), 0 0 .9rem rgba(var(--bs-success-rgb), .35);
    animation: platform-health-breathe 2.1s ease-in-out infinite;
}
.platform-health-light.is-degraded {
    background: var(--bs-warning);
    box-shadow: 0 0 0 .25rem rgba(var(--bs-warning-rgb), .18), 0 0 1rem rgba(var(--bs-warning-rgb), .5);
    animation: platform-health-pulse 1.15s ease-in-out infinite;
}
.platform-health-light.is-critical {
    background: var(--bs-danger);
    box-shadow: 0 0 0 .28rem rgba(var(--bs-danger-rgb), .2), 0 0 1.1rem rgba(var(--bs-danger-rgb), .62);
    animation: platform-health-critical-flash .72s ease-in-out infinite;
}
@keyframes platform-health-breathe { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .68; transform: scale(.88); } }
@keyframes platform-health-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .48; transform: scale(.78); } }
@keyframes platform-health-critical-flash { 0%,100% { opacity: 1; transform: scale(1); } 45% { opacity: .3; transform: scale(.72); } 55% { opacity: 1; transform: scale(1.08); } }
.platform-health-panel { --bs-offcanvas-width: min(36rem, 96vw); }
.platform-health-overview {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.platform-health-overview > div {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .8rem;
    display: flex;
    flex-direction: column;
    padding: .7rem .8rem;
}
.platform-health-overview strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.platform-health-alert {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-left-width: .3rem;
    border-radius: .8rem;
    box-shadow: 0 .3rem .8rem rgba(15,23,42,.04);
    padding: .8rem .9rem;
}
.platform-health-alert.is-warning { border-left-color: var(--bs-warning); }
.platform-health-alert.is-critical {
    border-left-color: var(--bs-danger);
    box-shadow: 0 0 0 1px rgba(var(--bs-danger-rgb), .05), 0 .35rem .9rem rgba(var(--bs-danger-rgb), .08);
}
.platform-health-fix {
    background: var(--bs-tertiary-bg);
    border-radius: .55rem;
    padding: .55rem .65rem;
}
.platform-health-empty {
    align-items: center;
    border: 1px dashed var(--bs-border-color);
    border-radius: .85rem;
    color: var(--bs-success);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: 2rem 1rem;
    text-align: center;
}
.platform-health-empty i { font-size: 2rem; }
.platform-health-empty span { color: var(--bs-secondary-color); font-size: .85rem; }

/* Recovery centre: bounded history instead of an endlessly growing page. */
.worker-recovery-scroll-container {
    max-height: min(62vh, 42rem);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
.worker-incident.is-archived { opacity: .86; background: var(--bs-tertiary-bg); }
.worker-recovery-history > summary { cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
    .platform-health-light { animation: none !important; }
}
.platform-health-toast-container { z-index: 1095; pointer-events: none; }
.platform-health-toast { border-color: rgba(var(--bs-danger-rgb), .35); box-shadow: 0 .85rem 2rem rgba(var(--bs-danger-rgb), .2); pointer-events: auto; }
.platform-health-toast .toast-header { background: color-mix(in srgb, var(--bs-danger) 8%, var(--bs-body-bg)); }
.platform-health-fix { white-space: pre-line; }

/* Batch command card ------------------------------------------------------- */
.batch-command-title { flex: 1 1 42rem; }
.batch-command-meta {
    align-items: center;
    color: var(--bs-secondary-color);
    display: flex;
    flex-wrap: wrap;
    font-size: .82rem;
    gap: .45rem .9rem;
}
.batch-command-meta > span {
    align-items: center;
    display: inline-flex;
    min-width: 0;
}
.batch-command-meta code {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 88%, var(--bs-primary) 12%);
    border: 1px solid var(--bs-border-color);
    border-radius: .4rem;
    color: var(--bs-body-color);
    font-size: .76rem;
    padding: .08rem .35rem;
}
.batch-attention-chip {
    align-items: center;
    background: color-mix(in srgb, var(--bs-danger) 8%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-danger) 32%, var(--bs-border-color));
    border-radius: 999px;
    color: var(--bs-danger-text-emphasis);
    display: inline-flex;
    font-size: .75rem;
    font-weight: 700;
    gap: .4rem;
    padding: .18rem .55rem;
}
.batch-attention-dot {
    background: var(--bs-danger);
    border-radius: 50%;
    box-shadow: 0 0 0 .2rem rgba(var(--bs-danger-rgb), .12);
    height: .5rem;
    width: .5rem;
    animation: batch-attention-pulse 1.35s ease-in-out infinite;
}
@keyframes batch-attention-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: .5; transform: scale(.78); }
}
.batch-command-grid {
    display: grid;
    gap: .65rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.batch-command-metric {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 92%, var(--bs-primary) 8%);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    display: flex;
    flex-direction: column;
    min-height: 5.15rem;
    padding: .68rem .78rem;
}
.batch-command-metric > span:first-child {
    color: var(--bs-secondary-color);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.batch-command-metric > strong {
    font-size: 1.22rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.025em;
    line-height: 1.2;
    margin-top: .15rem;
}
.batch-command-metric > small {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    line-height: 1.25;
    margin-top: auto;
}
.batch-progress-shell {
    background: color-mix(in srgb, var(--bs-body-bg) 96%, var(--bs-primary) 4%);
    border: 1px solid var(--bs-border-color);
    border-radius: .78rem;
    padding: .72rem .82rem;
}
.batch-command-progress {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 90%, var(--bs-border-color) 10%);
    border-radius: 999px;
    height: .82rem;
    overflow: hidden;
}
.batch-command-progress .progress-bar {
    border-radius: 999px;
    box-shadow: 0 0 .75rem rgba(var(--bs-primary-rgb), .18);
    transition: width .35s ease;
}
.batch-technical-details {
    background: color-mix(in srgb, var(--bs-tertiary-bg) 96%, var(--bs-secondary) 4%);
    border: 1px solid var(--bs-border-color);
    border-radius: .72rem;
    overflow: hidden;
}
.batch-technical-details summary {
    cursor: pointer;
    font-size: .8rem;
    font-weight: 700;
    list-style: none;
    padding: .62rem .78rem;
}
.batch-technical-details summary::-webkit-details-marker { display: none; }
.batch-technical-details summary::after {
    color: var(--bs-secondary-color);
    content: "Show";
    float: right;
    font-size: .7rem;
    font-weight: 600;
}
.batch-technical-details[open] summary::after { content: "Hide"; }
.batch-technical-details-body {
    border-top: 1px solid var(--bs-border-color);
    display: grid;
    gap: .55rem;
    padding: .7rem .78rem;
}
.batch-technical-details-body > div {
    display: grid;
    gap: .2rem;
    grid-template-columns: 8.5rem minmax(0, 1fr);
}
.batch-technical-details-body strong {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    text-transform: uppercase;
}
.batch-technical-details-body span,
.batch-technical-details-body code {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}
@media (max-width: 1399.98px) {
    .batch-command-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
    .batch-command-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .batch-control-toolbar { width: 100%; }
}
@media (max-width: 575.98px) {
    .batch-command-grid { grid-template-columns: 1fr; }
    .batch-technical-details-body > div { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .batch-attention-dot { animation: none !important; }
}

/* SQL Storage Management --------------------------------------------------- */
.storage-live-strip {
    align-items: center;
    background: color-mix(in srgb, var(--bs-body-bg) 94%, var(--bs-primary) 6%);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .7rem .85rem;
}
.storage-state-light,
.storage-advisor-dot,
.storage-alert-beacon {
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
}
.storage-state-light { height: .72rem; width: .72rem; }
.storage-state-light.is-success { background: var(--bs-success); box-shadow: 0 0 0 .28rem rgba(var(--bs-success-rgb), .13); }
.storage-state-light.is-warning { background: var(--bs-warning); box-shadow: 0 0 0 .28rem rgba(var(--bs-warning-rgb), .15); animation: storage-pulse 1.7s ease-in-out infinite; }
.storage-state-light.is-danger { background: var(--bs-danger); box-shadow: 0 0 0 .28rem rgba(var(--bs-danger-rgb), .15), 0 0 1rem rgba(var(--bs-danger-rgb), .22); animation: storage-pulse 1.05s ease-in-out infinite; }
.storage-capacity-alert { border-left-width: .3rem; }
.storage-alert-beacon { background: var(--bs-danger); height: .95rem; margin-top: .25rem; width: .95rem; box-shadow: 0 0 0 .35rem rgba(var(--bs-danger-rgb), .13); animation: storage-pulse 1.05s ease-in-out infinite; }
.storage-metric-card .progress { height: .55rem; }
.storage-metric-value { font-size: 1.65rem; font-weight: 700; letter-spacing: -.04em; font-variant-numeric: tabular-nums; margin: .15rem 0; }
.storage-file-table td, .storage-file-table th { padding: .7rem .75rem; }
.storage-advisor-list { display: grid; gap: .65rem; max-height: 27rem; overflow-y: auto; scrollbar-gutter: stable; }
.storage-advisor-item { border: 1px solid var(--bs-border-color); border-left-width: .28rem; border-radius: .75rem; padding: .75rem .8rem; }
.storage-advisor-item.is-danger { border-left-color: var(--bs-danger); }
.storage-advisor-item.is-warning { border-left-color: var(--bs-warning); }
.storage-advisor-item.is-info { border-left-color: var(--bs-info); }
.storage-advisor-item.is-success { border-left-color: var(--bs-success); }
.storage-advisor-item.is-danger .storage-advisor-dot { background: var(--bs-danger); }
.storage-advisor-item.is-warning .storage-advisor-dot { background: var(--bs-warning); }
.storage-advisor-item.is-info .storage-advisor-dot { background: var(--bs-info); }
.storage-advisor-item.is-success .storage-advisor-dot { background: var(--bs-success); }
.storage-advisor-dot { height: .55rem; width: .55rem; }
.storage-actions-card { border-color: color-mix(in srgb, var(--bs-primary) 26%, var(--bs-border-color)); }
.storage-action-tile { align-items: flex-start; border: 1px solid var(--bs-border-color); border-radius: .85rem; display: flex; flex-direction: column; gap: .7rem; padding: .9rem; }
.storage-action-icon { align-items: center; background: var(--bs-tertiary-bg); border: 1px solid var(--bs-border-color); border-radius: .75rem; display: inline-flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.storage-object-bars { display: grid; gap: .65rem; }
.storage-object-row { align-items: center; display: grid; gap: .75rem; grid-template-columns: minmax(12rem, 1.5fr) minmax(12rem, 4fr) minmax(8rem, 1fr); }
.storage-object-label, .storage-object-value { display: flex; flex-direction: column; }
.storage-object-label span, .storage-object-value span { color: var(--bs-secondary-color); font-size: .78rem; }
.storage-object-value { text-align: right; }
.storage-object-track { background: var(--bs-tertiary-bg); border-radius: 999px; height: .65rem; overflow: hidden; }
.storage-object-fill { background: var(--bs-primary); border-radius: inherit; height: 100%; min-width: .15rem; transition: width .45s ease; }
.storage-change-preview { background: color-mix(in srgb, var(--bs-primary) 5%, var(--bs-body-bg)); border: 1px solid var(--bs-border-color); border-radius: .8rem; padding: .8rem .9rem; }
@keyframes storage-pulse { 0%,100% { opacity: 1; transform: scale(1); } 50% { opacity: .55; transform: scale(.78); } }
@media (max-width: 991.98px) {
    .storage-live-strip { align-items: flex-start; flex-direction: column; gap: .35rem; }
    .storage-object-row { grid-template-columns: 1fr; gap: .3rem; }
    .storage-object-value { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .storage-state-light, .storage-alert-beacon, .storage-object-fill { animation: none !important; transition: none !important; }
}

/* Production readiness ----------------------------------------------------- */
.production-readiness-hero { overflow: hidden; }
.production-readiness-beacon {
    border-radius: 50%;
    display: inline-block;
    height: .9rem;
    width: .9rem;
}
.production-readiness-beacon.is-success { background: var(--bs-success); box-shadow: 0 0 0 .28rem rgba(var(--bs-success-rgb), .12); }
.production-readiness-beacon.is-warning { background: var(--bs-warning); box-shadow: 0 0 0 .28rem rgba(var(--bs-warning-rgb), .12); animation: platform-health-pulse 1.6s ease-in-out infinite; }
.production-readiness-beacon.is-danger { background: var(--bs-danger); box-shadow: 0 0 0 .3rem rgba(var(--bs-danger-rgb), .14); animation: platform-health-critical-flash 1.05s ease-in-out infinite; }
.production-readiness-score {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    min-width: 8.5rem;
    padding: .7rem 1rem;
}
.production-readiness-score-value { font-size: 1.8rem; font-weight: 700; letter-spacing: -.04em; }
.production-readiness-mini {
    align-items: center;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    display: flex;
    justify-content: space-between;
    padding: .6rem .8rem;
}
.production-readiness-mini strong { font-size: 1.15rem; }
.production-readiness-mini.is-success { background: rgba(var(--bs-success-rgb), .06); }
.production-readiness-mini.is-warning { background: rgba(var(--bs-warning-rgb), .08); }
.production-readiness-mini.is-danger { background: rgba(var(--bs-danger-rgb), .06); }
.production-readiness-check { border-left: .2rem solid transparent; }
.production-readiness-attention-item {
    align-items: center;
    background: color-mix(in srgb, var(--bs-danger) 5%, var(--bs-body-bg));
    border: 1px solid color-mix(in srgb, var(--bs-danger) 22%, var(--bs-border-color));
    border-radius: .75rem;
    display: flex;
    gap: .75rem;
    justify-content: space-between;
    min-height: 4rem;
    padding: .65rem .75rem;
}

/* Live batch operations console ------------------------------------------ */
.batch-operations-console-card { overflow: hidden; }
.batch-operations-console {
    background: #0c1118;
    color: #dce6f2;
    font-family: var(--bs-font-monospace);
    font-size: .78rem;
    height: 28rem;
    overflow: auto;
    padding: .55rem .7rem;
    scrollbar-gutter: stable;
}
.batch-console-empty { color: #8d9bad; padding: 1rem .35rem; text-align: center; }
.batch-console-row {
    border-bottom: 1px solid rgba(255,255,255,.06);
    display: grid;
    gap: .16rem;
    grid-template-columns: 1fr;
    padding: .42rem .2rem;
}
.batch-console-row:last-child { border-bottom: 0; }
.batch-console-row.is-critical { background: rgba(220,53,69,.15); }
.batch-console-row.is-error { background: rgba(220,53,69,.08); }
.batch-console-row.is-warning { background: rgba(255,193,7,.07); }
.batch-console-row.is-success { background: rgba(25,135,84,.06); }
.batch-console-meta { align-items: center; color: #8d9bad; display: flex; flex-wrap: wrap; gap: .45rem; }
.batch-console-level, .batch-console-type, .batch-console-worker {
    border: 1px solid rgba(255,255,255,.12);
    border-radius: .35rem;
    font-size: .66rem;
    padding: .08rem .3rem;
}
.batch-console-level.is-critical, .batch-console-level.is-error { color: #ff8793; border-color: rgba(255,135,147,.35); }
.batch-console-level.is-warning { color: #ffd568; border-color: rgba(255,213,104,.35); }
.batch-console-level.is-success { color: #79d6a4; border-color: rgba(121,214,164,.35); }
.batch-console-level.is-info { color: #77c7f0; border-color: rgba(119,199,240,.35); }
.batch-console-message { color: #eef4fb; overflow-wrap: anywhere; }
.batch-console-detail { color: #91a5b9; font-size: .7rem; overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
    .batch-operations-console { height: 22rem; }
}
@media (prefers-reduced-motion: reduce) {
    .production-readiness-beacon { animation: none !important; }
}

/* Reusable table filtering / paging ---------------------------------------- */
.portal-table-toolbar {
    align-items: center;
    background: color-mix(in srgb, var(--bs-tertiary-bg) 94%, var(--bs-primary) 6%);
    border-bottom: 1px solid var(--bs-border-color);
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    padding: .65rem .75rem;
}
.portal-table-search { max-width: 26rem; min-width: min(100%, 16rem); }
.portal-table-page-size { width: auto; min-width: 4.5rem; }
.portal-table-pager {
    align-items: center;
    background: var(--bs-body-bg);
    border-top: 1px solid var(--bs-border-color);
    display: flex;
    justify-content: flex-end;
    gap: .25rem;
    padding: .55rem .75rem;
}
.portal-table-sortable { cursor: pointer; padding-right: 1.45rem !important; position: relative; user-select: none; }
.portal-table-sortable::after { color: var(--bs-secondary-color); content: "↕"; font-size: .7rem; opacity: .5; position: absolute; right: .45rem; top: 50%; transform: translateY(-50%); }
.portal-table-sortable.is-sorted-asc::after { content: "↑"; opacity: 1; }
.portal-table-sortable.is-sorted-desc::after { content: "↓"; opacity: 1; }
@media (max-width: 767.98px) {
    .portal-table-toolbar { align-items: stretch; flex-direction: column; }
    .portal-table-search { max-width: none; width: 100%; }
    .portal-table-toolbar > .ms-auto { margin-left: 0 !important; justify-content: space-between; }
    .portal-table-pager { justify-content: center; }
}

/* AJAX-first navigation + table ergonomics -------------------------------- */
.portal-table-column-filter { width: auto; min-width: 9rem; max-width: 15rem; }
.portal-nav-group-label .nav-link {
    cursor: default;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .04em;
    opacity: .72;
    padding-bottom: .28rem;
    padding-top: .45rem;
    text-transform: uppercase;
}
.portal-nav-group-label .nav-icon { font-size: .82rem !important; }
[data-log-pager] .form-select { width: auto; min-width: 4.8rem; }
@media (max-width: 767.98px) {
    .portal-table-column-filter { max-width: none; width: 100%; }
    [data-log-pager] { flex-basis: 100%; flex-wrap: wrap; justify-content: center; }
}


/* Customer Verification Console commercial add-on -------------------------- */
.tenant-console-addon {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(var(--bs-danger-rgb), .32);
    border-radius: 1rem;
    background: linear-gradient(135deg, rgba(var(--bs-danger-rgb), .055), rgba(var(--bs-primary-rgb), .04));
    box-shadow: 0 .75rem 2.25rem rgba(15, 23, 42, .08);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.tenant-console-addon:hover { transform: translateY(-1px); box-shadow: 0 1rem 2.75rem rgba(15, 23, 42, .12); }
.tenant-console-addon.is-selected { border-color: rgba(var(--bs-success-rgb), .48); box-shadow: 0 1rem 2.75rem rgba(var(--bs-success-rgb), .12); }
.tenant-console-addon-glow { position: absolute; width: 14rem; height: 14rem; right: -5rem; top: -7rem; border-radius: 50%; background: rgba(var(--bs-danger-rgb), .10); filter: blur(12px); pointer-events: none; }
.tenant-console-addon.is-selected .tenant-console-addon-glow { background: rgba(var(--bs-success-rgb), .13); }
.tenant-console-addon-main { position: relative; display: flex; gap: 1rem; align-items: center; padding: 1.1rem 1.2rem .9rem; }
.tenant-console-addon-icon { width: 3rem; height: 3rem; flex: 0 0 3rem; display: grid; place-items: center; border-radius: .9rem; color: #fff; font-size: 1.35rem; background: linear-gradient(135deg, var(--bs-danger), #7c3aed); box-shadow: 0 .55rem 1.35rem rgba(var(--bs-danger-rgb), .22); }
.tenant-console-addon.is-selected .tenant-console-addon-icon { background: linear-gradient(135deg, var(--bs-success), #0d6efd); }
.tenant-console-benefits { display: flex; flex-wrap: wrap; gap: .45rem .85rem; font-size: .82rem; }
.tenant-console-benefits span { display: inline-flex; align-items: center; gap: .3rem; }
.tenant-console-benefits i { color: var(--bs-success); }
.tenant-console-addon-toggle { flex: 0 0 auto; min-width: 12rem; }
.tenant-console-addon-commercial { position: relative; display: grid; grid-template-columns: minmax(15rem, .7fr) minmax(18rem, 1.3fr); gap: 1rem; align-items: center; border-top: 1px solid var(--bs-border-color); padding: .9rem 1.2rem 1.1rem; background: rgba(var(--bs-body-bg-rgb), .58); }
.tenant-console-price-input { max-width: 22rem; }
.tenant-console-addon-note { display: flex; gap: .6rem; align-items: flex-start; color: var(--bs-secondary-color); font-size: .86rem; }
.tenant-console-addon-note i { color: var(--bs-danger); margin-top: .1rem; }
.tenant-console-premium-badge { letter-spacing: .04em; }
.customer-console-locked-badge { display: inline-flex; align-items: center; gap: .3rem; background: #dc3545; color: #fff; border: 1px solid rgba(255,255,255,.35); box-shadow: 0 0 .4rem rgba(220,53,69,.85), 0 0 1rem rgba(220,53,69,.42); animation: customer-console-lock-glow 1.65s ease-in-out infinite alternate; }
@keyframes customer-console-lock-glow { from { box-shadow: 0 0 .25rem rgba(220,53,69,.65), 0 0 .55rem rgba(220,53,69,.25); } to { box-shadow: 0 0 .5rem rgba(255,82,98,.95), 0 0 1.2rem rgba(220,53,69,.55); } }
.customer-console-active-badge { display: inline-flex; align-items: center; gap: .3rem; box-shadow: 0 0 .6rem rgba(var(--bs-success-rgb), .32); }
.customer-console-upsell { position: relative; overflow: hidden; border: 1px solid rgba(var(--bs-danger-rgb), .24); background: radial-gradient(circle at 92% 8%, rgba(var(--bs-danger-rgb), .12), transparent 24rem), linear-gradient(145deg, rgba(var(--bs-primary-rgb), .04), rgba(var(--bs-body-bg-rgb), 1) 48%); }
.customer-console-upsell::after { content: ""; position: absolute; inset: auto -8rem -9rem auto; width: 22rem; height: 22rem; border-radius: 50%; background: rgba(124, 58, 237, .07); pointer-events: none; }
.customer-console-upsell-icon { width: 4.25rem; height: 4.25rem; display: grid; place-items: center; border-radius: 1.2rem; color: #fff; font-size: 1.8rem; background: linear-gradient(135deg, var(--bs-danger), #7c3aed); box-shadow: 0 1rem 2rem rgba(var(--bs-danger-rgb), .22); }
.customer-console-value-tile { height: 100%; padding: 1rem; border: 1px solid var(--bs-border-color); border-radius: .85rem; background: rgba(var(--bs-body-bg-rgb), .78); }
.customer-console-price { display: flex; align-items: baseline; gap: .35rem; }
.customer-console-price strong { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1; }
.customer-console-feature-row { display: flex; gap: .65rem; align-items: flex-start; padding: .65rem 0; border-bottom: 1px dashed var(--bs-border-color); }
.customer-console-feature-row:last-child { border-bottom: 0; }
.customer-console-feature-row i { color: var(--bs-success); margin-top: .15rem; }
.customer-console-commercial-strip { border: 1px solid rgba(var(--bs-primary-rgb), .22); border-radius: .8rem; padding: .85rem 1rem; background: rgba(var(--bs-primary-rgb), .055); }
.portal-section-heading { display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.portal-section-heading .card-title { float:none; margin:0; line-height:1.25; }
.portal-section-description { margin:0; line-height:1.45; max-width:76rem; }
@media (prefers-reduced-motion: reduce) { .customer-console-locked-badge { animation: none; } }
@media (max-width: 767.98px) { .tenant-console-addon-main { align-items: flex-start; flex-wrap: wrap; } .tenant-console-addon-toggle { min-width: 0; width: 100%; } .tenant-console-addon-commercial { grid-template-columns: 1fr; } }
.customer-brand-mark {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    width: 2.8rem;
    flex: 0 0 2.8rem;
}
.customer-brand-mark .bi-code-square { font-size: 1rem; }
.customer-brand-mark .brand-biometric { font-size: 1.05rem; opacity: .92; }


.customer-billing-hero-card,
.customer-billing-addon-card,
.customer-billing-download-card {
    border-radius: 1rem;
    overflow: hidden;
}
.customer-billing-hero-card {
    background: radial-gradient(circle at top right, rgba(var(--bs-primary-rgb), .14), transparent 15rem), var(--bs-body-bg);
}
.customer-billing-download-card {
    background: radial-gradient(circle at top right, rgba(var(--bs-success-rgb), .12), transparent 16rem), var(--bs-body-bg);
}
.customer-incident-nav-badge {
    box-shadow: 0 0 .55rem rgba(220, 53, 69, .45);
    animation: customer-incident-badge-pulse 1.5s ease-in-out infinite alternate;
}
.customer-incident-toast-container { z-index: 1090; }
.customer-incident-toast { min-width: min(28rem, calc(100vw - 2rem)); border: 1px solid rgba(220,53,69,.22); }
.customer-incident-toast-pulse {
    width: .8rem;
    height: .8rem;
    border-radius: 50%;
    background: #dc3545;
    box-shadow: 0 0 0 .12rem rgba(220,53,69,.15), 0 0 .8rem rgba(220,53,69,.5);
    animation: customer-incident-badge-pulse 1.35s ease-in-out infinite alternate;
}
.brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
    min-width: 0;
}
.brand-kicker {
    color: rgba(255,255,255,.72);
    font-size: .68rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 12rem;
}
.nav-meta-pill {
    align-items: center;
    background: rgba(13,110,253,.12);
    border: 1px solid rgba(13,110,253,.22);
    border-radius: 999px;
    color: #8bc2ff;
    display: inline-flex;
    font-size: .68rem;
    font-weight: 600;
    padding: .14rem .5rem;
}
.verification-moment-banner {
    align-items: center;
    background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(124,58,237,.08));
    border: 1px solid rgba(13,110,253,.16);
    border-radius: 1rem;
    box-shadow: 0 1rem 2.5rem rgba(15, 23, 42, .08);
    display: grid;
    gap: 1rem;
    grid-template-columns: auto 1fr auto;
    margin-top: 1.35rem;
    overflow: hidden;
    padding: 1rem 1.1rem;
    position: relative;
}
.verification-moment-banner::after {
    content: "";
    position: absolute;
    inset: auto -4rem -4rem auto;
    width: 10rem;
    height: 10rem;
    border-radius: 50%;
    background: rgba(124,58,237,.12);
    filter: blur(8px);
}
.verification-moment-icon {
    align-items: center;
    animation: verification-moment-pulse 1.8s ease-in-out infinite alternate;
    background: linear-gradient(135deg, #0d6efd, #7c3aed);
    border-radius: 1rem;
    box-shadow: 0 .8rem 1.8rem rgba(13,110,253,.24);
    color: #fff;
    display: inline-flex;
    font-size: 1.1rem;
    height: 3.2rem;
    justify-content: center;
    width: 3.2rem;
}
.verification-moment-copy {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
.verification-moment-label {
    color: var(--bs-secondary-color);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.verification-moment-copy strong { font-size: 1.05rem; }
.verification-moment-copy small {
    color: var(--bs-secondary-color);
    line-height: 1.45;
    max-width: 44rem;
}
.verification-moment-chip {
    background: rgba(var(--bs-body-bg-rgb), .78);
    border: 1px solid var(--bs-border-color);
    border-radius: .9rem;
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 8.5rem;
    padding: .75rem .85rem;
    position: relative;
    text-align: right;
    z-index: 1;
}
.verification-moment-chip span {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.verification-moment-chip strong {
    font-size: 1rem;
}
@keyframes verification-moment-pulse {
    from { transform: translateY(0); box-shadow: 0 .55rem 1.3rem rgba(13,110,253,.18); }
    to { transform: translateY(-1px); box-shadow: 0 .85rem 2rem rgba(124,58,237,.28); }
}
@keyframes customer-incident-badge-pulse {
    from { box-shadow: 0 0 .35rem rgba(220,53,69,.32); }
    to { box-shadow: 0 0 .75rem rgba(220,53,69,.58), 0 0 1.25rem rgba(220,53,69,.22); }
}
@media (max-width: 991.98px) {
    .verification-moment-banner {
        grid-template-columns: 1fr;
        text-align: left;
    }
    .verification-moment-chip { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .customer-incident-nav-badge,
    .customer-incident-toast-pulse,
    .verification-moment-icon { animation: none !important; }
}


/* Customer billing viewport fill ------------------------------------------ */
.customer-billing-page {
    display: flex;
    flex-direction: column;
    min-height: calc(100dvh - 10.75rem);
}
.customer-invoice-history-card {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 24rem;
    overflow: hidden;
}
.customer-invoice-history-card > .table-responsive {
    flex: 1 1 auto;
    min-height: 14rem;
    background: var(--bs-body-bg);
}
.customer-invoice-history-card .portal-table-pager {
    margin-top: auto;
}
@media (max-width: 991.98px) {
    .customer-billing-page { min-height: auto; }
    .customer-invoice-history-card { min-height: 30rem; }
}

/* Customer sidebar identity visual --------------------------------------- */
.customer-sidebar-identity-visual {
    position: relative;
    display: block;
    margin: .85rem .75rem 1rem;
    border: 1px solid rgba(68, 139, 255, .48);
    border-radius: 1rem;
    overflow: hidden;
    isolation: isolate;
    background: #071b4d;
    box-shadow: 0 0 0 1px rgba(103, 76, 255, .08), 0 .85rem 2rem rgba(0, 0, 0, .2), 0 0 1.25rem rgba(31, 111, 235, .2);
    transform: translateZ(0);
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.customer-sidebar-identity-visual:hover,
.customer-sidebar-identity-visual:focus-visible {
    transform: translateY(-2px) scale(1.012);
    border-color: rgba(107, 168, 255, .82);
    box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, .3), 0 0 1.8rem rgba(60, 113, 255, .38);
    outline: none;
}
.customer-sidebar-identity-visual img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 12 / 17;
    object-fit: cover;
    animation: customer-sidebar-identity-float 5.5s ease-in-out infinite alternate;
    transform-origin: center;
}
.customer-sidebar-identity-visual::after {
    content: "";
    position: absolute;
    inset: -55% -20%;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(108deg, transparent 38%, rgba(255,255,255,.22) 49%, rgba(85, 232, 255, .2) 53%, transparent 64%);
    transform: translateX(-58%) rotate(3deg);
    animation: customer-sidebar-identity-scan 6.2s ease-in-out infinite;
}
.customer-sidebar-identity-sheen {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    box-shadow: inset 0 0 1.4rem rgba(36, 143, 255, .28), inset 0 -4rem 5rem rgba(2, 9, 34, .24);
}
.customer-sidebar-identity-status {
    position: absolute;
    left: 50%;
    bottom: .6rem;
    z-index: 3;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    width: max-content;
    max-width: calc(100% - 1rem);
    padding: .28rem .55rem;
    border: 1px solid rgba(117, 242, 205, .3);
    border-radius: 999px;
    background: rgba(4, 22, 53, .72);
    backdrop-filter: blur(6px);
    color: #baf7e5;
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .02em;
    box-shadow: 0 0 .8rem rgba(38, 214, 162, .14);
}
@keyframes customer-sidebar-identity-float {
    from { transform: scale(1.002) translateY(0); filter: saturate(1) brightness(1); }
    to { transform: scale(1.025) translateY(-2px); filter: saturate(1.08) brightness(1.05); }
}
@keyframes customer-sidebar-identity-scan {
    0%, 16% { transform: translateX(-66%) rotate(3deg); opacity: 0; }
    28% { opacity: .85; }
    54% { transform: translateX(64%) rotate(3deg); opacity: .7; }
    68%, 100% { transform: translateX(76%) rotate(3deg); opacity: 0; }
}
@media (max-height: 760px) and (min-width: 992px) {
    .customer-sidebar-identity-visual { margin-top: .45rem; }
    .customer-sidebar-identity-visual img { max-height: 15rem; object-position: center 38%; }
}
@media (prefers-reduced-motion: reduce) {
    .customer-sidebar-identity-visual img,
    .customer-sidebar-identity-visual::after { animation: none !important; }
}

/* Admin intelligence / production-go-live experience ---------------------- */
.admin-command-hero {
    position: relative;
    overflow: hidden;
    border-radius: 1.2rem;
    padding: 1.5rem;
    color: #fff;
    background: linear-gradient(135deg, #101b36 0%, #173d78 48%, #5b2dbf 100%);
    box-shadow: 0 1rem 3rem rgba(19, 50, 100, .22);
}
.admin-command-orb {
    position: absolute;
    width: 21rem;
    height: 21rem;
    border-radius: 50%;
    right: -7rem;
    top: -10rem;
    background: radial-gradient(circle, rgba(67, 224, 255, .45), rgba(124, 58, 237, .03) 65%, transparent 70%);
    animation: admin-command-orbit 5s ease-in-out infinite alternate;
}
.admin-signal-card {
    min-height: 8.5rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 .65rem 1.8rem rgba(15, 23, 42, .07);
}
.admin-signal-card > div { display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.admin-signal-card span { font-size:.76rem; text-transform:uppercase; letter-spacing:.05em; color:var(--bs-secondary-color); font-weight:700; }
.admin-signal-card strong { font-size:1.65rem; line-height:1.1; }
.admin-signal-card small { color:var(--bs-secondary-color); }
.admin-signal-card > i { font-size:2rem; opacity:.28; }
.admin-signal-card.is-success { border-color: rgba(var(--bs-success-rgb), .35); background: linear-gradient(135deg, rgba(var(--bs-success-rgb), .08), var(--bs-body-bg)); }
.admin-signal-card.is-warning { border-color: rgba(var(--bs-warning-rgb), .42); background: linear-gradient(135deg, rgba(var(--bs-warning-rgb), .1), var(--bs-body-bg)); }
.admin-signal-card.is-danger, .admin-signal-card.is-critical { border-color: rgba(var(--bs-danger-rgb), .38); background: linear-gradient(135deg, rgba(var(--bs-danger-rgb), .09), var(--bs-body-bg)); }
.admin-signal-card.is-info { border-color: rgba(var(--bs-info-rgb), .35); background: linear-gradient(135deg, rgba(var(--bs-info-rgb), .08), var(--bs-body-bg)); }
.admin-decision-signal { border:1px solid var(--bs-border-color); border-left-width:.25rem; border-radius:.8rem; padding:.9rem; height:100%; }
.admin-decision-dot { width:.7rem; height:.7rem; flex:0 0 .7rem; border-radius:50%; margin-top:.35rem; box-shadow:0 0 .8rem currentColor; }
.admin-radar-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; color:inherit; text-decoration:none; border:1px solid var(--bs-border-color); border-radius:.75rem; padding:.75rem .85rem; transition:.18s ease; }
.admin-radar-row:hover { transform:translateX(2px); border-color:rgba(var(--bs-primary-rgb),.38); background:rgba(var(--bs-primary-rgb),.04); }
.admin-radar-row strong { font-size:1.15rem; }
.admin-shortcut { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem; color:inherit; text-decoration:none; padding:.85rem; border:1px solid var(--bs-border-color); border-radius:.85rem; transition:.18s ease; }
.admin-shortcut:hover { background:rgba(var(--bs-primary-rgb),.055); border-color:rgba(var(--bs-primary-rgb),.35); transform:translateY(-1px); }
.admin-shortcut > i:first-child { display:grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:.75rem; background:rgba(var(--bs-primary-rgb),.1); color:var(--bs-primary); }
.admin-shortcut span { display:flex; flex-direction:column; }
.admin-shortcut small { color:var(--bs-secondary-color); }
.tenant-360-hero { border-radius:1.1rem; overflow:hidden; background:radial-gradient(circle at 90% 0%, rgba(var(--bs-primary-rgb),.14), transparent 20rem), var(--bs-body-bg); }
.tenant-360-stat, .admin-mini-stat { height:100%; padding:.8rem .9rem; border:1px solid var(--bs-border-color); border-radius:.8rem; background:rgba(var(--bs-body-bg-rgb),.7); display:flex; flex-direction:column; gap:.15rem; }
.tenant-360-stat span, .admin-mini-stat span { font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); font-weight:700; }
.tenant-360-stat strong, .admin-mini-stat strong { font-size:1.25rem; }
.tenant-360-line { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.7rem .75rem; border:1px solid var(--bs-border-color); border-radius:.7rem; text-decoration:none; color:inherit; }
.tenant-360-line:hover { background:rgba(var(--bs-primary-rgb),.04); border-color:rgba(var(--bs-primary-rgb),.28); }
.tenant-360-line span { display:flex; flex-direction:column; min-width:0; }
.tenant-360-line small { color:var(--bs-secondary-color); }
.tenant-360-timeline { position:relative; display:grid; gap:.8rem; }
.tenant-360-timeline-item { display:grid; grid-template-columns:auto 1fr; gap:.7rem; position:relative; }
.tenant-360-timeline-item > div { display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.tenant-360-timeline-item small { color:var(--bs-secondary-color); }
.tenant-360-timeline-dot { width:.7rem; height:.7rem; margin-top:.35rem; border-radius:50%; background:var(--bs-primary); box-shadow:0 0 .8rem rgba(var(--bs-primary-rgb),.45); }
.revenue-kpi-card { min-height:9rem; padding:1rem 1.1rem; border-radius:1rem; border:1px solid rgba(var(--bs-primary-rgb),.2); background:linear-gradient(135deg, rgba(var(--bs-primary-rgb),.07), var(--bs-body-bg)); box-shadow:0 .6rem 1.8rem rgba(15,23,42,.06); display:flex; flex-direction:column; gap:.2rem; }
.revenue-kpi-card.is-premium { border-color:rgba(124,58,237,.28); background:linear-gradient(135deg, rgba(124,58,237,.1), var(--bs-body-bg)); }
.revenue-kpi-card span { color:var(--bs-secondary-color); font-size:.75rem; text-transform:uppercase; font-weight:700; letter-spacing:.05em; }
.revenue-kpi-card strong { font-size:1.6rem; }
.revenue-kpi-card small { color:var(--bs-secondary-color); }
.audit-metadata-json { max-width:34rem; max-height:14rem; overflow:auto; white-space:pre-wrap; font-size:.72rem; margin:.4rem 0 0; padding:.6rem; border-radius:.5rem; background:var(--bs-tertiary-bg); }
.provider-control-hero { border-radius:1rem; background:radial-gradient(circle at 92% 0%, rgba(var(--bs-info-rgb),.16), transparent 18rem), var(--bs-body-bg); }
.approval-card { border:1px solid rgba(var(--bs-warning-rgb),.32); border-left-width:.3rem; border-radius:.9rem; padding:1rem; background:linear-gradient(135deg, rgba(var(--bs-warning-rgb),.06), var(--bs-body-bg)); }
.approval-change { padding:.75rem; border-radius:.65rem; background:var(--bs-tertiary-bg); white-space:pre-wrap; font-size:.9rem; }
.admin-search-kbd { font-size:.65rem; padding:.12rem .35rem; color:var(--bs-secondary-color); background:var(--bs-tertiary-bg); border:1px solid var(--bs-border-color); border-radius:.3rem; }
.admin-search-modal { border-radius:1rem; overflow:hidden; }
.admin-search-input { box-shadow:0 .8rem 2rem rgba(var(--bs-primary-rgb),.08); }
.admin-search-results { display:grid; gap:1rem; }
.admin-search-empty { min-height:13rem; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:var(--bs-secondary-color); gap:.35rem; }
.admin-search-empty i { font-size:2rem; opacity:.55; }
.admin-search-group { border:1px solid var(--bs-border-color); border-radius:.8rem; overflow:hidden; }
.admin-search-group-label { padding:.45rem .7rem; background:var(--bs-tertiary-bg); color:var(--bs-secondary-color); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.admin-search-result { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:.7rem; padding:.7rem .8rem; color:inherit; text-decoration:none; border-top:1px solid var(--bs-border-color); }
.admin-search-group-label + .admin-search-result { border-top:0; }
.admin-search-result:hover { background:rgba(var(--bs-primary-rgb),.05); }
.admin-search-result-icon { display:grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:.65rem; background:rgba(var(--bs-primary-rgb),.1); color:var(--bs-primary); }
.admin-search-result > span:nth-child(2) { display:flex; flex-direction:column; min-width:0; }
.admin-search-result small { color:var(--bs-secondary-color); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-notification-menu { width:min(29rem, calc(100vw - 1.5rem)); max-height:70vh; overflow:hidden; border-radius:.9rem; }
.admin-notification-list { max-height:55vh; overflow:auto; }
.admin-notification-item { display:grid; grid-template-columns:auto 1fr auto; gap:.7rem; align-items:flex-start; color:inherit; text-decoration:none; padding:.75rem .85rem; border-bottom:1px solid var(--bs-border-color); }
.admin-notification-item:hover { background:rgba(var(--bs-primary-rgb),.045); }
.admin-notification-severity { width:.65rem; height:.65rem; margin-top:.35rem; border-radius:50%; box-shadow:0 0 .7rem currentColor; }
.admin-notification-item > span:nth-child(2) { display:flex; flex-direction:column; min-width:0; }
.admin-notification-item small { color:var(--bs-secondary-color); line-height:1.35; }
.admin-notification-item time { font-size:.68rem; color:var(--bs-secondary-color); margin-top:.25rem; }
.admin-notification-trigger-new { animation:admin-bell-pulse 1.2s ease-in-out infinite alternate; }
@keyframes admin-command-orbit { from { transform:translate3d(0,0,0) scale(.95); } to { transform:translate3d(-1rem,1rem,0) scale(1.05); } }
@keyframes admin-bell-pulse { from { color:inherit; transform:translateY(0); } to { color:var(--bs-danger); transform:translateY(-1px); } }
@media (prefers-reduced-motion: reduce) { .admin-command-orb, .admin-notification-trigger-new { animation:none !important; } }
.release-identity-card { border-radius:1rem; overflow:hidden; }
.release-hash-box { height:100%; border:1px solid var(--bs-border-color); border-radius:.8rem; padding:.75rem .9rem; display:grid; grid-template-columns:auto 1fr auto; gap:.7rem; align-items:center; background:var(--bs-tertiary-bg); }
.release-hash-box span { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--bs-secondary-color); }
.release-hash-box code { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width: 767.98px) { .release-hash-box { grid-template-columns:1fr; } .release-hash-box code { white-space:normal; word-break:break-all; } }

.admin-notification-workflow-card {
    border: 1px solid var(--bs-border-color);
    border-left-width: .28rem;
    border-radius: .9rem;
    padding: 1rem;
    background: var(--bs-body-bg);
    box-shadow: 0 .45rem 1.5rem rgba(15, 23, 42, .05);
}
.admin-notification-workflow-card.border-danger { border-left-color: var(--bs-danger); }
.admin-notification-workflow-card.border-warning { border-left-color: var(--bs-warning); }
.admin-notification-workflow-card.border-info { border-left-color: var(--bs-info); }

/* Portal overlay/backdrop treatment -----------------------------------------
 * Keep the underlying portal visually present when a modal or the Platform
 * Health offcanvas is open. Bootstrap's stock solid-black backdrop at 50%
 * reads as a full blackout on the AdminLTE shell, especially while AJAX
 * content is transitioning. Use a translucent slate veil instead, and keep
 * the loader equally restrained so opening a modal never stacks into black.
 */
.modal-backdrop,
.offcanvas-backdrop {
    background-color: rgba(15, 23, 42, .20);
}

.modal-backdrop.show,
.offcanvas-backdrop.show {
    opacity: 1;
    -webkit-backdrop-filter: blur(1.25px) saturate(.96);
    backdrop-filter: blur(1.25px) saturate(.96);
}

.portal-loader {
    background: rgba(15, 23, 42, .14);
    -webkit-backdrop-filter: blur(1px);
    backdrop-filter: blur(1px);
}

[data-bs-theme="dark"] .modal-backdrop,
[data-bs-theme="dark"] .offcanvas-backdrop {
    background-color: rgba(2, 6, 23, .30);
}

@media (prefers-reduced-motion: reduce) {
    .modal-backdrop,
    .offcanvas-backdrop,
    .portal-loader {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}

/* Application-wide heading + description hierarchy -------------------------
 * AdminLTE floats .card-title by default. When a descriptive <small>/<p>
 * follows the title, that float can pull the description onto the same line
 * (for example "Exact release identityThe go-live decision..."). Normalize
 * the shell globally so every page, card, modal-backed page and customer/admin
 * surface renders titles and their explanatory copy as an intentional stack.
 */
.app-main .card-title {
    display: block;
    float: none !important;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
    white-space: normal;
}

.app-main .card-header .card-title + small.text-body-secondary,
.app-main .card-header .card-title + .small.text-body-secondary,
.app-main .card-header .card-title + p.text-body-secondary,
.app-main .card-header > div > .card-title ~ small.text-body-secondary,
.app-main .card-header > div > .card-title ~ .small.text-body-secondary,
.app-main .card-header > div > .card-title ~ p.text-body-secondary {
    clear: both;
    display: block;
    float: none !important;
    margin-top: .22rem;
    line-height: 1.42;
    max-width: 76rem;
    overflow-wrap: anywhere;
    white-space: normal;
}

.app-main .portal-section-description,
.app-main .provider-heading-description,
.app-main .form-hint,
.app-main .form-text {
    display: block;
    float: none !important;
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: normal;
}

.app-content-header h3 {
    line-height: 1.18;
    overflow-wrap: anywhere;
    white-space: normal;
}

.app-content-header h3 + p.text-body-secondary {
    display: block;
    margin-top: .18rem !important;
    max-width: 80rem;
    line-height: 1.38;
    overflow-wrap: anywhere;
    white-space: normal;
}

/* A title/description group inside a flex card header must be allowed to
   shrink and wrap instead of colliding with badges or action buttons. */
.app-main .card-header > div {
    min-width: 0;
}

/* Description-first cards retain comfortable separation when the title has
   explicit mb-0 from Bootstrap utility classes. */
.app-main .card-header .card-title.mb-0 + small,
.app-main .card-header .card-title.mb-0 + .small,
.app-main .card-header .card-title.mb-0 + p {
    margin-top: .22rem;
}

@media (max-width: 767.98px) {
    .app-main .card-header.d-flex {
        flex-wrap: wrap;
        row-gap: .45rem;
    }

    .app-content-header h3 + p.text-body-secondary {
        margin-top: .14rem !important;
    }
}

/* Release & Go-Live action feedback --------------------------------------- */
.readiness-operation-monitor {
    position: sticky;
    top: .75rem;
    z-index: 1030;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.readiness-operation-monitor:not(.d-none) {
    box-shadow: 0 .55rem 1.6rem rgba(15, 23, 42, .10);
}

.readiness-operation-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: rgba(13, 110, 253, .10);
    flex: 0 0 auto;
}

.readiness-operation-progress {
    height: .6rem;
    overflow: hidden;
    border-radius: 999px;
}

.readiness-action-focus {
    animation: readinessActionFocus 2.1s ease-out;
}

@keyframes readinessActionFocus {
    0% { box-shadow: 0 0 0 0 rgba(13, 110, 253, .42); }
    35% { box-shadow: 0 0 0 .45rem rgba(13, 110, 253, .16); }
    100% { box-shadow: 0 0 0 0 rgba(13, 110, 253, 0); }
}

.readiness-waiver-details > summary {
    cursor: pointer;
    list-style-position: outside;
}

.readiness-waiver-details[open] > summary {
    margin-bottom: .5rem;
}

@media (prefers-reduced-motion: reduce) {
    .readiness-action-focus {
        animation: none;
        outline: 3px solid rgba(13, 110, 253, .24);
        outline-offset: 3px;
    }
}

/* Release & Go-Live modal evidence UX -------------------------------------- */
.release-waiver-fingerprint{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem .95rem;border:1px solid var(--bs-border-color);border-radius:.8rem;background:var(--bs-tertiary-bg)}
.release-waiver-fingerprint>span{color:var(--bs-secondary-color);font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.release-waiver-fingerprint code{max-width:66%;overflow-wrap:anywhere;text-align:right}
.release-waiver-scope{display:grid;gap:.55rem;padding:.85rem .95rem;border:1px solid var(--bs-border-color);border-radius:.8rem;background:color-mix(in srgb,var(--bs-body-bg) 92%,var(--bs-primary) 8%)}
.release-waiver-scope>div{display:flex;align-items:flex-start;gap:.55rem;line-height:1.4}
.readiness-risk-acceptance{padding:.9rem 1rem .9rem 2.35rem;border:1px solid rgba(var(--bs-warning-rgb),.4);border-radius:.8rem;background:rgba(var(--bs-warning-rgb),.08)}
.readiness-risk-acceptance .form-check-input{margin-left:-1.45rem}
.readiness-modal-progress{padding:.85rem .95rem;border:1px solid var(--bs-border-color);border-radius:.8rem;background:var(--bs-tertiary-bg)}
.readiness-modal-progress.is-success{border-color:rgba(var(--bs-success-rgb),.45);background:rgba(var(--bs-success-rgb),.08)}
.readiness-modal-progress.is-failure{border-color:rgba(var(--bs-danger-rgb),.45);background:rgba(var(--bs-danger-rgb),.08)}
.readiness-evidence-tabs{padding:.25rem;border-radius:.75rem;background:var(--bs-tertiary-bg)}
.readiness-evidence-tabs .nav-link{font-weight:600}
@media(max-width:575.98px){.release-waiver-fingerprint{align-items:flex-start;flex-direction:column}.release-waiver-fingerprint code{max-width:100%;text-align:left}}
