/* Doctor app — scoped polish (Tailwind utilities live under .smp-doctor-wrap) */

/* Platform fill: Doctor sub-apps use the full submodule pane (not a centered card brick). */
#doctor-files.submodule-body,
#doctor-report.submodule-body,
#doctor-report.submodule-body.smp-doctor-report-pane,
#doctor-output.submodule-body,
#doctor-output.submodule-body.smp-doctor-report-pane,
#doctor-reader.submodule-body,
#doctor-file.submodule-body {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#doctor-files.submodule-body > .smp-doctor-wrap,
#doctor-report.submodule-body > .smp-doctor-report-pane,
#doctor-output.submodule-body > .smp-doctor-report-pane,
#doctor-reader.submodule-body > .smp-doctor-reader-pane,
#doctor-file.submodule-body > .smp-doctor-file-pane {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
}

.smp-doctor-wrap {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
    box-sizing: border-box;
    padding: 0;
    background-color: var(--smp-doctor-panel) !important;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-desk-section,
.smp-doctor-wrap .smp-doctor-tab-panel,
.smp-doctor-wrap .smp-doctor-tab-body,
.smp-doctor-wrap .smp-doctor-review-card,
.smp-doctor-wrap .smp-doctor-file-row,
.smp-doctor-wrap .smp-doctor-dropzone,
.smp-doctor-wrap .smp-doctor-panel-surface,
.smp-doctor-wrap .smp-doctor-out-report,
.smp-doctor-wrap .smp-doctor-out-chain,
.smp-doctor-wrap .smp-doctor-out-chain-step,
.smp-doctor-wrap .smp-doctor-out-section {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-wrap .smp-doctor-tab-panel[hidden] {
    display: none !important;
}

.smp-doctor-wrap .smp-doctor-dropzone.is-dragover {
    border-color: var(--smp-doctor-teal-accent);
    background-color: #f0fdfa;
    box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.35);
}

.smp-doctor-wrap .smp-doctor-file-row:hover {
    background-color: var(--smp-doctor-surface);
}

html[data-bs-theme="dark"] form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__count {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-desk-section {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    min-width: 0;
    height: 100%;
    border-radius: 0;
    border-left: none;
    border-right: none;
    box-shadow: none;
    background-color: var(--smp-doctor-panel) !important;
    border-color: var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-doctor-tab-body,
.smp-doctor-wrap .smp-doctor-tab-panel,
.smp-doctor-wrap .smp-doctor-panel-surface {
    background-color: var(--smp-doctor-panel) !important;
    color: var(--smp-doctor-text);
}

/* Pipeline nav — lives in the app left sidebar (#doctor-menu-filters) */
form#doctor-menu-filters {
    --doctor-accent: var(--smp-doctor-teal);
    --doctor-accent-soft: rgba(15, 118, 110, 0.12);
    --doctor-surface: rgba(255, 255, 255, 0.92);
    --doctor-text: var(--smp-doctor-text);
    --doctor-muted: var(--smp-doctor-text-muted);
    padding: 0.25rem 0;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar__title {
    margin: 0 0 0.625rem;
    padding: 0.35rem 0.65rem 0.55rem;
    font-size: var(--smp-text-xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--doctor-muted);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    padding: 0.55rem 0.7rem;
    border: 1px solid transparent;
    border-left-width: 3px;
    border-left-color: transparent;
    border-radius: 0.55rem;
    background: transparent;
    color: var(--doctor-text);
    font-size: var(--smp-text-base);
    font-weight: 600;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link:hover {
    background: var(--doctor-accent-soft);
    border-color: rgba(99, 102, 241, 0.2);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.375rem;
    padding: 0.125rem 0.4375rem;
    border-radius: 9999px;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link[aria-current="page"] {
    background: var(--doctor-accent-soft);
    border-color: rgba(15, 118, 110, 0.35);
    color: var(--smp-doctor-teal);
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link.is-active .smp-doctor-menu-sidebar-nav__count,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link[aria-current="page"] .smp-doctor-menu-sidebar-nav__count {
    background: var(--smp-doctor-teal);
    color: var(--smp-color-text-inverse);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--inbox.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--inbox[aria-current="page"] {
    border-left-color: rgb(59 130 246);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--processing.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--processing[aria-current="page"] {
    border-left-color: rgb(245 158 11);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--review.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--review[aria-current="page"] {
    border-left-color: rgb(139 92 246);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--error.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--error[aria-current="page"] {
    border-left-color: rgb(244 63 94);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--archive.is-active,
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--archive[aria-current="page"] {
    border-left-color: rgb(16 185 129);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-ai {
    margin-top: 0.5rem;
    padding: 0.65rem 0.75rem 0.75rem;
    border-top: 1px solid var(--smp-doctor-border);
}

form#doctor-menu-filters .smp-doctor-ai-mode-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    width: 100%;
    cursor: pointer;
}

form#doctor-menu-filters .smp-doctor-ai-mode-pill .smp-inactive-pill__track {
    background: #94a3b8;
    flex-shrink: 0;
}

form#doctor-menu-filters .smp-doctor-ai-mode-pill .smp-inactive-pill__input:checked + .smp-inactive-pill__track {
    background: var(--doctor-accent, var(--smp-doctor-teal));
}

form#doctor-menu-filters .smp-doctor-ai-mode-word {
    font-size: var(--smp-text-sm);
    font-weight: 600;
    line-height: 1.2;
    color: var(--doctor-text, var(--smp-doctor-text));
    letter-spacing: 0.01em;
}

.smp-doctor-wrap .smp-doctor-tab-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
}

.smp-doctor-wrap .smp-doctor-tab-scroll {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.smp-doctor-wrap .smp-doctor-progress-track {
    height: 0.5rem;
    overflow: hidden;
    border-radius: 9999px;
    background-color: var(--smp-surface-panel-muted);
}

.smp-doctor-wrap .smp-doctor-progress-bar {
    height: 100%;
    border-radius: 9999px;
    background: linear-gradient(90deg, var(--smp-status-warn), var(--smp-status-warn-dark, #b45309));
    transition: width 0.45s ease;
}

.smp-doctor-wrap .smp-doctor-progress-bar--queued {
    width: 18% !important;
    background: repeating-linear-gradient(
        -45deg,
        var(--smp-status-warn-border),
        var(--smp-status-warn-border) 8px,
        var(--smp-surface-panel-muted) 8px,
        var(--smp-surface-panel-muted) 16px
    );
    animation: smp-doctor-progress-pulse 1.2s ease-in-out infinite;
}

.smp-doctor-wrap .smp-doctor-progress-bar--done {
    background: linear-gradient(90deg, var(--smp-status-success), var(--smp-status-success-dark));
}

.smp-doctor-wrap .smp-doctor-progress-bar--active {
    background: linear-gradient(
        90deg,
        var(--smp-status-warn),
        var(--smp-status-warn-light),
        var(--smp-status-warn-dark, #b45309)
    );
    background-size: 200% 100%;
    animation: smp-doctor-progress-shimmer 2s ease-in-out infinite;
}

.smp-doctor-wrap .smp-doctor-progress-meta {
    margin-top: 0.375rem;
    font-size: var(--smp-text-2xs);
    line-height: 1.4;
    font-weight: 500;
    /* Readable slate — never pale yellow on white */
    color: #334155;
}

.smp-doctor-wrap .smp-doctor-progress-meta--warn {
    /* Dark amber (readable). --smp-status-warn is a pale yellow background token. */
    color: #9a3412;
    font-weight: 600;
}

.smp-doctor-wrap .smp-doctor-progress-meta--stale {
    color: var(--smp-status-danger, #b91c1c);
    font-weight: 600;
}

.smp-doctor-wrap .smp-doctor-progress-label {
    margin-top: 0.375rem;
    font-size: 0.75rem;
    line-height: 1.4;
    font-weight: 600;
    color: #1e293b;
}

@keyframes smp-doctor-progress-shimmer {
    0%,
    100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

@keyframes smp-doctor-progress-pulse {
    0%,
    100% {
        opacity: 0.65;
    }
    50% {
        opacity: 1;
    }
}

.smp-doctor-output-modal {
    position: fixed;
    inset: 0;
    z-index: var(--smp-z-app-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.smp-doctor-output-modal.hidden {
    display: none !important;
}

.smp-doctor-output-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgb(15 23 42 / 0.45);
}

.smp-doctor-output-modal-panel {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(52rem, 100%);
    max-height: min(88vh, 720px);
    overflow: hidden;
    border-radius: 0.75rem;
    border: 1px solid rgb(226 232 240);
    background: var(--smp-doctor-panel);
    box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
}

.smp-doctor-output-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--smp-doctor-surface);
}

.smp-doctor-output-modal-content {
    padding: 1rem 1.25rem 1.25rem;
}

.smp-doctor-wrap .smp-doctor-out-loading,
.smp-doctor-wrap .smp-doctor-out-empty {
    margin: 0;
    font-size: var(--smp-text-base);
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-report {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.smp-doctor-wrap .smp-doctor-out-header {
    padding: 1rem 1.125rem;
    border-radius: 0.625rem;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    box-shadow: 0 1px 2px rgba(0 0 0 / 0.04);
}

.smp-doctor-wrap .smp-doctor-out-report--classification .smp-doctor-out-header {
    border-top: 3px solid var(--smp-status-info);
}

.smp-doctor-wrap .smp-doctor-out-report--audit .smp-doctor-out-header {
    border-top: 3px solid var(--smp-status-success);
}

.smp-doctor-wrap .smp-doctor-out-report--error,
.smp-doctor-wrap .smp-doctor-out-report--error-classify,
.smp-doctor-wrap .smp-doctor-out-report--error-audit {
    gap: 0.875rem;
}

.smp-doctor-wrap .smp-doctor-out-report--error .smp-doctor-out-header,
.smp-doctor-wrap .smp-doctor-out-report--error-classify .smp-doctor-out-header,
.smp-doctor-wrap .smp-doctor-out-report--error-audit .smp-doctor-out-header {
    border-top: 3px solid var(--smp-status-danger);
    background: var(--smp-status-danger-light);
    border-color: var(--smp-status-danger-soft);
}

.smp-doctor-wrap .smp-doctor-out-title {
    margin: 0 0 0.75rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-meta {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.625rem 1rem;
    margin: 0;
}

.smp-doctor-wrap .smp-doctor-out-meta-row {
    margin: 0;
    min-width: 0;
}

.smp-doctor-wrap .smp-doctor-out-meta-row dt {
    margin: 0 0 0.125rem;
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-meta-row dd {
    margin: 0;
    font-size: var(--smp-text-sm);
    line-height: 1.4;
    color: var(--smp-doctor-text);
    word-break: break-word;
}

.smp-doctor-wrap .smp-doctor-out-meta-row--status dd {
    display: flex;
    align-items: center;
}

.smp-doctor-wrap .smp-doctor-out-code {
    display: inline-block;
    padding: 0.125rem 0.375rem;
    border-radius: 0.375rem;
    background: var(--smp-doctor-surface);
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-mode {
    display: block;
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    line-height: 1.5;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-timing {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.5rem;
    align-items: center;
    padding: 0.1875rem 0.5rem;
    border-radius: 0.375rem;
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    line-height: 1.4;
    color: var(--smp-doctor-text);
    letter-spacing: 0.01em;
    word-spacing: 0.05em;
}

.smp-doctor-wrap .smp-doctor-out-note {
    margin: 0.75rem 0 0;
    padding-top: 0.625rem;
    border-top: 1px dashed var(--smp-doctor-border);
    font-size: var(--smp-text-xs);
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.smp-doctor-wrap .smp-doctor-out-badge--ok {
    background: var(--smp-status-success-light);
    color: var(--smp-status-success-text);
}

.smp-doctor-wrap .smp-doctor-out-badge--bad {
    background: var(--smp-status-danger-light);
    color: var(--smp-status-danger);
}

.smp-doctor-wrap .smp-doctor-out-badge--warn {
    background: var(--smp-status-warn-light);
    color: var(--smp-status-warn);
}

.smp-doctor-wrap .smp-doctor-out-badge--neutral {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-section {
    padding: 0.875rem 1rem;
    border-radius: 0.625rem;
    border: 1px solid rgb(226 232 240);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-doctor-out-section-title {
    margin: 0 0 0.625rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-category {
    margin: 0;
    font-size: var(--smp-text-md);
    font-weight: 600;
    line-height: 1.5;
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-wrap .smp-doctor-out-summary {
    margin: 0;
    font-size: var(--smp-text-base);
    line-height: 1.6;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-muted {
    margin: 0;
    font-size: var(--smp-text-sm);
    font-style: italic;
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.smp-doctor-wrap .smp-doctor-out-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.625rem;
    border-radius: 9999px;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    line-height: 1.2;
}

.smp-doctor-wrap .smp-doctor-out-pill--tag {
    background: var(--smp-status-info-light);
    color: var(--smp-status-info);
    border: 1px solid var(--smp-status-info-soft);
}

.smp-doctor-wrap .smp-doctor-out-pill--agent {
    background: var(--smp-status-success-light);
    color: var(--smp-status-success);
    border: 1px solid var(--smp-status-teal-soft);
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    font-weight: 600;
}

.smp-doctor-wrap .smp-doctor-out-rules {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-doctor-out-rule {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 0.25rem 0.625rem;
    padding: 0.625rem 0.75rem;
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    font-size: var(--smp-text-sm);
}

.smp-doctor-wrap .smp-doctor-out-rule-label {
    grid-column: 1;
    grid-row: 1;
    font-weight: 600;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-rule-state {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    padding: 0.125rem 0.4375rem;
    border-radius: 9999px;
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.smp-doctor-wrap .smp-doctor-out-rule-state--found {
    background: var(--smp-status-success-light);
    color: var(--smp-status-success);
}

.smp-doctor-wrap .smp-doctor-out-rule-state--partial {
    background: var(--smp-status-warn-light, #fff4d8);
    color: var(--smp-status-warn, #8a5a00);
}

.smp-doctor-wrap .smp-doctor-out-rule-state--missing {
    background: var(--smp-status-danger-light);
    color: var(--smp-status-danger);
}

.smp-doctor-wrap .smp-doctor-out-rule-hint {
    grid-column: 1 / -1;
    grid-row: 3;
    font-size: var(--smp-text-2xs);
    font-style: italic;
    color: var(--smp-color-text-muted);
    letter-spacing: 0.01em;
}

.smp-doctor-wrap .smp-doctor-out-rule-citation {
    grid-column: 1 / -1;
    grid-row: 2;
    font-size: var(--smp-text-xs);
    line-height: 1.45;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-rule-citation--none {
    font-style: italic;
    color: var(--smp-color-text-muted);
}

.smp-doctor-wrap .smp-doctor-out-list {
    margin: 0;
    padding-left: 1.125rem;
    font-size: var(--smp-text-sm);
    line-height: 1.55;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-list--warn li {
    color: var(--smp-status-warn);
}

.smp-doctor-wrap .smp-doctor-out-callout {
    padding: 0.75rem 0.875rem;
    border-radius: 0.5rem;
    font-size: var(--smp-text-sm);
    line-height: 1.55;
    white-space: pre-wrap;
}

.smp-doctor-wrap .smp-doctor-out-callout--error {
    background: var(--smp-status-danger-light);
    border: 1px solid var(--smp-status-danger-soft);
    color: var(--smp-status-danger);
}

.smp-doctor-wrap .smp-doctor-out-footer {
    margin: 0;
    padding: 0.625rem 0.875rem;
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
    font-size: var(--smp-text-xs);
    line-height: 1.5;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-llm {
    border-radius: 0.625rem;
    border: 1px solid rgb(226 232 240);
    background: var(--smp-doctor-panel);
    overflow: hidden;
}

.smp-doctor-wrap .smp-doctor-out-llm summary {
    padding: 0.625rem 0.875rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text);
    cursor: pointer;
    user-select: none;
    list-style: none;
}

.smp-doctor-wrap .smp-doctor-out-llm summary::-webkit-details-marker {
    display: none;
}

.smp-doctor-wrap .smp-doctor-out-llm summary::before {
    content: "▸";
    display: inline-block;
    margin-right: 0.375rem;
    transition: transform 0.15s ease;
}

.smp-doctor-wrap .smp-doctor-out-llm[open] summary::before {
    transform: rotate(90deg);
}

.smp-doctor-wrap .smp-doctor-out-llm summary:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-doctor-out-llm-pre,
.smp-doctor-wrap .smp-doctor-out-plain {
    margin: 0;
    padding: 0.875rem;
    border-top: 1px solid var(--smp-doctor-border);
    white-space: pre-wrap;
    word-break: break-word;
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    line-height: 1.6;
    color: var(--smp-doctor-text);
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-doctor-out-plain {
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
}

.smp-doctor-wrap .smp-doctor-out-chain {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.smp-doctor-wrap .smp-doctor-out-chain-header {
    padding: 0.85rem 1rem;
    border-radius: 0.625rem;
    border: 1px solid var(--smp-status-teal-soft);
    background: linear-gradient(180deg, var(--smp-status-success-light) 0%, var(--smp-doctor-panel) 100%);
}

.smp-doctor-wrap .smp-doctor-out-chain-kicker {
    margin: 0;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--smp-doctor-teal);
}

.smp-doctor-wrap .smp-doctor-out-chain-route {
    margin: 0.35rem 0 0;
    font-size: var(--smp-text-sm);
    font-weight: 600;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-out-chain-steps {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.smp-doctor-wrap .smp-doctor-out-chain-step {
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.625rem;
    background: var(--smp-doctor-panel);
    overflow: hidden;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.04);
}

.smp-doctor-wrap .smp-doctor-out-chain-step-title {
    margin: 0;
    padding: 0.65rem 1rem;
    font-size: var(--smp-text-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-soft);
    background: var(--smp-doctor-surface);
    border-bottom: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-doctor-out-chain-step-body {
    padding: 0.75rem 0.85rem 0.85rem;
}

.smp-doctor-wrap .smp-doctor-out-chain-step-body .smp-doctor-out-report {
    gap: 0.75rem;
}

.smp-doctor-wrap .smp-doctor-out-chain-footer {
    margin: 0;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
}

/* Library document reader sub-app (#doctor-reader) */
#doctor-reader.smp-doctor-reader-pane {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--smp-doctor-panel);
}

.smp-doctor-reader-header {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: linear-gradient(180deg, var(--smp-doctor-surface) 0%, var(--smp-doctor-panel) 100%);
}

.smp-doctor-reader-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
    flex: 1;
}

.smp-doctor-reader-titles {
    min-width: 0;
    flex: 1;
}

.smp-doctor-reader-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--smp-doctor-text-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.smp-doctor-reader-meta {
    margin: 0.2rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-reader-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.smp-doctor-reader-btn {
    display: inline-flex;
    align-items: center;
    border-radius: 0.5rem;
    padding: 0.4rem 0.7rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    text-decoration: none;
    cursor: pointer;
    line-height: 1.2;
}

.smp-doctor-reader-btn:hover {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-reader-btn--primary {
    background: var(--smp-doctor-teal);
    border-color: var(--smp-doctor-teal);
    color: var(--smp-color-text-inverse);
}

.smp-doctor-reader-btn--primary:hover {
    background: var(--smp-doctor-teal-accent);
    color: var(--smp-color-text-inverse);
}

.smp-doctor-reader-facts {
    flex: 0 0 auto;
    border-bottom: 1px solid var(--smp-status-success-soft);
    background: var(--smp-status-success-light);
}

.smp-doctor-reader-facts.hidden {
    display: none !important;
}

.smp-doctor-reader-facts summary {
    cursor: pointer;
    padding: 0.4rem 1rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--smp-status-success-text);
    list-style: none;
}

.smp-doctor-reader-facts summary::-webkit-details-marker {
    display: none;
}

.smp-doctor-reader-facts[open] summary {
    border-bottom: 1px solid var(--smp-status-success-soft);
}

.smp-doctor-reader-facts ul {
    margin: 0;
    padding: 0.45rem 1rem 0.65rem;
    max-height: 6.5rem;
    overflow-y: auto;
    list-style: none;
    font-size: 0.76rem;
    color: var(--smp-doctor-text-strong);
    line-height: 1.45;
}

.smp-doctor-reader-facts li + li {
    margin-top: 0.3rem;
}

.smp-doctor-reader-fact-ref {
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-reader-frame {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: var(--smp-doctor-panel);
}

/* Pipeline original file viewer sub-app (#doctor-file) */
#doctor-file.smp-doctor-file-pane {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--smp-doctor-panel);
}

.smp-doctor-file-header {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: linear-gradient(180deg, var(--smp-doctor-surface) 0%, var(--smp-doctor-panel) 100%);
}

.smp-doctor-file-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
    flex: 1;
}

.smp-doctor-file-back {
    flex-shrink: 0;
    border-radius: 0.5rem;
    padding: 0.4rem 0.65rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-teal);
    cursor: pointer;
}

.smp-doctor-file-back:hover {
    background: var(--smp-status-success-light);
}

.smp-doctor-file-titles {
    min-width: 0;
    flex: 1;
}

.smp-doctor-file-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--smp-doctor-text-strong);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.smp-doctor-file-meta {
    margin: 0.2rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-file-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.smp-doctor-file-btn {
    display: inline-flex;
    align-items: center;
    border-radius: 0.5rem;
    padding: 0.4rem 0.7rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    cursor: pointer;
}

.smp-doctor-file-btn:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-file-btn--primary {
    background: var(--smp-doctor-teal);
    border-color: var(--smp-doctor-teal);
    color: var(--smp-color-text-inverse);
}

.smp-doctor-file-btn--primary:hover {
    background: var(--smp-doctor-teal-accent);
}

.smp-doctor-file-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--smp-doctor-surface);
}

.smp-doctor-file-frame {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    border: 0;
    background: var(--smp-doctor-panel);
}

.smp-doctor-file-text {
    flex: 1 1 auto;
    min-height: 0;
    margin: 0;
    padding: 1rem 1.15rem 1.5rem;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--smp-doctor-text);
    background: var(--smp-doctor-panel);
    border: 0;
}

.smp-doctor-file-fallback {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 2rem 1.5rem;
    text-align: center;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-file-fallback-msg {
    margin: 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-file-fallback-hint {
    margin: 0;
    font-size: 0.8rem;
}

.smp-doctor-file-frame.hidden,
.smp-doctor-file-text.hidden,
.smp-doctor-file-fallback.hidden {
    display: none !important;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--library.is-active {
    border-left-color: var(--smp-doctor-teal-accent);
    background: rgba(13, 148, 136, 0.1);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__link--access.is-active {
    border-left-color: #7c3aed;
    background: rgba(124, 58, 237, 0.1);
}

/* Library reader — document nav in left sidebar */
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-sidebar-doc-title {
    margin: 0 0 0.35rem;
    padding: 0 0.65rem;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--smp-doctor-text-strong);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-sidebar-crumb {
    margin: 0 0 0.75rem;
    padding: 0 0.65rem;
    font-size: 0.7rem;
    line-height: 1.4;
    color: var(--doctor-muted);
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-sidebar-tools {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 0 0.55rem 0.75rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    margin-bottom: 0.55rem;
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-sidebar-nav-label {
    padding: 0.35rem 0.75rem 0.15rem;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-muted);
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-search,
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-section {
    width: 100%;
    box-sizing: border-box;
    border-radius: 0.5rem;
    border: 1px solid var(--smp-doctor-border);
    padding: 0.45rem 0.55rem;
    font-size: 0.78rem;
    color: var(--smp-doctor-text);
    background: var(--smp-doctor-panel);
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-search:focus,
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-section:focus {
    outline: none;
    border-color: var(--smp-doctor-teal-accent);
    box-shadow: 0 0 0 2px rgba(45, 212, 191, 0.25);
}

form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-page.is-active,
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-page[aria-current="page"],
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-section.is-active,
form#doctor-menu-filters[data-smp-doctor-sidebar-mode="reader"] .smp-doctor-reader-nav-section[aria-current="page"] {
    border-left-color: var(--smp-doctor-teal);
    background: rgba(15, 118, 110, 0.1);
    color: var(--smp-doctor-teal);
}

.smp-doctor-review-warning--info {
    border-color: var(--smp-status-warn);
    background: var(--smp-status-warn-light);
}

.smp-doctor-review-warning--warn {
    border-color: var(--smp-status-warn-border);
    background: var(--smp-status-warn-bg);
}

.smp-doctor-review-warning-details summary:hover {
    color: var(--smp-doctor-text);
}

.smp-doctor-review-warning-pre {
    margin-top: 0.25rem;
    max-height: 8rem;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    border-radius: 0.375rem;
    background: var(--smp-doctor-surface);
    padding: 0.5rem;
    font-size: var(--smp-text-2xs);
    line-height: 1.4;
    color: var(--smp-doctor-text-soft);
}

/* Review desk — production row layout */
.smp-doctor-review-card {
    border-bottom: 1px solid var(--smp-doctor-border);
    padding: 1rem 1.1rem;
}

.smp-doctor-review-card:last-child {
    border-bottom: none;
}

.smp-doctor-review-card__main {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-review-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.smp-doctor-review-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    padding: 0.12rem 0.5rem;
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    line-height: 1.2;
}

.smp-doctor-review-badge--category {
    background: var(--smp-status-success-light);
    color: var(--smp-status-success);
}

.smp-doctor-review-badge--chain {
    background: var(--smp-status-info-light);
    color: var(--smp-status-info);
}

.smp-doctor-review-badge--agent {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-soft);
    border: 1px solid var(--smp-doctor-border);
}

.smp-doctor-review-snippet {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    line-height: 1.45;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-review-actions {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    width: auto;
    max-width: 100%;
    flex-shrink: 0;
    box-sizing: border-box;
}

/* Flatten primary/secondary so Approve + other actions share one row */
.smp-doctor-review-actions__primary,
.smp-doctor-review-actions__secondary {
    display: contents;
}

.smp-doctor-archive-story {
    margin-top: 0.55rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    font-size: 0.8rem;
    color: #1e293b;
    line-height: 1.4;
}

.smp-doctor-archive-story__title {
    font-weight: 700;
    margin-bottom: 0.35rem;
    color: #0f172a;
}

.smp-doctor-archive-story__row {
    margin: 0.25rem 0;
}

.smp-doctor-archive-story__label {
    display: inline-block;
    min-width: 5.5rem;
    font-weight: 600;
    color: #475569;
}

.smp-doctor-archive-story__refs {
    margin: 0.2rem 0 0 1.1rem;
    padding: 0;
    color: #334155;
}

.smp-doctor-archive-story__refs li {
    margin: 0.1rem 0;
}

.smp-doctor-review-hsms {
    margin-top: 0;
    padding: 0.65rem 0.75rem;
    border: 1px solid #bfdbfe;
    border-radius: 8px;
    background: #eff6ff;
    font-size: 0.82rem;
    color: #1e3a5f;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-review-hsms__title {
    font-weight: 600;
    margin-bottom: 0.45rem;
}

.smp-doctor-review-hsms__section-title {
    font-weight: 700;
    margin-bottom: 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.smp-doctor-review-hsms__outcome {
    margin: 0 0 0.55rem;
    padding: 0.55rem 0.65rem;
    border-radius: 6px;
    border: 1px solid #93c5fd;
    background: #fff;
}

.smp-doctor-review-hsms__outcome--bind {
    border-color: #86efac;
    background: #f0fdf4;
}

.smp-doctor-review-hsms__outcome--caution {
    border-color: #fdba74;
    background: #fff7ed;
}

.smp-doctor-review-hsms__outcome--new {
    border-color: #93c5fd;
    background: #f8fafc;
}

.smp-doctor-review-hsms__dest {
    margin: 0 0 0.55rem;
}

.smp-doctor-review-hsms__dest-label {
    display: block;
    font-weight: 700;
    font-size: 0.78rem;
    margin-bottom: 0.3rem;
    color: #0f172a;
}

.smp-doctor-review-hsms .smp-doctor-hsms-dest-select,
.smp-doctor-review-hsms .SumoSelect {
    width: 100%;
    max-width: 100%;
}

.smp-doctor-review-hsms select[data-doctor-hsms-destination].SumoUnder {
    display: none !important;
}

.smp-doctor-review-hsms .SumoSelect > .CaptionCont {
    min-height: 2rem;
    border-radius: 6px;
    border-color: #94a3b8;
    background: #fff;
}

.smp-doctor-review-hsms .SumoSelect.open > .optWrapper {
    z-index: 80;
    max-height: 18rem;
}

.smp-doctor-review-hsms .SumoSelect > .optWrapper > .options {
    max-height: 14rem;
}

.smp-doctor-review-hsms__outcome-kicker {
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #334155;
    margin-bottom: 0.35rem;
}

.smp-doctor-review-hsms__outcome-row {
    margin: 0.2rem 0;
    line-height: 1.35;
}

.smp-doctor-review-hsms__outcome-label {
    display: inline-block;
    min-width: 4.5rem;
    font-weight: 600;
    color: #475569;
}

.smp-doctor-review-hsms__code {
    font-family: ui-monospace, monospace;
    font-size: 0.76rem;
    word-break: break-all;
}

.smp-doctor-review-hsms__outcome-plain {
    margin: 0.4rem 0 0;
    font-weight: 600;
    color: #0f172a;
}

.smp-doctor-review-hsms__outcome-why {
    margin: 0.25rem 0 0;
    color: #475569;
    font-size: 0.8rem;
    line-height: 1.4;
}

.smp-doctor-review-hsms__match-plain {
    margin: 0 0 0.35rem;
    color: #1e3a5f;
    font-size: 0.8rem;
    line-height: 1.35;
}

.smp-doctor-review-hsms__checks {
    margin: 0.45rem 0 0.35rem;
}

.smp-doctor-review-hsms__label {
    font-weight: 500;
    color: #475569;
}

.smp-doctor-review-hsms__id,
.smp-doctor-review-hsms__folder {
    margin: 0.15rem 0;
    font-family: ui-monospace, monospace;
    font-size: 0.78rem;
}

.smp-doctor-review-hsms-warnings {
    margin: 0.35rem 0 0.5rem;
    padding-left: 1.1rem;
    /* Dark amber — --smp-status-warn is pale yellow (bg), unreadable as text on blue */
    color: #9a3412;
    font-weight: 600;
    line-height: 1.4;
    word-break: break-word;
}

.smp-doctor-review-hsms__match {
    margin: 0.45rem 0 0.55rem;
    padding: 0.5rem 0.55rem;
    border-radius: 6px;
    border: 1px solid #93c5fd;
    background: #dbeafe;
}

.smp-doctor-review-hsms__match-top {
    font-weight: 600;
    margin-bottom: 0.2rem;
}

.smp-doctor-review-hsms__score {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: #1e3a8a;
}

.smp-doctor-review-hsms__conf {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.08rem 0.4rem;
    border-radius: 9999px;
    border: 1px solid transparent;
}

.smp-doctor-review-hsms__conf--high {
    background: #dcfce7;
    color: #166534;
    border-color: #86efac;
}

.smp-doctor-review-hsms__conf--close {
    background: #ffedd5;
    color: #9a3412;
    border-color: #fdba74;
}

.smp-doctor-review-hsms__conf--weak,
.smp-doctor-review-hsms__conf--none {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fca5a5;
}

.smp-doctor-review-hsms__advise {
    margin: 0.35rem 0 0;
    font-size: 0.78rem;
    font-weight: 600;
    color: #9a3412;
    line-height: 1.35;
}

.smp-doctor-review-hsms__runners {
    margin-top: 0.4rem;
    padding-top: 0.35rem;
    border-top: 1px dashed #93c5fd;
    font-size: 0.78rem;
}

.smp-doctor-review-hsms__runner {
    margin-top: 0.25rem;
}

.smp-doctor-review-hsms__runner-id {
    font-family: ui-monospace, monospace;
    font-size: 0.72rem;
    color: #1e3a5f;
    opacity: 0.85;
}

.smp-doctor-review-hsms-check {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    margin-top: 0.35rem;
    cursor: pointer;
    font-size: 0.8rem;
}

.smp-doctor-review-hsms-check input {
    margin-top: 0.15rem;
}

.smp-doctor-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    padding: 0.42rem 0.75rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    border: 1px solid transparent;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.smp-doctor-btn--primary {
    background: var(--smp-doctor-teal);
    color: var(--smp-color-text-inverse);
    border-color: var(--smp-doctor-teal);
}

.smp-doctor-btn--primary:hover {
    background: var(--smp-doctor-teal-accent);
}

.smp-doctor-btn--ghost {
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    border-color: var(--smp-doctor-border);
}

.smp-doctor-btn--ghost:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-btn--danger {
    background: var(--smp-doctor-panel);
    color: var(--smp-status-danger);
    border-color: var(--smp-status-danger-soft);
}

.smp-doctor-btn--danger:hover {
    background: var(--smp-status-danger-light);
}

.smp-doctor-btn--accent {
    background: #f0fdfa;
    color: var(--smp-doctor-teal);
    border-color: var(--smp-status-teal-soft);
}

.smp-doctor-btn--accent:hover {
    background: var(--smp-status-teal-softer);
}

.smp-doctor-review-warning-link {
    display: inline-flex;
    margin-top: 0.5rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-teal);
    text-decoration: none;
}

.smp-doctor-review-warning-link:hover {
    text-decoration: underline;
}

/* Agent report sub-sub-app */
#doctor-report.smp-doctor-report-pane,
#doctor-output.smp-doctor-report-pane {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--smp-doctor-panel);
}

.smp-doctor-report-header {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: linear-gradient(180deg, var(--smp-doctor-surface) 0%, var(--smp-doctor-panel) 100%);
}

.smp-doctor-report-heading {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    min-width: 0;
}

.smp-doctor-report-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.smp-doctor-report-back {
    flex-shrink: 0;
    border-radius: 0.5rem;
    padding: 0.4rem 0.65rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-teal);
    cursor: pointer;
}

.smp-doctor-report-back:hover {
    background: var(--smp-status-success-light);
}

.smp-doctor-report-title {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-report-meta {
    margin: 0.2rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-report-body {
    flex: 1 1 auto;
    min-height: 0;
    min-height: 12rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-y: auto;
    padding: 1rem 1.15rem 1.5rem;
}

.smp-doctor-report-body .smp-doctor-out-muted,
.smp-doctor-report-body .smp-doctor-out-empty {
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-base);
    padding: 0.5rem 0;
}

.smp-doctor-wrap .smp-doctor-upload-status {
    flex-shrink: 0;
    margin: 0;
    padding: 0.35rem 1rem 0.5rem;
    border-top: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-surface);
}

/* Compliance reference colors — Doctor-wide (Controls tags + Crosswalk). */
.smp-doctor-wrap {
    --smp-hsms-color-ohs: #b45309;
    --smp-hsms-color-iso: #1d4ed8;
    --smp-hsms-color-acsa: #7e22ce;
    --smp-hsms-color-api: #15803d;
    --smp-hsms-bg-ohs: color-mix(in srgb, var(--smp-hsms-color-ohs) 12%, transparent);
    --smp-hsms-bg-iso: color-mix(in srgb, var(--smp-hsms-color-iso) 12%, transparent);
    --smp-hsms-bg-acsa: color-mix(in srgb, var(--smp-hsms-color-acsa) 12%, transparent);
    --smp-hsms-bg-api: color-mix(in srgb, var(--smp-hsms-color-api) 12%, transparent);
}

.smp-doctor-wrap .smp-hsms-directory {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-hsms-header {
    flex-shrink: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.25rem;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-header--search-only {
    justify-content: stretch;
    align-items: center;
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.smp-doctor-wrap .smp-hsms-header--search-only .smp-hsms-search-wrap {
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
}

.smp-doctor-wrap .smp-hsms-header--search-only .smp-hsms-zone {
    margin: 0;
    align-self: center;
    flex-shrink: 0;
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-header--search-only .smp-hsms-header-actions {
    margin-left: 0;
}

.smp-doctor-wrap .smp-hsms-header-export-btn {
    flex-shrink: 0;
    align-self: center;
    font-size: var(--smp-text-xs);
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.5rem;
    align-items: center;
    flex-shrink: 0;
}

.smp-doctor-wrap .smp-hsms-header-remove-btn {
    flex-shrink: 0;
    font-size: var(--smp-text-xs);
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-header-remove-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.smp-doctor-wrap .smp-hsms-title {
    margin: 0;
    font-size: var(--smp-text-lg, 1.05rem);
    font-weight: 700;
    color: var(--smp-doctor-text-strong);
    letter-spacing: -0.01em;
}

.smp-doctor-wrap .smp-hsms-subtitle {
    margin: 0.2rem 0 0;
    font-size: var(--smp-text-sm);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-hsms-zone {
    margin: 0.35rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-wrap .smp-hsms-search-wrap {
    flex: 1 1 14rem;
    max-width: 24rem;
    min-width: 12rem;
}

.smp-doctor-wrap .smp-hsms-search-input {
    width: 100%;
    box-sizing: border-box;
    padding: 0.45rem 0.85rem;
    font-size: var(--smp-text-sm);
    font-family: inherit;
    color: var(--smp-doctor-text);
    background: var(--smp-doctor-panel);
    border: 1px solid var(--smp-doctor-border);
    border-radius: 6px;
    outline: none;
}

.smp-doctor-wrap .smp-hsms-search-input:focus {
    border-color: var(--smp-doctor-teal-accent);
    box-shadow: 0 0 0 2px rgba(13, 148, 136, 0.18);
}

.smp-doctor-wrap .smp-hsms-search-input::placeholder {
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-wrap .smp-hsms-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 0.75rem 1rem 1.25rem;
}

.smp-doctor-wrap .smp-hsms-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2.5rem 1.5rem;
    min-height: min(320px, 50vh);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-state-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin-bottom: 0.85rem;
    border-radius: 999px;
    background: var(--smp-doctor-surface);
    font-size: 1.25rem;
    line-height: 1;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-hsms-state--error .smp-hsms-state-icon {
    background: var(--smp-status-danger-light, #fef2f2);
    color: var(--smp-status-danger, #dc2626);
}

.smp-doctor-wrap .smp-hsms-state--loading .smp-hsms-state-icon {
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 12%, var(--smp-doctor-surface));
    color: var(--smp-doctor-teal);
}

.smp-doctor-wrap .smp-hsms-state-title {
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-base);
    font-weight: 600;
    color: var(--smp-doctor-text-strong);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-state-message {
    margin: 0;
    max-width: 28rem;
    font-size: var(--smp-text-sm);
    line-height: 1.5;
    color: var(--smp-doctor-text-muted);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-state--error .smp-hsms-state-message {
    color: var(--smp-status-danger, #b91c1c);
}

.smp-doctor-wrap .smp-hsms-state-detail {
    margin: 0.75rem 0 0;
    max-width: 32rem;
    font-size: var(--smp-text-xs);
    line-height: 1.45;
    color: var(--smp-doctor-text-soft);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-state-code {
    font-family: var(--smp-font-mono, ui-monospace, monospace);
    font-size: 0.85em;
    padding: 0.12rem 0.35rem;
    border-radius: 4px;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-hsms-state-actions {
    margin-top: 1rem;
    display: flex;
    justify-content: center;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-hsms-tree,
.smp-doctor-wrap .smp-fb-tree.smp-hsms-tree {
    margin: 0 0 1rem;
    padding: 0;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 8px;
    background: var(--smp-doctor-panel);
    font-family: inherit;
    font-size: var(--smp-text-sm);
    color: var(--smp-doctor-text);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    --hsms-indent-step: 1.35rem;
    /* Chevron (~0.4) + margin (0.15) + summary gap (0.35) → align file icon to folder icon */
    --hsms-file-leader: 0.9rem;
    --smp-fb-tree-indent: 1.35rem;
    --smp-border-default: var(--smp-doctor-border);
    --smp-surface-raised: var(--smp-doctor-panel);
    --smp-surface-muted: var(--smp-doctor-surface);
    --smp-color-text: var(--smp-doctor-text);
    --smp-color-brand: var(--smp-doctor-teal-accent);
}

.smp-doctor-wrap .smp-hsms-folder--system-root > summary {
    font-weight: 700;
    font-size: var(--smp-text-base);
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 10%, var(--smp-doctor-panel));
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.smp-doctor-wrap .smp-hsms-folder--system-root > summary:hover {
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 14%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-hsms-folder {
    margin: 0;
    border-bottom: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-folder:last-child {
    border-bottom: none;
}

.smp-doctor-wrap .smp-hsms-folder > summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 0.75rem;
    padding-left: calc(0.75rem + var(--hsms-depth, 0) * var(--hsms-indent-step, 1.35rem));
    font-weight: 600;
    font-size: var(--smp-text-sm);
    color: var(--smp-doctor-text-strong);
    background: var(--smp-doctor-surface);
    user-select: none;
}

.smp-doctor-wrap .smp-hsms-folder > summary::-webkit-details-marker {
    display: none;
}

.smp-doctor-wrap .smp-hsms-folder > summary::before {
    content: "";
    flex: 0 0 auto;
    width: 0.4rem;
    height: 0.4rem;
    border-right: 2px solid var(--smp-doctor-text-muted);
    border-bottom: 2px solid var(--smp-doctor-text-muted);
    transform: rotate(-45deg);
    margin-right: 0.15rem;
    transition: transform 0.15s ease;
}

.smp-doctor-wrap .smp-hsms-folder[open] > summary::before {
    transform: rotate(45deg);
}

.smp-doctor-wrap .smp-hsms-folder > summary:hover {
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 8%, var(--smp-doctor-surface));
}

.smp-doctor-wrap .smp-hsms-folder .smp-hsms-folder > summary {
    font-weight: 600;
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-folder-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    line-height: 1;
}

.smp-doctor-wrap .smp-hsms-folder-icon img {
    display: block;
    width: 1rem;
    height: 1rem;
    object-fit: contain;
}

.smp-doctor-wrap .smp-hsms-doc-set {
    margin: 0.35rem 0.5rem 0.55rem;
    margin-left: calc(
        0.5rem + var(--hsms-depth, 0) * var(--hsms-indent-step, 1.35rem) + var(--hsms-file-leader, 0.95rem)
    );
    border: 1px solid var(--smp-doctor-border);
    border-left: 2px solid color-mix(in srgb, var(--smp-doctor-teal-accent) 42%, var(--smp-doctor-border));
    border-radius: 0 6px 6px 0;
    background: color-mix(in srgb, var(--smp-doctor-surface) 50%, var(--smp-doctor-panel));
    overflow: hidden;
}

.smp-doctor-wrap .smp-hsms-doc-set + .smp-hsms-doc-set,
.smp-doctor-wrap .smp-hsms-doc-set + .smp-hsms-file-row--standalone,
.smp-doctor-wrap .smp-hsms-file-row--standalone + .smp-hsms-doc-set {
    margin-top: 0.15rem;
}

.smp-doctor-wrap .smp-hsms-doc-set .smp-hsms-file-row {
    padding-left: 0.75rem;
    background: transparent;
}

.smp-doctor-wrap .smp-hsms-doc-set .smp-hsms-file-row + .smp-hsms-file-row {
    border-top: 1px solid color-mix(in srgb, var(--smp-doctor-border) 80%, transparent);
}

.smp-doctor-wrap .smp-hsms-doc-set:hover {
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 5%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-hsms-doc-set .smp-hsms-file-row:hover {
    background: color-mix(in srgb, var(--smp-doctor-teal-accent) 8%, var(--smp-doctor-surface));
}

.smp-doctor-wrap .smp-hsms-file-row--child {
    padding-left: calc(0.75rem + 0.85rem);
}

.smp-doctor-wrap .smp-hsms-file-row--child .smp-hsms-file-name {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-wrap .smp-hsms-file-row--child .smp-hsms-file-icon {
    width: 0.9rem;
    height: 0.9rem;
    opacity: 0.88;
}

.smp-doctor-wrap .smp-fb-tree .smp-fb-file-card {
    margin: 0.35rem 0.75rem 0.35rem
        calc(
            0.75rem + var(--smp-fb-tree-depth, var(--hsms-depth, 0)) *
                var(--smp-fb-tree-indent, var(--hsms-indent-step, 1.35rem)) +
                var(--hsms-file-leader, 0.9rem)
        );
}

.smp-doctor-wrap .smp-hsms-file-row {
    display: grid;
    /*
     * Fixed tag + action columns so every row lines up vertically
     * (each row is its own grid — auto columns were sizing per-row).
     * checkbox | type | name | refs (right) | icons (right)
     */
    grid-template-columns:
        1.25rem
        2.15rem
        minmax(0, 1fr)
        minmax(10.5rem, 12.5rem)
        8.75rem;
    align-items: center;
    column-gap: 0.65rem;
    row-gap: 0.35rem;
    margin: 0;
    padding: 0.45rem 0.75rem;
    padding-left: calc(
        0.75rem + var(--smp-fb-tree-depth, var(--hsms-depth, 0)) *
            var(--smp-fb-tree-indent, var(--hsms-indent-step, 1.35rem)) +
            var(--hsms-file-leader, 0.9rem)
    );
    background: var(--smp-doctor-panel);
    width: 100%;
    box-sizing: border-box;
}

.smp-doctor-wrap .smp-hsms-file-row:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-hsms-file-row.is-selected {
    background: color-mix(in srgb, var(--smp-color-brand, #2f6fed) 10%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-hsms-select-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.25rem;
    min-height: 1.25rem;
    margin: 0;
    cursor: pointer;
}

.smp-doctor-wrap .smp-hsms-select-toggle--spacer {
    display: block;
    width: 1.25rem;
    flex: 0 0 auto;
    cursor: default;
}

.smp-doctor-wrap .smp-hsms-select-toggle__input {
    margin: 0;
    width: 0.95rem;
    height: 0.95rem;
    cursor: pointer;
}

.smp-doctor-wrap .smp-hsms-library-pill {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    max-width: 100%;
    margin: 0;
    padding: 0.2rem;
    border: 1px solid color-mix(in srgb, var(--smp-doctor-border, #cbd5e1) 90%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--smp-doctor-panel, #fff) 92%, #e2e8f0);
    color: var(--smp-doctor-muted, #64748b);
    font-size: 0.68rem;
    font-weight: 650;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
}

.smp-doctor-wrap .smp-hsms-library-pill:hover:not(:disabled) {
    border-color: color-mix(in srgb, var(--smp-doctor-accent, #2563eb) 35%, var(--smp-doctor-border, #cbd5e1));
}

.smp-doctor-wrap .smp-hsms-library-pill:disabled {
    opacity: 0.6;
    cursor: wait;
}

.smp-doctor-wrap .smp-hsms-library-pill__track {
    position: relative;
    display: inline-block;
    width: 1.55rem;
    height: 0.9rem;
    flex: 0 0 auto;
    border-radius: 999px;
    background: #94a3b8;
    transition: background 0.15s ease;
}

.smp-doctor-wrap .smp-hsms-library-pill__knob {
    position: absolute;
    top: 0.1rem;
    left: 0.1rem;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.08);
    transition: transform 0.15s ease;
}

.smp-doctor-wrap .smp-hsms-library-pill.is-on {
    border-color: color-mix(in srgb, var(--smp-doctor-accent, #2563eb) 40%, transparent);
    background: color-mix(in srgb, var(--smp-doctor-accent, #2563eb) 12%, var(--smp-doctor-panel, #fff));
    color: var(--smp-doctor-accent, #2563eb);
}

.smp-doctor-wrap .smp-hsms-library-pill.is-on .smp-hsms-library-pill__track {
    background: var(--smp-doctor-accent, #2563eb);
}

.smp-doctor-wrap .smp-hsms-library-pill.is-on .smp-hsms-library-pill__knob {
    transform: translateX(0.65rem);
}

.smp-doctor-wrap .smp-hsms-icon-btn--library.is-on {
    color: var(--smp-doctor-accent, #2563eb);
    background: color-mix(in srgb, var(--smp-doctor-accent, #2563eb) 14%, transparent);
}

.smp-doctor-wrap .smp-hsms-file-main {
    min-width: 0;
}

.smp-doctor-wrap .smp-hsms-file-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    align-content: center;
    gap: 0.35rem 0.65rem;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-align: right;
    font-size: var(--smp-text-xs);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-file-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.smp-doctor-wrap .smp-hsms-file-name {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-width: 0;
    font-size: var(--smp-text-sm);
    line-height: 1.35;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-hsms-file-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-file-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.125rem;
}

.smp-doctor-wrap .smp-hsms-type-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 1.125rem;
    padding: 0 0.3rem;
    border-radius: 3px;
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1;
    vertical-align: middle;
}

.smp-doctor-wrap .smp-hsms-type-code--word {
    background: #dbeafe;
    color: #1e40af;
}

.smp-doctor-wrap .smp-hsms-type-code--pdf {
    background: var(--smp-status-danger-bg);
    color: #991b1b;
}

.smp-doctor-wrap .smp-hsms-type-code--sheet {
    background: #dcfce7;
    color: #166534;
}

.smp-doctor-wrap .smp-hsms-type-code--html {
    background: #ffedd5;
    color: #c2410c;
}

.smp-doctor-wrap .smp-hsms-type-code--text,
.smp-doctor-wrap .smp-hsms-type-code--generic {
    background: #f1f5f9;
    color: #475569;
}

.smp-doctor-wrap .smp-hsms-type-code--information-md {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 28%, transparent);
}

.smp-doctor-wrap .smp-hsms-tag {
    display: inline;
    padding: 0;
    border-radius: 0;
    background: none;
    font-size: inherit;
    font-weight: 500;
    line-height: 1.35;
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-tag-ohs,
.smp-doctor-wrap .smp-hsms-ref--ohs {
    color: var(--smp-hsms-color-ohs);
}

.smp-doctor-wrap .smp-hsms-tag-iso,
.smp-doctor-wrap .smp-hsms-ref--iso {
    color: var(--smp-hsms-color-iso);
}

.smp-doctor-wrap .smp-hsms-tag-acsa,
.smp-doctor-wrap .smp-hsms-ref--acsa {
    color: var(--smp-hsms-color-acsa);
}

.smp-doctor-wrap .smp-hsms-tag-api,
.smp-doctor-wrap .smp-hsms-ref--api {
    color: var(--smp-hsms-color-api);
}

.smp-doctor-wrap .smp-hsms-tag-ui {
    color: var(--smp-status-info);
}

.smp-doctor-wrap .smp-hsms-file-role {
    margin-top: 0.15rem;
    padding-left: calc(1rem + 0.4rem);
    font-size: var(--smp-text-xs);
    font-weight: 500;
    line-height: 1.25;
    color: var(--smp-doctor-text-soft);
    font-style: normal;
}

.smp-doctor-wrap .smp-hsms-alias {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-teal);
    font-weight: 500;
}

.smp-doctor-wrap .smp-hsms-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 1.75rem;
    height: 1.75rem;
    padding: 0;
    border-radius: 6px;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.smp-doctor-wrap .smp-hsms-icon-btn svg {
    display: block;
    width: 1rem;
    height: 1rem;
}

.smp-doctor-wrap .smp-hsms-icon-btn--view {
    background: var(--smp-status-success-light);
    color: var(--smp-doctor-teal);
    border-color: var(--smp-status-teal-soft);
}

.smp-doctor-wrap .smp-hsms-icon-btn--view:hover {
    background: var(--smp-status-teal-softer);
    color: var(--smp-doctor-teal-accent);
}

.smp-doctor-wrap .smp-hsms-icon-btn--publish {
    background: var(--smp-status-info-light);
    color: var(--smp-status-info);
    border-color: var(--smp-status-info-soft);
}

.smp-doctor-wrap .smp-hsms-icon-btn--publish:hover:not(:disabled) {
    background: color-mix(in srgb, var(--smp-status-info) 15%, var(--smp-status-info-light));
    color: var(--smp-status-info);
}

.smp-doctor-wrap .smp-hsms-icon-btn--publish.is-loading {
    position: relative;
    pointer-events: none;
    cursor: wait;
}

.smp-doctor-wrap .smp-hsms-icon-btn--publish.is-loading svg {
    visibility: hidden;
}

.smp-doctor-wrap .smp-hsms-icon-btn--publish.is-loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.85rem;
    height: 0.85rem;
    margin: -0.425rem 0 0 -0.425rem;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: smp-hsms-publish-spin 0.65s linear infinite;
}

@keyframes smp-hsms-publish-spin {
    to {
        transform: rotate(360deg);
    }
}

.smp-doctor-wrap .smp-hsms-icon-btn--library {
    background: #f5f3ff;
    color: var(--smp-status-purple);
    border-color: #ddd6fe;
}

.smp-doctor-wrap .smp-hsms-icon-btn--library:hover:not(:disabled) {
    background: var(--smp-status-purple-light);
    color: #5b21b6;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-icon-btn--library,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-icon-btn--library:hover:not(:disabled) {
    background: color-mix(in srgb, var(--smp-status-purple) 12%, var(--smp-doctor-surface));
    color: #d8b4fe;
    border-color: #a855f7;
}

.smp-doctor-wrap .smp-hsms-icon-btn--download {
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    border-color: var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-icon-btn--download:hover {
    background: var(--smp-doctor-surface);
    border-color: var(--smp-doctor-teal-accent);
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-wrap .smp-hsms-icon-btn--remove {
    background: var(--smp-doctor-panel);
    color: var(--smp-status-danger, #b91c1c);
    border-color: var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-icon-btn--favorite.is-on {
    color: #c9a227;
    border-color: color-mix(in srgb, #c9a227 40%, transparent);
}

.smp-doctor-wrap .smp-hsms-icon-btn--acknowledge {
    color: var(--smp-status-success, #15803d);
}

.smp-doctor-wrap .smp-hsms-file-row--ref.smp-hsms-ref--ohs {
    border-left: 3px solid var(--smp-hsms-color-ohs);
}

.smp-doctor-wrap .smp-hsms-file-row--ref.smp-hsms-ref--iso {
    border-left: 3px solid var(--smp-hsms-color-iso);
}

.smp-doctor-wrap .smp-hsms-file-row--ref.smp-hsms-ref--acsa {
    border-left: 3px solid var(--smp-hsms-color-acsa);
}

.smp-doctor-wrap .smp-hsms-file-row--ref.smp-hsms-ref--api {
    border-left: 3px solid var(--smp-hsms-color-api);
}

.smp-doctor-wrap .smp-hsms-hidden {
    display: none !important;
}

.smp-doctor-wrap .smp-hsms-section-title {
    margin: 0 0 0.65rem;
    font-size: var(--smp-text-base);
    font-weight: 700;
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-wrap .smp-hsms-crosswalk-directory {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

.smp-doctor-wrap .smp-hsms-matrix-wrap {
    padding: 0;
    margin: 0;
}

.smp-doctor-wrap .smp-hsms-matrix-panel {
    border: 1px solid var(--smp-doctor-border);
    border-radius: 8px;
    background: var(--smp-doctor-panel);
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.smp-doctor-wrap .smp-hsms-matrix-list {
    display: flex;
    flex-direction: column;
}

.smp-doctor-wrap .smp-hsms-matrix-row {
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-matrix-row:last-child {
    border-bottom: none;
}

.smp-doctor-wrap .smp-hsms-matrix-row:nth-child(even) {
    background: color-mix(in srgb, var(--smp-doctor-surface) 55%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-hsms-matrix-row:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-hsms-matrix-head {
    display: block;
    min-width: 0;
}

.smp-doctor-wrap .smp-hsms-matrix-module {
    font-size: var(--smp-text-sm);
    font-weight: 700;
    line-height: 1.35;
    color: var(--smp-doctor-text-strong);
}

.smp-doctor-wrap .smp-hsms-matrix-purpose {
    margin: 0.3rem 0 0;
    font-size: var(--smp-text-sm);
    line-height: 1.5;
    color: var(--smp-doctor-text-muted);
    overflow-wrap: anywhere;
    word-break: normal;
}

.smp-doctor-wrap .smp-hsms-matrix-compliance {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.5rem;
    margin-top: 0.7rem;
    padding-top: 0.7rem;
    border-top: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.3rem;
    min-width: 0;
    padding: 0.45rem 0.55rem;
    border-radius: 6px;
    background: var(--smp-doctor-surface);
    border: 1px solid color-mix(in srgb, var(--smp-doctor-border) 80%, transparent);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-item.smp-hsms-ref--ohs {
    background: var(--smp-hsms-bg-ohs);
    border-color: color-mix(in srgb, var(--smp-hsms-color-ohs) 28%, transparent);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-item.smp-hsms-ref--iso {
    background: var(--smp-hsms-bg-iso);
    border-color: color-mix(in srgb, var(--smp-hsms-color-iso) 28%, transparent);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-item.smp-hsms-ref--acsa {
    background: var(--smp-hsms-bg-acsa);
    border-color: color-mix(in srgb, var(--smp-hsms-color-acsa) 28%, transparent);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-item.smp-hsms-ref--api {
    background: var(--smp-hsms-bg-api);
    border-color: color-mix(in srgb, var(--smp-hsms-color-api) 28%, transparent);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-label {
    font-size: var(--smp-text-2xs, 0.68rem);
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.3;
    text-transform: uppercase;
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-label.smp-hsms-tag-ohs {
    color: var(--smp-hsms-color-ohs);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-label.smp-hsms-tag-iso {
    color: var(--smp-hsms-color-iso);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-label.smp-hsms-tag-acsa {
    color: var(--smp-hsms-color-acsa);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-label.smp-hsms-tag-api {
    color: var(--smp-hsms-color-api);
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-value {
    font-size: var(--smp-text-xs);
    line-height: 1.45;
    font-weight: 500;
    color: var(--smp-doctor-text);
    overflow-wrap: anywhere;
    word-break: normal;
}

.smp-doctor-wrap .smp-hsms-matrix-compliance-value.is-empty {
    color: var(--smp-doctor-text-soft);
    font-weight: 400;
}

.smp-doctor-wrap .smp-hsms-viewer {
    flex-shrink: 0;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-hsms-viewer-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0.55rem 1rem;
    font-size: var(--smp-text-sm);
    border-bottom: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-viewer-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.smp-doctor-wrap .smp-hsms-viewer-frame {
    display: block;
    width: 100%;
    height: min(52vh, 520px);
    border: 0;
    background: var(--smp-doctor-panel);
}

#doctor-body .smp-doctor-hsms-doc-pane {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--smp-doctor-panel);
}

#doctor-body .smp-doctor-hsms-doc-pane--missing {
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
}

#doctor-body .smp-doctor-hsms-doc-missing-msg {
    font-size: var(--smp-text-sm);
    color: var(--smp-doctor-muted);
    margin: 0 0 0.75rem;
    max-width: 36ch;
    line-height: 1.5;
}

#doctor-body .smp-doctor-hsms-doc-actions {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.75rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
}

#doctor-body .smp-doctor-hsms-doc-action-btn {
    font-size: var(--smp-text-xs) !important;
    padding: 0.25rem 0.5rem !important;
    text-decoration: none;
}

#doctor-body .smp-doctor-hsms-doc-frame {
    flex: 1 1 auto;
    width: 100%;
    border: 0;
    min-height: 0;
    background: var(--smp-doctor-panel);
}

html[data-bs-theme="dark"] .smp-doctor-wrap {
    --smp-hsms-color-ohs: #fbbf24;
    --smp-hsms-color-iso: #93c5fd;
    --smp-hsms-color-acsa: #d8b4fe;
    --smp-hsms-color-api: #86efac;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-tag-ohs {
    color: var(--smp-hsms-color-ohs);
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-tag-iso {
    color: var(--smp-hsms-color-iso);
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-tag-acsa {
    color: var(--smp-hsms-color-acsa);
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-tag-api {
    color: var(--smp-hsms-color-api);
}

@media (max-width: 720px) {
    .smp-doctor-wrap .smp-hsms-file-row {
        grid-template-columns: 1.25rem 2.15rem minmax(0, 1fr);
        column-gap: 0.45rem;
    }

    .smp-doctor-wrap .smp-hsms-file-tags,
    .smp-doctor-wrap .smp-hsms-file-actions {
        grid-column: 1 / -1;
        width: 100%;
        justify-content: flex-end;
    }

    .smp-doctor-wrap .smp-hsms-file-tags {
        padding-left: calc(1.25rem + 2.15rem + 0.45rem);
    }

    .smp-doctor-wrap .smp-hsms-matrix-compliance {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .smp-doctor-wrap .smp-hsms-matrix-compliance {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ------------------------------------------------------------------ *
 *  Pipeline chrome, hubs, modals, review desk sub-blocks
 *  Classes rendered by doctor*.js that were not committed to git.
 *  Uses tokens from smp-theme.css; scoped under .smp-doctor-wrap where
 *  the surface lives inside the Doctor pane.
 * ------------------------------------------------------------------ */

/* --- Desk header (Pipeline banner) --------------------------------- */
.smp-doctor-wrap .smp-doctor-desk-header {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-doctor-desk-title {
    margin: 0;
    width: 100%;
    max-width: 100%;
    font-size: var(--smp-text-base);
    font-weight: 700;
    color: var(--smp-doctor-text);
}

/* --- Empty state (tabs with no rows) ------------------------------- */
.smp-doctor-wrap .smp-doctor-empty {
    padding: 2.25rem 1.5rem;
    text-align: center;
}

.smp-doctor-wrap .smp-doctor-empty__icon-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    margin: 0 auto 0.75rem;
    border-radius: 9999px;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-doctor-empty__icon-wrap svg {
    width: 1.5rem;
    height: 1.5rem;
}

.smp-doctor-wrap .smp-doctor-empty__message {
    margin: 0 auto;
    max-width: 26rem;
    color: var(--smp-doctor-text-muted);
    line-height: 1.5;
}

/* --- Stage toolbar (row count + clear button) ---------------------- */
.smp-doctor-wrap .smp-doctor-stage-toolbar {
    padding: 0.6rem 1rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-doctor-stage-toolbar__count {
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
    font-variant-numeric: tabular-nums;
}

/* --- Inbox dropzone inner --------------------------------------- */
.smp-doctor-wrap .smp-doctor-dropzone {
    margin: 0.75rem 1rem 0.5rem;
    padding: 1.75rem 1.5rem;
    border: 2px dashed var(--smp-doctor-border);
    border-radius: 0.75rem;
    background: var(--smp-doctor-surface);
    text-align: center;
    outline: none;
}

.smp-doctor-wrap .smp-doctor-dropzone:focus-visible {
    box-shadow: 0 0 0 3px rgba(45, 212, 191, 0.35);
}

.smp-doctor-wrap .smp-doctor-dropzone__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    max-width: 28rem;
    margin: 0 auto;
}

.smp-doctor-wrap .smp-doctor-dropzone__icon-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3.25rem;
    height: 3.25rem;
    margin-bottom: 0.15rem;
    border-radius: 9999px;
    background: rgba(15, 118, 110, 0.08);
    color: var(--smp-doctor-teal);
}

.smp-doctor-wrap .smp-doctor-dropzone__icon-wrap svg,
.smp-doctor-wrap .smp-doctor-dropzone-icon {
    width: 1.65rem;
    height: 1.65rem;
    display: block;
}

.smp-doctor-wrap .smp-doctor-dropzone__title {
    margin: 0;
    font-size: var(--smp-text-base);
    font-weight: 700;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-doctor-dropzone__hint {
    margin: 0 0 0.5rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-doctor-dropzone__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 0.25rem;
    padding: 0.42rem 0.9rem;
    border-radius: 0.5rem;
    background: var(--smp-doctor-teal);
    color: #fff;
    border: 1px solid var(--smp-doctor-teal);
    font-size: var(--smp-text-xs);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.smp-doctor-wrap .smp-doctor-dropzone__btn:hover {
    background: var(--smp-doctor-teal-accent);
    border-color: var(--smp-doctor-teal-accent);
}

/* --- Menu sidebar nav inner spans ---------------------------------- */
form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__main {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
    color: currentColor;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__icon svg,
form#doctor-menu-filters .smp-doctor-nav-icon {
    width: 1.125rem;
    height: 1.125rem;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar__section {
    margin: 0.75rem 0 0.35rem;
    padding: 0 0.65rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-muted);
}

/* --- Review card __head / __body ----------------------------------- */
/* Name left + button row right; description boxes full width below */
.smp-doctor-review-card__head {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-review-card__head > .min-w-0,
.smp-doctor-review-card__head > .flex-1 {
    flex: 1 1 12rem;
    min-width: 0;
    width: auto;
    max-width: 100%;
}

.smp-doctor-review-card__body {
    margin-top: 0;
    padding-top: 0.65rem;
    border-top: 1px solid var(--smp-doctor-border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-review-card__body > * {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* --- Review warning base (031 amber/red callout) ------------------- */
.smp-doctor-review-warning {
    margin: 0;
    padding: 0.65rem 0.85rem;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    font-size: var(--smp-text-sm);
    line-height: 1.45;
    color: var(--smp-doctor-text);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.smp-doctor-review-warning > p {
    margin: 0;
}

.smp-doctor-review-warning > p + p {
    margin-top: 0.35rem;
}

.smp-doctor-review-warning-details {
    margin-top: 0.6rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--smp-doctor-border);
}

.smp-doctor-review-warning-details summary {
    cursor: pointer;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-review-warning-details dl {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 0.2rem 0.75rem;
    margin: 0.5rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-review-warning-details dt {
    font-weight: 600;
}

.smp-doctor-review-warning-details dd {
    margin: 0;
    word-break: break-word;
}

/* --- Review badge --pdf ------------------------------------------- */
.smp-doctor-review-badge--pdf {
    background: var(--smp-status-info-light);
    color: var(--smp-status-info);
    border: 1px solid var(--smp-status-info-soft);
    gap: 0.25rem;
}

.smp-doctor-review-badge--pdf svg {
    width: 0.85rem;
    height: 0.85rem;
    vertical-align: -0.125em;
}

/* --- Review companions (linked PDFs) ------------------------------- */
.smp-doctor-review-companions {
    padding: 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
    font-size: var(--smp-text-sm);
}

.smp-doctor-review-companions__title {
    margin: 0 0 0.5rem;
    font-weight: 700;
    color: var(--smp-doctor-text);
}

.smp-doctor-companion-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smp-doctor-companion-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    border-radius: 0.375rem;
    cursor: pointer;
}

.smp-doctor-companion-row:hover {
    background: var(--smp-doctor-panel);
}

.smp-doctor-companion-row.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.smp-doctor-companion-row__title {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smp-doctor-companion-row__status {
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    padding: 0.1rem 0.4rem;
    border-radius: 9999px;
    background: var(--smp-doctor-panel);
    border: 1px solid var(--smp-doctor-border);
}

.smp-doctor-review-companions__mode {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.65rem;
    padding-top: 0.6rem;
    border-top: 1px dashed var(--smp-doctor-border);
}

.smp-doctor-review-companions__mode-option {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
    line-height: 1.35;
    cursor: pointer;
}

/* --- Reference crawl group / crawl site map ------------------------ */
.smp-doctor-crawl-group__title {
    margin: 0;
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-doctor-text);
    word-break: break-word;
}

.smp-doctor-crawl-group__advisory {
    margin: 0.3rem 0 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-crawl-group__details {
    margin-top: 0.35rem;
}

.smp-doctor-crawl-group__details > summary {
    cursor: pointer;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-teal);
    padding: 0.35rem 0;
}

.smp-doctor-crawl-group__files {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-top: 0.5rem;
}

.smp-doctor-crawl-group__file {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem 0.6rem;
    padding: 0.35rem 0.5rem;
    border-radius: 0.375rem;
    cursor: pointer;
}

.smp-doctor-crawl-group__file:hover {
    background: var(--smp-doctor-surface);
}

.smp-doctor-crawl-group__file.is-parent {
    background: rgba(15, 118, 110, 0.06);
}

.smp-doctor-crawl-group__file-name {
    flex: 1 1 auto;
    min-width: 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smp-doctor-crawl-group__file-tag {
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    color: var(--smp-doctor-teal);
    padding: 0.05rem 0.4rem;
    border-radius: 9999px;
    background: rgba(15, 118, 110, 0.1);
}

.smp-doctor-crawl-group__file-size {
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    font-variant-numeric: tabular-nums;
}

.smp-doctor-crawl-map {
    margin-top: 0.5rem;
}

.smp-doctor-crawl-map__title {
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-xs);
    font-weight: 700;
    color: var(--smp-doctor-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.smp-doctor-crawl-map__list {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 14rem;
    overflow: auto;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.375rem;
    background: var(--smp-doctor-panel);
}

.smp-doctor-crawl-map__row {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.3rem 0.5rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    font-size: var(--smp-text-2xs);
    line-height: 1.35;
}

.smp-doctor-crawl-map__row:last-child {
    border-bottom: none;
}

.smp-doctor-crawl-map__label {
    color: var(--smp-doctor-text);
    font-weight: 600;
}

.smp-doctor-crawl-map__url {
    color: var(--smp-doctor-text-muted);
    word-break: break-all;
}

/* --- Doctor confirm modal + reference metadata modal --------------- */
.smp-doctor-confirm-backdrop {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15, 23, 42, 0.5);
    z-index: 1080;
}

.smp-doctor-confirm-modal {
    width: 100%;
    max-width: 30rem;
    max-height: calc(100vh - 2rem);
    overflow: auto;
    padding: 1.25rem 1.35rem;
    border-radius: 0.75rem;
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.25);
}

.smp-doctor-confirm-modal h3 {
    margin: 0 0 0.5rem;
    font-size: var(--smp-text-base);
    font-weight: 700;
}

.smp-doctor-confirm-modal p {
    margin: 0;
    color: var(--smp-doctor-text-soft);
    line-height: 1.5;
}

.smp-doctor-confirm-modal__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 1rem;
}

.smp-doctor-ref-meta-modal {
    max-width: 34rem;
}

.smp-doctor-ref-meta-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.smp-doctor-ref-meta-field {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-ref-meta-field > span {
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-ref-meta-field select,
.smp-doctor-ref-meta-field input {
    padding: 0.42rem 0.55rem;
    border-radius: 0.4rem;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    font-size: var(--smp-text-sm);
    font-weight: 500;
}

/* --- Doctor button size + variant additions ----------------------- */
.smp-doctor-btn--sm {
    padding: 0.28rem 0.55rem;
    font-size: var(--smp-text-2xs);
}

.smp-doctor-btn--secondary {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text);
    border-color: var(--smp-doctor-border);
}

.smp-doctor-btn--secondary:hover {
    background: var(--smp-doctor-panel);
    border-color: var(--smp-doctor-teal);
    color: var(--smp-doctor-teal);
}

/* --- HSMS / Libraries / Reference / Books hub containers ---------- */
.smp-doctor-wrap .smp-hsms-hub,
.smp-doctor-wrap .smp-libraries-hub,
.smp-doctor-wrap .smp-reference-hub,
.smp-doctor-wrap .smp-books-hub {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-hub-subtabs {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.25rem;
    padding: 0.55rem 1rem 0;
    border-bottom: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-hub-subtabs--inline {
    padding: 0.35rem 0;
    border-bottom: none;
    background: transparent;
}

.smp-doctor-wrap .smp-hsms-hub-subtab {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.85rem;
    border: 1px solid transparent;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    border-radius: 0.4rem 0.4rem 0 0;
    background: transparent;
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-sm);
    font-weight: 600;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.smp-doctor-wrap .smp-hsms-hub-subtab:hover {
    color: var(--smp-doctor-text);
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-hsms-hub-subtab.is-active {
    color: var(--smp-doctor-teal);
    border-color: var(--smp-doctor-border);
    border-bottom-color: var(--smp-doctor-panel);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-hub-subtab__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: 0.05rem 0.4rem;
    border-radius: 9999px;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.smp-doctor-wrap .smp-hsms-hub-subtab.is-active .smp-hsms-hub-subtab__count {
    background: var(--smp-doctor-teal);
    color: #fff;
}

.smp-doctor-wrap .smp-hsms-hub-panels {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-hub-panel {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
    /* Inner .smp-hsms-directory / .smp-hsms-body owns the scroll (sticky header).
       Override .smp-doctor-tab-scroll overflow so Controls and Records match. */
    overflow: hidden;
    padding: 0;
}

.smp-doctor-wrap .smp-hsms-hub-panel.smp-doctor-tab-scroll {
    overflow: hidden;
}

.smp-doctor-wrap .smp-hsms-hub-panel[hidden] {
    display: none !important;
}

.smp-doctor-wrap .smp-library-control-summary,
.smp-doctor-wrap .smp-library-controller-placeholder {
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-library-control-summary {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.smp-doctor-wrap .smp-library-control-summary span,
.smp-doctor-wrap .smp-library-controller-placeholder p {
    margin: 0;
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-sm);
}

.smp-doctor-wrap .smp-library-controller-placeholder h3 {
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-base);
}

.smp-doctor-wrap .smp-library-catalog-toolbar {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.65rem;
}

.smp-doctor-wrap .smp-library-catalog-toolbar__count {
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-sm);
}

.smp-doctor-wrap .smp-library-catalog-source {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--smp-doctor-text-muted);
    border: 1px solid var(--smp-doctor-border, rgba(0, 0, 0, 0.12));
}

.smp-doctor-wrap .smp-library-catalog-remove {
    margin-left: 0.25rem;
}

.smp-lib-drive-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    margin-bottom: 0.35rem;
}

.smp-lib-drive-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: var(--smp-text-sm);
    min-width: 0;
}

.smp-lib-drive-bc-link {
    color: var(--smp-doctor-accent, #2563eb);
    text-decoration: none;
    font-weight: 600;
}

.smp-lib-drive-bc-link:hover {
    text-decoration: underline;
}

.smp-lib-drive-bc-sep {
    color: var(--smp-doctor-text-muted);
}

.smp-lib-drive-bc-current {
    font-weight: 700;
    color: var(--smp-doctor-text);
}

.smp-lib-drive-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.smp-lib-drive-status {
    min-height: 1.25rem;
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-sm);
    color: var(--smp-doctor-text-muted);
}

.smp-lib-drive-status.is-error {
    color: var(--smp-status-danger, #b91c1c);
}

.smp-lib-drive-board {
    overflow: auto;
}

.smp-lib-drive-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--smp-text-sm);
}

.smp-lib-drive-table th,
.smp-lib-drive-table td {
    padding: 0.45rem 0.4rem;
    border-bottom: 1px solid var(--smp-doctor-border, rgba(0, 0, 0, 0.08));
    text-align: left;
    vertical-align: middle;
}

.smp-lib-drive-table th {
    font-size: var(--smp-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--smp-doctor-text-muted);
    font-weight: 700;
}

.smp-lib-drive-col-check {
    width: 2rem;
    text-align: center;
}

.smp-lib-drive-open {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 0;
    background: transparent;
    color: var(--smp-doctor-text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    text-align: left;
}

.smp-lib-drive-open:hover span {
    text-decoration: underline;
}

.smp-lib-drive-col-actions {
    white-space: nowrap;
    text-align: right;
    width: 2.75rem;
}

.smp-lib-drive-menu-wrap {
    display: inline-flex;
    justify-content: flex-end;
    width: 100%;
}

.smp-lib-drive-kebab {
    opacity: 0.35;
}

.smp-lib-drive-row:hover .smp-lib-drive-kebab,
.smp-lib-drive-row:focus-within .smp-lib-drive-kebab,
.smp-lib-drive-kebab:focus {
    opacity: 1;
}

.smp-lib-drive-row.is-drop-target {
    background: var(--smp-doctor-hover, rgba(37, 99, 235, 0.08));
    outline: 1px dashed var(--smp-doctor-accent, #2563eb);
}

.smp-lib-drive-row.is-cut {
    opacity: 0.45;
}

.smp-lib-drive-row.is-cut .smp-lib-drive-open span {
    text-decoration: line-through;
}

.smp-lib-drive-empty-row td {
    color: var(--smp-doctor-text-muted);
    padding: 1rem 0.4rem;
}

.smp-doctor-confirm-modal.smp-lib-drive-modal {
    max-width: min(28rem, 94vw);
}

/* Field Drive / Records picker — Records-style search + clean rows */
.smp-doctor-confirm-modal.smp-lib-catalog-picker-modal {
    max-width: min(40rem, 94vw);
    display: flex;
    flex-direction: column;
    max-height: min(85vh, 42rem);
    overflow: hidden;
    padding: 0;
}

.smp-lib-catalog-picker__head {
    padding: 1rem 1.15rem 0.65rem;
    border-bottom: 1px solid var(--smp-doctor-border, #e2e8f0);
    flex: 0 0 auto;
}

.smp-lib-catalog-picker__head h3 {
    margin: 0;
    font-size: var(--smp-text-lg, 1.05rem);
    font-weight: 700;
    color: var(--smp-doctor-text-strong, #0f172a);
}

.smp-lib-catalog-picker__sub {
    margin: 0.25rem 0 0.75rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted, #64748b);
    line-height: 1.4;
}

.smp-lib-catalog-picker-modal .smp-hsms-header--search-only {
    padding: 0;
    border-bottom: none;
    background: transparent;
}

.smp-lib-catalog-picker__body-scroll {
    overflow: auto;
    flex: 1 1 auto;
    min-height: 10rem;
    max-height: none;
    margin: 0;
    padding: 0.5rem 0.85rem 0.75rem;
}

.smp-lib-catalog-picker__section {
    margin-bottom: 0.65rem;
    border: 1px solid var(--smp-doctor-border, #e2e8f0);
    border-radius: 8px;
    overflow: hidden;
    background: var(--smp-doctor-panel, #fff);
}

.smp-lib-catalog-picker__section:last-child {
    margin-bottom: 0;
}

.smp-lib-catalog-picker__section-title {
    margin: 0;
    padding: 0.45rem 0.75rem;
    font-size: var(--smp-text-xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-muted);
    background: var(--smp-doctor-surface, #f8fafc);
    border-bottom: 1px solid var(--smp-doctor-border, #e2e8f0);
}

.smp-lib-catalog-picker__row {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    border-bottom: 1px solid var(--smp-doctor-border, #e2e8f0);
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-top: none;
    cursor: pointer;
    margin: 0;
}

.smp-lib-catalog-picker__row:last-child {
    border-bottom: none;
}

.smp-lib-catalog-picker__row:hover {
    background: var(--smp-doctor-hover, rgba(13, 148, 136, 0.06));
    border-color: var(--smp-doctor-border, #e2e8f0);
}

.smp-lib-catalog-picker__row input[type="checkbox"] {
    margin: 0;
    flex: 0 0 auto;
}

.smp-lib-catalog-picker__body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
    flex: 1 1 auto;
}

.smp-lib-catalog-picker__title-row {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.smp-lib-catalog-picker__title {
    font-size: var(--smp-text-sm);
    font-weight: 600;
    color: var(--smp-doctor-text);
    line-height: 1.35;
}

.smp-lib-catalog-picker__meta {
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-xs);
    line-height: 1.4;
    word-break: break-word;
}

.smp-lib-catalog-picker-modal .smp-doctor-confirm-modal__actions {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.75rem 1.15rem;
    border-top: 1px solid var(--smp-doctor-border, #e2e8f0);
    background: var(--smp-doctor-panel, #fff);
}

/* --- Reference tab sub-blocks ------------------------------------- */
.smp-doctor-wrap .smp-reference-hub-panel {
    padding: 0.75rem 1rem 1rem;
}

.smp-doctor-wrap .smp-reference-find-panel {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.smp-doctor-wrap .smp-reference-find-toolbar {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-reference-find-toolbar__row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-reference-find-toolbar__row--controls {
    gap: 0.4rem;
}

.smp-doctor-wrap .smp-reference-find-toolbar__catalog {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.smp-doctor-wrap .smp-reference-find-toolbar__label {
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-reference-find-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex: 1 1 auto;
    min-width: 0;
}

.smp-doctor-wrap .smp-reference-find-input {
    flex: 1 1 15rem;
    min-width: 12rem;
    padding: 0.45rem 0.6rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.45rem;
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    font-size: var(--smp-text-sm);
}

.smp-doctor-wrap .smp-reference-find-input:focus {
    outline: none;
    border-color: var(--smp-doctor-teal);
    box-shadow: 0 0 0 2px rgba(15, 118, 110, 0.2);
}

.smp-doctor-wrap .smp-reference-find-browse-hint {
    margin: 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-reference-find-results {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-reference-mine-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
    margin-bottom: 0.65rem;
}

.smp-doctor-wrap .smp-reference-mine-filters__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 12rem;
    flex: 1 1 12rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-reference-mine-filters__clear {
    align-self: flex-end;
}

.smp-doctor-wrap .smp-reference-mine-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

/* --- HSMS file rows (Directory Files section) --------------------- */
.smp-doctor-wrap .smp-hsms-file-title {
    font-size: var(--smp-text-sm);
    font-weight: 600;
    color: var(--smp-doctor-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-file-sub {
    display: block;
    margin-top: 0.15rem;
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-hsms-file-btn,
.smp-doctor-wrap .smp-hsms-view-btn,
.smp-doctor-wrap .smp-hsms-dl-btn {
    padding: 0.28rem 0.6rem;
    font-size: var(--smp-text-2xs);
}

.smp-doctor-wrap .smp-hsms-file-row--record {
    /* Same 5-column grid as .smp-hsms-file-row — actions stay on the far right. */
    padding: 0.5rem 0.75rem;
    padding-left: calc(
        0.75rem + var(--smp-fb-tree-depth, var(--hsms-depth, 0)) *
            var(--smp-fb-tree-indent, var(--hsms-indent-step, 1.35rem)) +
            var(--hsms-file-leader, 0.9rem)
    );
    border-bottom: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-hsms-file-row--record:last-child {
    border-bottom: none;
}

.smp-doctor-wrap .smp-hsms-file-icon-img {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.smp-doctor-wrap .smp-lib-drive-status {
    margin: 0;
    min-height: 1.1em;
}

.smp-doctor-wrap .smp-lib-drive-status.is-error {
    color: #b91c1c;
}

/* --- HSMS records / library list ---------------------------------- */
.smp-doctor-wrap .smp-hsms-records-directory {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    gap: 0;
}

/* Keep Records body scrolling like Controls (.smp-hsms-body). */
.smp-doctor-wrap .smp-hsms-body.smp-doctor-records-hsms {
    display: block;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    gap: 0;
}

.smp-doctor-wrap .smp-doctor-library-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.smp-doctor-wrap .smp-doctor-library-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smp-doctor-wrap .smp-doctor-library-list-item {
    display: block;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    border-radius: 0;
}

.smp-doctor-wrap .smp-doctor-library-list-item > .smp-library-doc-card {
    width: 100%;
    box-sizing: border-box;
}

.smp-doctor-wrap .smp-doctor-library-list-item:hover {
    border-color: transparent;
}

/* --- Report titles wrap (report sub-app header) ------------------- */
.smp-doctor-report-titles {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

/* --- Review warning level variants (031) --------------------------- */
.smp-doctor-review-warning--info {
    background: var(--smp-status-info-light);
    border-color: var(--smp-status-info-soft);
    color: var(--smp-status-info-text);
}

.smp-doctor-review-warning--warn {
    background: var(--smp-status-amber-light);
    border-color: var(--smp-status-amber-soft);
    color: var(--smp-status-amber-text-strong);
}

.smp-doctor-review-warning-pre {
    margin: 0.35rem 0 0;
    padding: 0.4rem 0.55rem;
    font-family: var(--smp-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: var(--smp-text-2xs);
    line-height: 1.35;
    background: rgba(15, 23, 42, 0.05);
    border-radius: 0.375rem;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 8rem;
    overflow: auto;
}

/* --- Review crawl-group card (reference grouping in Review) -------- */
.smp-doctor-review-crawl-group {
    background: color-mix(in srgb, var(--smp-doctor-teal) 5%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 25%, var(--smp-doctor-border));
}

/* --- HSMS matrix scaffold (Crosswalk table) ----------------------- */
.smp-doctor-wrap .smp-hsms-matrix {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--smp-text-xs);
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-hsms-matrix thead th {
    position: sticky;
    top: 0;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    font-weight: 700;
    text-align: left;
    padding: 0.45rem 0.55rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    white-space: nowrap;
}

.smp-doctor-wrap .smp-hsms-matrix tbody td {
    padding: 0.4rem 0.55rem;
    border-bottom: 1px solid var(--smp-doctor-border);
    vertical-align: top;
    line-height: 1.4;
}

.smp-doctor-wrap .smp-hsms-matrix-scroll {
    max-height: 60vh;
    overflow: auto;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-panel);
}

/* --- HSMS state --empty variant ----------------------------------- */
.smp-doctor-wrap .smp-hsms-state--empty {
    border-color: var(--smp-doctor-border);
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-hsms-state--empty .smp-hsms-state-icon {
    color: var(--smp-doctor-text-muted);
    filter: grayscale(0.2);
}

/* --- Reader sidebar shell (Library reader sub-app) ---------------- */
.smp-doctor-menu-sidebar.smp-doctor-reader-sidebar {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

form#doctor-menu-filters .smp-doctor-menu-sidebar__title {
    margin: 0 0 0.5rem;
    padding: 0 0.65rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-muted);
}

form#doctor-menu-filters .smp-doctor-menu-sidebar-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

/* --- Reference mine sumo filter (SumoSelect wrapper) --------------- */
.smp-doctor-wrap .smp-reference-mine-filters__sumo {
    display: none;
}

.smp-doctor-wrap .smp-reference-mine-filters .SumoSelect {
    width: 100%;
}

.smp-doctor-wrap .smp-reference-mine-filters .SumoSelect > .CaptionCont {
    padding: 0.4rem 0.55rem;
    border-radius: 0.4rem;
    border-color: var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    font-size: var(--smp-text-sm);
}

/* --- Reference updates tab pane ------------------------------------ */
.smp-doctor-wrap .smp-reference-updates-tab {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* ------------------------------------------------------------------ *
 *  Shared library / reference document-card family + Reference sub-tabs
 *  (labeling modal, updates diff, drift cards, hit rows, cost badge…)
 *  Rendered by doctor.js Books + Reference results, doctor-libraries-hub.js,
 *  and used inside `smp-library-card-list--doctor` lists.
 * ------------------------------------------------------------------ */

/* --- Library document card (shared results row) ------------------- */
.smp-doctor-wrap .smp-library-card-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-library-card-list--doctor {
    padding: 0.25rem 0;
}

.smp-doctor-wrap .smp-library-doc-card {
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
    padding: 0.75rem 0.9rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.55rem;
    background: var(--smp-doctor-panel);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.smp-doctor-wrap .smp-library-doc-card:hover {
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.smp-doctor-wrap .smp-library-doc-card--type-doc {
    /* base modifier — styling inherits from .smp-library-doc-card; subtypes below override */
}

.smp-doctor-wrap .smp-library-doc-card--reference {
    background: color-mix(in srgb, var(--smp-doctor-teal) 4%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-library-doc-card--doctor {
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-library-doc-card__main {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smp-doctor-wrap .smp-library-doc-card__name-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

.smp-doctor-wrap .smp-library-doc-card__title {
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-doctor-text);
    line-height: 1.35;
    word-break: break-word;
    min-width: 0;
    flex: 1 1 auto;
}

.smp-doctor-wrap .smp-library-doc-card__title--reference {
    color: var(--smp-doctor-teal-strong, var(--smp-doctor-teal));
}

.smp-doctor-wrap .smp-library-doc-card__control-id {
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    background: var(--smp-doctor-surface);
    padding: 0.1rem 0.4rem;
    border-radius: 0.25rem;
    border: 1px solid var(--smp-doctor-border);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.smp-doctor-wrap .smp-library-doc-card__pill {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    line-height: 1.4;
    border-radius: 9999px;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    border: 1px solid var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-library-doc-card__meta {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.45;
}

.smp-doctor-wrap .smp-library-doc-card__summary {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
    line-height: 1.5;
}

.smp-doctor-wrap .smp-library-doc-card__summary--muted {
    color: var(--smp-doctor-text-muted);
    font-style: italic;
}

.smp-doctor-wrap .smp-library-doc-card__actions {
    flex-shrink: 0;
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    flex-wrap: wrap;
}

/* Type badge (three-letter code beside title: DOC / PRO / FRM / STD) */
.smp-doctor-wrap .smp-library-doc-card__type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem 0.45rem;
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    border-radius: 0.3rem;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    border: 1px solid var(--smp-doctor-border);
    text-transform: uppercase;
}

.smp-doctor-wrap .smp-library-doc-card__type-badge--pro {
    color: var(--smp-doctor-teal);
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    background: color-mix(in srgb, var(--smp-doctor-teal) 8%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-library-doc-card__type-badge--frm {
    color: var(--smp-status-info);
    border-color: var(--smp-status-info-soft);
    background: var(--smp-status-info-light);
}

.smp-doctor-wrap .smp-library-doc-card__type-badge--std {
    color: var(--smp-status-amber-text);
    border-color: var(--smp-status-amber-soft);
    background: var(--smp-status-amber-light);
}

/* --- Two-letter type-code (grey mono pill beside title) ------------ */
.smp-doctor-wrap .smp-library-type-code {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.4rem;
    padding: 0.1rem 0.35rem;
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--smp-doctor-text-muted);
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.3rem;
}

.smp-doctor-wrap .smp-library-type-code--generic {
    /* fall through — grey */
}

/* --- Library icon buttons (reextract, download, open) -------------- */
.smp-doctor-wrap .smp-library-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 0.35rem 0.55rem;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--smp-doctor-teal);
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.4rem;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.smp-doctor-wrap .smp-library-icon-btn:hover {
    border-color: var(--smp-doctor-teal);
    background: color-mix(in srgb, var(--smp-doctor-teal) 8%, var(--smp-doctor-surface));
}

.smp-doctor-wrap .smp-library-icon-btn--download {
    color: var(--smp-status-info);
}

.smp-doctor-wrap .smp-library-icon-btn--open {
    color: var(--smp-doctor-teal);
}

.smp-doctor-wrap .smp-library-icon-btn--reextract {
    color: var(--smp-status-amber-text);
}

/* --- Library pane / reader sidebar (embedded in Doctor) ------------ */
.smp-library-pane {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav {
    display: block;
    padding: 0.25rem 0;
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__list--nested {
    margin-left: 0.85rem;
    padding-left: 0.35rem;
    border-left: 1px solid var(--smp-doctor-border);
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__link {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    padding: 0.35rem 0.6rem;
    border-radius: 0.4rem;
    background: transparent;
    color: var(--smp-doctor-text);
    font-size: var(--smp-text-xs);
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    text-align: left;
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__link:hover {
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-teal);
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__link.is-active {
    background: color-mix(in srgb, var(--smp-doctor-teal) 12%, var(--smp-doctor-panel));
    color: var(--smp-doctor-teal);
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 25%, var(--smp-doctor-border));
    font-weight: 600;
}

form#doctor-menu-filters .smp-library-menu-sidebar-nav__label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1 1 auto;
}

form#doctor-menu-filters .smp-library-fav-link {
    justify-content: flex-start;
}

/* --- Reference metadata modal (labeling modal, chips, AI panel) ---- */
.smp-doctor-wrap .smp-ref-meta-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-top: 0.25rem;
}

.smp-doctor-wrap .smp-ref-meta-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    border-radius: 9999px;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-ref-meta-chip--authority {
    color: var(--smp-status-info);
    background: var(--smp-status-info-light);
    border-color: var(--smp-status-info-soft);
}

.smp-doctor-wrap .smp-ref-meta-chip--collection {
    color: var(--smp-status-purple);
    background: var(--smp-status-purple-light);
    border-color: var(--smp-status-purple-soft);
}

.smp-doctor-wrap .smp-ref-meta-chip--type {
    color: var(--smp-status-amber-text);
    background: var(--smp-status-amber-light);
    border-color: var(--smp-status-amber-soft);
}

.smp-doctor-wrap .smp-ref-meta-chip--topic {
    color: var(--smp-doctor-teal);
    background: color-mix(in srgb, var(--smp-doctor-teal) 10%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
}

.smp-ref-meta-ai-slot {
    margin-bottom: 0.5rem;
}

.smp-ref-meta-ai {
    padding: 0.6rem 0.75rem;
    border-radius: 0.45rem;
    border: 1px solid color-mix(in srgb, var(--smp-doctor-teal) 20%, var(--smp-doctor-border));
    background: color-mix(in srgb, var(--smp-doctor-teal) 5%, var(--smp-doctor-panel));
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text);
}

.smp-ref-meta-ai--muted {
    background: var(--smp-doctor-surface);
    border-color: var(--smp-doctor-border);
    color: var(--smp-doctor-text-muted);
    font-style: italic;
}

.smp-ref-meta-ai--loading {
    background: var(--smp-doctor-surface);
    border-color: var(--smp-doctor-border);
    color: var(--smp-doctor-text-muted);
}

.smp-ref-meta-ai__title {
    font-weight: 700;
    color: var(--smp-doctor-text);
    margin-bottom: 0.35rem;
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.smp-ref-meta-ai__hint {
    font-weight: 500;
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    font-style: italic;
}

.smp-ref-meta-suggest-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.smp-ref-meta-suggest-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.55rem;
    border-radius: 9999px;
    border: 1px solid color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-teal);
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    cursor: pointer;
    transition: background 0.12s ease;
}

.smp-ref-meta-suggest-chip:hover {
    background: color-mix(in srgb, var(--smp-doctor-teal) 8%, var(--smp-doctor-panel));
}

.smp-ref-meta-suggest-chip--existing {
    color: var(--smp-doctor-teal);
}

.smp-ref-meta-suggest-chip--new {
    color: var(--smp-status-purple);
    border-color: var(--smp-status-purple-soft);
    background: color-mix(in srgb, var(--smp-status-purple-light) 60%, var(--smp-doctor-panel));
}

.smp-ref-meta-suggest-chip__field {
    color: var(--smp-doctor-text-muted);
    font-weight: 500;
    text-transform: lowercase;
    letter-spacing: 0.03em;
}

.smp-ref-meta-suggest-chip__new {
    padding: 0 0.3rem;
    font-size: 0.6rem;
    line-height: 1.6;
    background: var(--smp-status-purple);
    color: #fff;
    border-radius: 0.2rem;
}

.smp-ref-meta-add-row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.35rem;
}

.smp-ref-meta-custom-input {
    flex: 1 1 auto;
    padding: 0.35rem 0.55rem;
    border-radius: 0.4rem;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    font-size: var(--smp-text-xs);
}

.smp-ref-meta-sumo-select {
    display: none;
}

/* --- Reference "Updates" tab (drift + updates diff) ---------------- */
.smp-doctor-wrap .smp-ref-updates {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.smp-doctor-wrap .smp-ref-updates-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.6rem;
    padding: 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-ref-updates-head__text {
    min-width: 0;
    flex: 1 1 20rem;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.smp-doctor-wrap .smp-ref-updates-title {
    margin: 0;
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-ref-updates-hint {
    margin: 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-ref-updates-head__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    flex-shrink: 0;
}

.smp-doctor-wrap .smp-ref-updates-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-ref-updates-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-ref-updates-card {
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.5rem;
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-ref-updates-card__label {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    cursor: pointer;
}

.smp-doctor-wrap .smp-ref-updates-card__check {
    margin-top: 0.25rem;
    flex-shrink: 0;
}

.smp-doctor-wrap .smp-ref-updates-card__body {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.smp-doctor-wrap .smp-ref-updates-card__title {
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-doctor-text);
    word-break: break-word;
}

.smp-doctor-wrap .smp-ref-updates-card__detail {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-ref-updates-card__prior {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.4rem;
    margin-top: 0.15rem;
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.25rem;
    align-self: flex-start;
}

.smp-doctor-wrap .smp-ref-updates-empty {
    margin: 0.25rem 0;
    padding: 0.75rem;
    border: 1px dashed var(--smp-doctor-border);
    border-radius: 0.45rem;
    text-align: center;
    color: var(--smp-doctor-text-muted);
    font-size: var(--smp-text-xs);
}

.smp-doctor-wrap .smp-ref-updates-empty--ok {
    color: var(--smp-doctor-teal);
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    background: color-mix(in srgb, var(--smp-doctor-teal) 5%, var(--smp-doctor-panel));
}

.smp-doctor-wrap .smp-ref-updates--mock {
    opacity: 0.85;
}

.smp-doctor-wrap .smp-ref-updates-mock-note {
    padding: 0.35rem 0.55rem;
    background: var(--smp-status-warn-light);
    border: 1px solid var(--smp-status-warn-border);
    border-radius: 0.4rem;
    font-size: var(--smp-text-2xs);
    color: var(--smp-status-amber-text-strong);
}

.smp-doctor-wrap .smp-ref-updates-preview-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.45rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    color: var(--smp-doctor-teal);
    background: color-mix(in srgb, var(--smp-doctor-teal) 12%, var(--smp-doctor-panel));
    border: 1px solid color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    border-radius: 0.3rem;
}

/* --- Reference updates diff viewer ---------------------------------- */
.smp-doctor-wrap .smp-ref-updates-diff {
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--smp-doctor-border);
}

.smp-doctor-wrap .smp-ref-updates-diff__summary,
.smp-doctor-wrap .smp-ref-updates-diff__similarity {
    margin: 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-soft);
}

.smp-doctor-wrap .smp-ref-updates-diff__details {
    margin-top: 0.25rem;
}

.smp-doctor-wrap .smp-ref-updates-diff__toggle {
    cursor: pointer;
    font-size: var(--smp-text-xs);
    font-weight: 600;
    color: var(--smp-doctor-teal);
    padding: 0.2rem 0;
}

.smp-doctor-wrap .smp-ref-updates-diff__samples-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-top: 0.35rem;
}

.smp-doctor-wrap .smp-ref-updates-diff__block {
    padding: 0.35rem 0.55rem;
    border-radius: 0.3rem;
    border: 1px solid var(--smp-doctor-border);
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-ref-updates-diff__block--added {
    background: color-mix(in srgb, var(--smp-status-success-dark) 10%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-status-success-dark) 30%, var(--smp-doctor-border));
}

.smp-doctor-wrap .smp-ref-updates-diff__block--removed {
    background: color-mix(in srgb, var(--smp-status-danger-strong) 8%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-status-danger-strong) 25%, var(--smp-doctor-border));
}

.smp-doctor-wrap .smp-ref-updates-diff__block--changed {
    background: color-mix(in srgb, var(--smp-status-amber) 10%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-status-amber) 30%, var(--smp-doctor-border));
}

.smp-doctor-wrap .smp-ref-updates-diff__block-label {
    display: inline-block;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    color: var(--smp-doctor-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 0.25rem;
}

.smp-doctor-wrap .smp-ref-updates-diff__samples {
    list-style: none;
    margin: 0;
    padding: 0;
    font-family: var(--smp-font-mono);
    font-size: var(--smp-text-2xs);
    line-height: 1.4;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-ref-updates-diff__sample {
    padding: 0.1rem 0;
    word-break: break-word;
    white-space: pre-wrap;
}

.smp-doctor-wrap .smp-ref-updates-diff__more {
    margin: 0.15rem 0 0;
    font-size: var(--smp-text-2xs);
    color: var(--smp-doctor-text-muted);
    font-style: italic;
}

/* --- Reference updates related sections ---------------------------- */
.smp-doctor-wrap .smp-ref-updates-related {
    margin-top: 0.35rem;
    padding: 0.55rem 0.65rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.4rem;
    background: var(--smp-doctor-surface);
}

.smp-doctor-wrap .smp-ref-updates-related__title {
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-xs);
    font-weight: 700;
    color: var(--smp-doctor-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.smp-doctor-wrap .smp-ref-updates-related__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.smp-doctor-wrap .smp-ref-updates-related__item {
    padding: 0.3rem 0.4rem;
    border-radius: 0.3rem;
    background: var(--smp-doctor-panel);
    border: 1px solid var(--smp-doctor-border);
    font-size: var(--smp-text-xs);
}

.smp-doctor-wrap .smp-ref-updates-related__title,
.smp-doctor-wrap .smp-ref-updates-related__snippet {
    display: block;
}

.smp-doctor-wrap .smp-ref-updates-related__snippet {
    margin-top: 0.15rem;
    color: var(--smp-doctor-text-soft);
    line-height: 1.4;
}

/* --- Reference drift cards ---------------------------------------- */
.smp-doctor-wrap .smp-ref-drift-section {
    padding: 0.75rem;
    border: 1px solid var(--smp-status-warn-border);
    border-radius: 0.5rem;
    background: var(--smp-status-warn-light);
}

.smp-doctor-wrap .smp-ref-drift-section__title {
    margin: 0 0 0.35rem;
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-status-amber-text-strong);
}

.smp-doctor-wrap .smp-ref-drift-section__hint {
    margin: 0 0 0.5rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-status-amber-text-strong);
    line-height: 1.45;
}

.smp-doctor-wrap .smp-ref-drift-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-ref-drift-card {
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--smp-status-amber-soft);
    border-radius: 0.4rem;
    background: var(--smp-doctor-panel);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smp-doctor-wrap .smp-ref-drift-card__body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.smp-doctor-wrap .smp-ref-drift-card__title {
    margin: 0;
    font-size: var(--smp-text-sm);
    font-weight: 700;
    color: var(--smp-doctor-text);
    word-break: break-word;
}

.smp-doctor-wrap .smp-ref-drift-card__detail {
    margin: 0;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    line-height: 1.4;
}

.smp-doctor-wrap .smp-ref-drift-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.15rem;
}

.smp-doctor-wrap .smp-ref-drift-stat {
    display: inline-flex;
    align-items: center;
    padding: 0.05rem 0.4rem;
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    color: var(--smp-status-amber-text-strong);
    background: var(--smp-status-amber-light);
    border: 1px solid var(--smp-status-amber-soft);
    border-radius: 9999px;
}

.smp-doctor-wrap .smp-ref-drift-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.25rem;
}

.smp-doctor-wrap .smp-ref-drift-card__ai-warn {
    margin: 0;
    padding: 0.35rem 0.5rem;
    background: color-mix(in srgb, var(--smp-status-danger-strong) 8%, var(--smp-doctor-panel));
    border: 1px solid color-mix(in srgb, var(--smp-status-danger-strong) 30%, var(--smp-doctor-border));
    border-radius: 0.3rem;
    font-size: var(--smp-text-2xs);
    color: var(--smp-status-danger-text);
    line-height: 1.4;
}

/* --- Reference hit rows (search result status) --------------------- */
.smp-doctor-wrap .smp-ref-hit-status {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0.5rem;
    font-size: var(--smp-text-2xs);
    font-weight: 700;
    border-radius: 9999px;
    background: var(--smp-doctor-surface);
    color: var(--smp-doctor-text-muted);
    border: 1px solid var(--smp-doctor-border);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.smp-doctor-wrap .smp-ref-hit-status--new {
    color: var(--smp-doctor-teal);
    background: color-mix(in srgb, var(--smp-doctor-teal) 12%, var(--smp-doctor-panel));
    border-color: color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
}

.smp-doctor-wrap .smp-ref-hit-status--in_inbox {
    color: var(--smp-status-amber-text);
    background: var(--smp-status-amber-light);
    border-color: var(--smp-status-amber-soft);
}

.smp-doctor-wrap .smp-ref-hit-status--in_library,
.smp-doctor-wrap .smp-ref-hit-status--approved {
    color: var(--smp-status-success-text);
    background: var(--smp-status-success-soft);
    border-color: var(--smp-status-success-border);
}

.smp-doctor-wrap .smp-ref-hit-status--expired,
.smp-doctor-wrap .smp-ref-hit-status--rejected {
    color: var(--smp-status-danger-text);
    background: var(--smp-status-danger-bg);
    border-color: var(--smp-status-danger-border);
}

.smp-doctor-wrap .smp-ref-hit-source-url {
    word-break: break-all;
    line-height: 1.35;
}

/* --- Reference cost badge / crawl prompt / discover list ---------- */
.smp-doctor-wrap .smp-ref-cost-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.15rem 0.5rem;
    font-size: var(--smp-text-2xs);
    font-weight: 600;
    color: var(--smp-doctor-text-muted);
    background: var(--smp-doctor-surface);
    border: 1px solid var(--smp-doctor-border);
    border-radius: 9999px;
    cursor: help;
}

.smp-doctor-wrap .smp-ref-crawl-prompt {
    padding: 0.65rem 0.75rem;
    border: 1px solid color-mix(in srgb, var(--smp-doctor-teal) 30%, var(--smp-doctor-border));
    border-radius: 0.45rem;
    background: color-mix(in srgb, var(--smp-doctor-teal) 5%, var(--smp-doctor-panel));
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.smp-doctor-wrap .smp-ref-crawl-prompt__text {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text);
    line-height: 1.45;
}

.smp-doctor-wrap .smp-ref-crawl-settings {
    margin-bottom: 0.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--smp-doctor-border);
    border-radius: 0.45rem;
    background: var(--smp-doctor-panel);
}

.smp-doctor-wrap .smp-ref-crawl-settings__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.smp-doctor-wrap .smp-ref-crawl-settings__domain {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-ref-crawl-settings__notes {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    margin: 0 0 0.5rem;
    line-height: 1.45;
}

.smp-doctor-wrap .smp-ref-crawl-settings__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.smp-doctor-wrap .smp-ref-crawl-settings__grid label {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-ref-crawl-settings__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.smp-doctor-wrap .smp-ref-crawl-pill {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    border-radius: 9999px;
    font-size: var(--smp-text-xs);
    font-weight: 600;
}

.smp-doctor-wrap .smp-ref-crawl-pill--ok {
    background: color-mix(in srgb, var(--smp-doctor-teal) 12%, transparent);
    color: var(--smp-doctor-teal);
}

.smp-doctor-wrap .smp-ref-crawl-pill--pending {
    background: color-mix(in srgb, var(--smp-status-amber) 15%, transparent);
    color: var(--smp-status-amber);
}

.smp-doctor-wrap .smp-ref-crawl-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.smp-doctor-wrap .smp-ref-crawl-item__label {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.5rem;
    font-size: var(--smp-text-sm);
    cursor: pointer;
}

.smp-doctor-wrap .smp-ref-crawl-item__title {
    font-weight: 500;
    color: var(--smp-doctor-text);
}

.smp-doctor-wrap .smp-ref-crawl-item__url {
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
    word-break: break-all;
}

.smp-doctor-wrap .smp-ref-crawl-ambiguous {
    margin-top: 0.75rem;
    font-size: var(--smp-text-xs);
    color: var(--smp-doctor-text-muted);
}

.smp-doctor-wrap .smp-ref-crawl-ambiguous__list {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
}

.smp-doctor-wrap .smp-ref-discover-list {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

/* --- HSMS SVG icon sizing (inline SVGs in doctor-hsms-icons.js) ---- */
.smp-doctor-wrap .smp-hsms-folder-svg,
.smp-doctor-wrap .smp-hsms-pdf-svg {
    width: 1rem;
    height: 1rem;
    display: inline-block;
    vertical-align: -0.15em;
    flex-shrink: 0;
}

.smp-doctor-wrap .smp-hsms-folder-svg {
    color: var(--smp-status-amber);
}

.smp-doctor-wrap .smp-hsms-pdf-svg {
    color: var(--smp-status-danger);
}

/* ------------------------------------------------------------------ */

/*
 * Doctor dark mode — beat Tailwind utilities (index.html sets important: ".smp-doctor-wrap").
 * Pipeline HTML in doctor.js uses bg-white / text-slate-* / border-slate-* for layout polish.
 */
html[data-bs-theme="dark"] form#doctor-menu-filters {
    --doctor-surface: rgba(33, 37, 41, 0.92);
    --doctor-accent-soft: rgba(45, 212, 191, 0.14);
}

html[data-bs-theme="dark"] .smp-doctor-wrap .bg-white {
    background-color: var(--smp-doctor-panel) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap [class*="bg-slate-50"],
html[data-bs-theme="dark"] .smp-doctor-wrap .bg-slate-100 {
    background-color: var(--smp-doctor-surface) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-900,
html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-800,
html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-700 {
    color: var(--smp-doctor-text-strong) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-600,
html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-500 {
    color: var(--smp-doctor-text-muted) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-slate-400 {
    color: var(--smp-doctor-text-soft) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .border-slate-100,
html[data-bs-theme="dark"] .smp-doctor-wrap .border-slate-200,
html[data-bs-theme="dark"] .smp-doctor-wrap .border-slate-300,
html[data-bs-theme="dark"] .smp-doctor-wrap .divide-slate-100 > :not([hidden]) ~ :not([hidden]) {
    border-color: var(--smp-doctor-border) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .hover\:bg-slate-50:hover {
    background-color: var(--smp-doctor-surface) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap [class*="bg-amber-50"] {
    background-color: var(--smp-status-warn-light) !important;
    border-color: var(--smp-status-warn) !important;
    color: var(--smp-bs-warning-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-amber-800,
html[data-bs-theme="dark"] .smp-doctor-wrap .text-amber-900,
html[data-bs-theme="dark"] .smp-doctor-wrap .text-amber-950 {
    color: var(--smp-bs-warning-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .hover\:bg-amber-100:hover {
    background-color: var(--smp-status-warn-bg) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap [class*="bg-teal-50"] {
    background-color: var(--smp-status-success-light) !important;
    border-color: var(--smp-status-teal-soft) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-teal-950 {
    color: var(--smp-status-success-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap [class*="bg-emerald-50"] {
    background-color: var(--smp-status-success-light) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-emerald-900 {
    color: var(--smp-status-success-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .bg-rose-50 {
    background-color: var(--smp-status-danger-light) !important;
    border-color: var(--smp-status-danger-soft) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .text-rose-800 {
    color: var(--smp-status-danger) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .hover\:bg-rose-100:hover {
    background-color: var(--smp-status-danger-light) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-dropzone {
    background-color: var(--smp-doctor-surface) !important;
    border-color: var(--smp-doctor-border) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-dropzone.is-dragover {
    background-color: var(--smp-status-success-light) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .rounded-lg.border.border-slate-200,
html[data-bs-theme="dark"] .smp-doctor-wrap select.rounded-lg,
html[data-bs-theme="dark"] .smp-doctor-wrap input.rounded-lg,
html[data-bs-theme="dark"] .smp-doctor-wrap textarea.rounded-lg {
    background-color: var(--smp-doctor-panel) !important;
    border-color: var(--smp-doctor-border) !important;
    color: var(--smp-doctor-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap input::placeholder,
html[data-bs-theme="dark"] .smp-doctor-wrap textarea::placeholder {
    color: var(--smp-doctor-text-soft) !important;
}

/* Dark-mode polish for the newly-added chrome */
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-hub-subtabs,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-hub-panels,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-hub-panel,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-desk-header,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-stage-toolbar {
    background: var(--smp-doctor-panel) !important;
    border-color: var(--smp-doctor-border) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-hsms-hub-subtab.is-active {
    background: var(--smp-doctor-panel) !important;
    border-color: var(--smp-doctor-border) !important;
    color: var(--smp-doctor-teal) !important;
}

html[data-bs-theme="dark"] .smp-doctor-confirm-backdrop {
    background: rgba(0, 0, 0, 0.6);
}

html[data-bs-theme="dark"] .smp-doctor-confirm-modal {
    background: var(--smp-doctor-panel);
    color: var(--smp-doctor-text);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.55);
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-review-companions,
html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-review-warning {
    background: var(--smp-doctor-surface) !important;
    border-color: var(--smp-doctor-border) !important;
    color: var(--smp-doctor-text) !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-review-hsms-warnings {
    color: #fdba74 !important;
}

html[data-bs-theme="dark"] .smp-doctor-wrap .smp-doctor-crawl-map__list {
    background: var(--smp-doctor-panel) !important;
    border-color: var(--smp-doctor-border) !important;
}
