.document-scanner-page {
    --doc-ink: #10233f;
    --doc-muted: #5a6b82;
    --doc-line: #d8e2ef;
    --doc-soft: #f4f8fc;
    --doc-accent: #0b6e69;
}

.document-scanner-hero,
.document-scanner-toolbar,
.document-upload-panel,
.document-library,
.document-scanner-empty {
    border: 1px solid var(--doc-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(24, 50, 84, .07);
}

.document-scanner-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, .75fr);
    gap: 24px;
    padding: clamp(24px, 4vw, 42px);
    background: linear-gradient(135deg, #f8fbff 0%, #eef8f6 100%);
}

.document-scanner-kicker,
.document-panel-heading span,
.document-scanner-toolbar label > span,
.document-upload-controls label > span,
.document-card-type > span {
    display: block;
    color: var(--doc-accent);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.document-scanner-hero h1 {
    margin: 8px 0 12px;
    color: var(--doc-ink);
    font-size: clamp(2rem, 4vw, 3.2rem);
}

.document-scanner-hero p,
.document-upload-help,
.document-scanner-empty p {
    color: var(--doc-muted);
}

.document-scanner-hero-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 22px;
    border-radius: 16px;
    color: #fff;
    background: #102d52;
}

.document-scanner-hero-card strong { font-size: 1.15rem; }
.document-scanner-hero-card span { color: #dce9f6; }
.document-scanner-hero-card small { color: #8ee1d0; font-weight: 700; }

.document-scanner-safety {
    display: flex;
    gap: 12px;
    margin: 16px 0 22px;
    padding: 14px 18px;
    border: 1px solid #c9e5df;
    border-radius: 14px;
    color: #174843;
    background: #effaf7;
}

.document-scanner-toolbar {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(220px, .7fr);
    gap: 20px;
    align-items: end;
    padding: 20px;
    margin-bottom: 18px;
}

.document-scanner-vehicle-summary {
    display: flex;
    flex-direction: column;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--doc-soft);
}

.document-scanner-vehicle-summary span,
.document-scanner-vehicle-summary small { color: var(--doc-muted); }
.document-scanner-vehicle-summary strong { color: var(--doc-ink); }

.document-upload-panel,
.document-library {
    padding: clamp(20px, 3vw, 30px);
    margin: 18px 0;
}

.document-panel-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
}

.document-panel-heading h2 { margin: 4px 0 0; color: var(--doc-ink); }

.document-limit-pill,
.document-count-pill {
    padding: 7px 11px;
    border: 1px solid #bcd7d2;
    border-radius: 999px;
    color: #17534d !important;
    background: #effaf7;
    font-size: .75rem !important;
    white-space: nowrap;
}

.document-upload-controls {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(260px, 1fr);
    gap: 16px;
    align-items: end;
}

.document-file-picker {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 10px 18px;
    overflow: hidden;
    border: 1px dashed #528f88;
    border-radius: 12px;
    color: #15544e;
    background: #f1fbf8;
    cursor: pointer;
}

.document-file-picker > span { color: inherit !important; }
.document-file-picker input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.document-file-picker.is-disabled { opacity: .65; cursor: wait; }
.document-upload-help { margin: 14px 0 0; font-size: .9rem; }

.document-upload-progress {
    display: grid;
    gap: 0.45rem;
    margin-top: 0.9rem;
    padding: 0.8rem 0.9rem;
    border: 1px solid #bcd7d2;
    border-radius: 0.75rem;
    background: #f1fbf8;
}

.document-upload-progress > div {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    color: var(--doc-ink);
}

.document-upload-progress progress {
    width: 100%;
    height: 0.75rem;
    accent-color: var(--doc-accent);
}

.document-upload-progress small {
    color: var(--doc-muted);
}

.document-upload-progress[data-upload-complete="true"] {
    border-color: #73b7a9;
    background: #eaf8f3;
}

.document-card-list { display: grid; gap: 14px; }

.document-card {
    display: grid;
    grid-template-columns: 58px minmax(180px, 1fr) minmax(190px, .75fr) auto;
    gap: 16px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--doc-line);
    border-radius: 16px;
    background: #fbfdff;
}

.document-file-icon {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    color: #fff;
    background: #163d69;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.document-card-copy { min-width: 0; display: flex; flex-direction: column; }
.document-card-copy strong { overflow: hidden; color: var(--doc-ink); text-overflow: ellipsis; white-space: nowrap; }
.document-card-copy span,
.document-card-copy small { color: var(--doc-muted); }
.document-card-copy small { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.document-card-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }

.document-delete-confirmation,
.document-preview {
    grid-column: 1 / -1;
}

.document-delete-confirmation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    color: #73222a;
    background: #fff0f1;
}

.document-delete-confirmation div { display: flex; gap: 8px; }

.document-preview {
    padding-top: 14px;
    border-top: 1px solid var(--doc-line);
}

.document-preview iframe,
.document-preview img {
    display: block;
    width: 100%;
    max-height: 680px;
    border: 1px solid var(--doc-line);
    border-radius: 12px;
    background: #eef3f8;
}

.document-extraction-panel {
    grid-column: 1 / -1;
    display: grid;
    gap: 0.85rem;
    padding: 1rem;
    border: 1px solid rgba(37, 99, 235, 0.2);
    border-radius: 0.9rem;
    background: rgba(239, 246, 255, 0.65);
}

.document-extraction-heading,
.document-extraction-status,
.document-extraction-claim,
.document-extraction-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.document-extraction-heading,
.document-extraction-claim {
    justify-content: space-between;
}

.document-extraction-heading > div,
.document-extraction-claim > div:first-child {
    display: grid;
    gap: 0.2rem;
}

.document-extraction-heading span,
.document-extraction-claim small,
.document-extraction-status span,
.document-extraction-status small {
    color: var(--app-text-muted, #64748b);
    font-size: 0.82rem;
}

.document-coin-pill {
    flex: 0 0 auto;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    background: #dbeafe;
    color: #1d4ed8 !important;
    font-weight: 700;
}

.document-extraction-confirmation {
    display: grid;
    gap: 0.75rem;
    padding: 0.9rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 0.75rem;
    background: #fff;
}

.document-extraction-confirmation p {
    margin: 0;
}

.document-extraction-confirmation label {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.6rem;
}

.document-extraction-confirmation input {
    margin-top: 0.25rem;
}

.document-extraction-status {
    flex-wrap: wrap;
    padding: 0.75rem;
    border-radius: 0.7rem;
    background: rgba(255, 255, 255, 0.85);
}

.document-extraction-status > div {
    display: grid;
    gap: 0.05rem;
    min-width: 8rem;
}

.document-extraction-stage {
    display: grid;
    gap: 0.2rem;
    padding: 0.75rem;
    border-left: 4px solid #2563eb;
    border-radius: 0.7rem;
    background: #fff;
}

.document-extraction-stage span,
.document-extraction-stage small {
    color: var(--app-text-muted, #64748b);
    font-size: 0.82rem;
}

.document-extraction-stage[data-progress-stage="completed"] {
    border-left-color: #15803d;
}

.document-extraction-stage[data-progress-stage="failed"],
.document-extraction-stage[data-progress-stage="cancelled"] {
    border-left-color: #b45309;
}

.document-extraction-failure {
    display: grid;
    gap: 0.35rem;
    padding: 0.85rem;
    border: 1px solid #f2c788;
    border-radius: 0.75rem;
    color: #713f12;
    background: #fffbeb;
}

.document-extraction-failure p {
    margin: 0;
}

.document-extraction-failure span {
    font-weight: 700;
}

.document-extraction-claims {
    display: grid;
    gap: 0.7rem;
}

.document-claim-warning {
    padding: 0.65rem 0.75rem;
    border-left: 3px solid #d97706;
    background: #fffbeb;
    color: #92400e;
    font-size: 0.88rem;
}

.document-extraction-claim {
    display: grid;
    padding: 0.75rem;
    border: 1px solid rgba(15, 23, 42, 0.1);
    border-radius: 0.7rem;
    background: #fff;
}

.document-extraction-claim-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.document-extraction-claim-value,
.document-correction-proposal,
.document-correction-editor,
.document-correction-application,
.document-correction-apply-preview {
    display: grid;
    gap: 0.35rem;
}

.document-correction-proposal,
.document-correction-editor,
.document-correction-application,
.document-correction-apply-preview {
    padding: 0.75rem;
    border-radius: 0.65rem;
}

.document-correction-proposal {
    border-left: 3px solid #2563eb;
    background: #eff6ff;
}

.document-correction-proposal[data-proposal-status="accepted"] {
    border-left-color: #15803d;
    background: #f0fdf4;
}

.document-correction-proposal[data-proposal-status="rejected"] {
    border-left-color: #b45309;
    background: #fffbeb;
}

.document-correction-proposal p,
.document-correction-editor small {
    margin: 0;
    color: var(--app-text-muted, #64748b);
    font-size: 0.82rem;
}

.document-correction-editor {
    border: 1px solid rgba(37, 99, 235, 0.25);
    background: #f8fbff;
}

.document-correction-apply-preview {
    border: 1px solid rgba(37, 99, 235, 0.3);
    background: #f8fbff;
}

.document-correction-application {
    border-left: 3px solid #15803d;
    background: #f0fdf4;
}

.document-correction-application p,
.document-correction-apply-preview p {
    margin: 0;
    color: var(--app-text-muted, #64748b);
    font-size: 0.82rem;
}

.document-correction-confirmation {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.55rem;
    margin-top: 0.25rem;
    font-size: 0.86rem;
}

.document-correction-confirmation input {
    margin-top: 0.2rem;
}

.document-correction-open {
    width: fit-content;
}

.document-extraction-coins-link {
    width: fit-content;
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .document-extraction-heading,
    .document-extraction-claim-row {
        align-items: stretch;
        flex-direction: column;
    }

    .document-coin-pill {
        width: fit-content;
    }

    .document-extraction-actions {
        flex-wrap: wrap;
    }
}

.document-preview iframe { height: min(70vh, 680px); }
.document-preview img { object-fit: contain; }

.document-scanner-empty { padding: 34px; text-align: center; }
.document-scanner-empty-inline { margin-top: 18px; box-shadow: none; }

@media (max-width: 992px) {
    .document-scanner-hero,
    .document-scanner-toolbar,
    .document-upload-controls { grid-template-columns: 1fr; }

    .document-card { grid-template-columns: 52px minmax(0, 1fr); }
    .document-card-type,
    .document-card-actions { grid-column: 1 / -1; }
    .document-card-actions { justify-content: flex-start; }
}

@media (max-width: 576px) {
    .document-scanner-page { padding-left: 12px !important; padding-right: 12px !important; }
    .document-scanner-safety,
    .document-panel-heading,
    .document-delete-confirmation { align-items: flex-start; flex-direction: column; }
    .document-card { padding: 13px; }
    .document-card-actions .btn { flex: 1 1 auto; }
    .document-upload-progress > div { align-items: flex-start; flex-direction: column; }
    .document-extraction-stage,
    .document-extraction-failure { overflow-wrap: anywhere; }
}

/* r18.5.3: document library and grouped review workspace */
.document-library-filters {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(150px, 1fr));
    gap: 12px;
    margin: 16px 0;
}

.document-library-filters label,
.document-metadata-editor label {
    display: grid;
    gap: 5px;
    color: var(--app-text-muted, #64748b);
    font-size: 0.78rem;
    font-weight: 700;
}

.document-library-workspace {
    display: grid;
    grid-template-columns: minmax(250px, 0.72fr) minmax(0, 2fr);
    gap: 16px;
    min-height: 620px;
}

.document-library-index {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 78vh;
    overflow: auto;
    padding-right: 4px;
}

.document-library-row {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 10px;
    width: 100%;
    padding: 12px;
    border: 1px solid var(--app-border, #dbe3ee);
    border-radius: 12px;
    background: #fff;
    color: inherit;
    text-align: left;
}

.document-library-row:hover,
.document-library-row.is-selected {
    border-color: #2563eb;
    box-shadow: 0 0 0 2px rgb(37 99 235 / 10%);
}

.document-library-row.is-selected { background: #eff6ff; }
.document-library-row-copy { display: grid; gap: 4px; min-width: 0; }
.document-library-row-copy strong,
.document-library-row-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-library-row-copy > span { display: flex; flex-wrap: wrap; gap: 5px; }
.document-library-row-copy em,
.document-review-state {
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef2f7;
    color: #475569;
    font-size: 0.7rem;
    font-style: normal;
    font-weight: 800;
}
.document-library-row-copy em[data-status="needs-review"],
.document-review-state[data-state="needs-review"] { background: #fff7ed; color: #9a3412; }
.document-library-row-copy em[data-status="reviewed"],
.document-review-state[data-state="accepted"] { background: #ecfdf5; color: #047857; }
.document-library-row-copy em[data-status="failed"],
.document-review-state[data-state="rejected"] { background: #fef2f2; color: #b91c1c; }
.document-library-row-copy em[data-status="conflict"],
.document-review-state[data-state="conflict"] { background: #fefce8; color: #854d0e; }

.document-library-proof-badge[data-impact="proof"] {
    background: #eff6ff;
    color: #1d4ed8;
}

.document-library-proof-badge[data-impact="verified"] {
    background: #ecfdf5;
    color: #047857;
}

.document-library-proof-badge[data-impact="score"] {
    background: #f5f3ff;
    color: #6d28d9;
}

.document-library-proof-badge[data-impact="none"] {
    background: #f8fafc;
    color: #64748b;
}

.document-workspace-detail {
    min-width: 0;
    padding: 16px;
    border: 1px solid var(--app-border, #dbe3ee);
    border-radius: 14px;
    background: #f8fafc;
}

.document-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.document-detail-header h3 { margin: 2px 0; }
.document-detail-header > div:first-child > span,
.document-detail-header small { color: var(--app-text-muted, #64748b); }

/* r18.8.0: per-document deterministic proof traceability. */
.document-proof-traceability {
    display: grid;
    gap: 12px;
    margin: 12px 0 16px;
    padding: 14px;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    background: #fff;
}

.document-proof-traceability-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.document-proof-traceability-heading > div {
    display: grid;
    gap: 2px;
}

.document-proof-traceability-heading span,
.document-proof-authority-note,
.document-proof-item > span,
.document-proof-item small,
.document-proof-traceability-footer {
    color: var(--app-text-muted, #64748b);
}

.document-proof-traceability-heading > div > span {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.document-proof-traceability-heading h4 {
    margin: 0;
    font-size: 1rem;
}

.document-proof-traceability-heading > em {
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    background: #f8fafc;
    color: #475569;
    font-size: .72rem;
    font-style: normal;
    font-weight: 800;
}

.document-proof-traceability-heading > em[data-impact="proof"] {
    background: #eff6ff;
    color: #1d4ed8;
}

.document-proof-traceability-heading > em[data-impact="verified"] {
    background: #ecfdf5;
    color: #047857;
}

.document-proof-authority-note {
    margin: 0;
    font-size: .78rem;
    line-height: 1.45;
}

.document-proof-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr));
    gap: 8px;
}

.document-proof-metrics > div {
    display: grid;
    gap: 2px;
    padding: 9px 10px;
    border-radius: 9px;
    background: #f8fafc;
}

.document-proof-metrics strong {
    font-size: 1rem;
}

.document-proof-metrics span {
    color: #64748b;
    font-size: .7rem;
    font-weight: 700;
}

.document-proof-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
    gap: 9px;
}

.document-proof-item {
    display: grid;
    gap: 7px;
    min-width: 0;
    padding: 11px;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    background: #f8fafc;
}

.document-proof-item-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.document-proof-item-heading strong {
    min-width: 0;
    overflow-wrap: break-word;
}

.document-proof-item-heading em {
    flex: 0 0 auto;
    padding: 2px 7px;
    border-radius: 999px;
    background: #eff6ff;
    color: #1d4ed8;
    font-size: .68rem;
    font-style: normal;
    font-weight: 800;
}

.document-proof-item-heading em[data-status="verified"] {
    background: #ecfdf5;
    color: #047857;
}

.document-proof-item > span,
.document-proof-item small {
    font-size: .72rem;
    overflow-wrap: anywhere;
}

.document-proof-destinations {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.document-proof-destinations span {
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef2ff;
    color: #4338ca;
    font-size: .68rem;
    font-weight: 800;
}

.document-proof-empty {
    display: grid;
    gap: 4px;
    padding: 11px;
    border-radius: 9px;
    background: #f8fafc;
}

.document-proof-empty span {
    color: #64748b;
    font-size: .75rem;
}

.document-proof-traceability-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
    font-size: .72rem;
}

.document-proof-traceability-footer a {
    margin-left: auto;
    font-weight: 800;
}

.document-metadata-editor {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 10px;
    margin: 12px 0;
    padding: 12px;
    border-radius: 10px;
    background: #fff;
}
.document-metadata-editor > div { grid-column: 1 / -1; display: flex; gap: 8px; }
.document-replace-panel { margin: 12px 0; padding: 13px; border-left: 3px solid #2563eb; background: #eff6ff; }
.document-replace-panel p { margin: 5px 0 10px; }

.document-review-workspace {
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(340px, 1fr);
    gap: 14px;
    align-items: start;
}
.document-preview-column,
.document-findings-column {
    min-width: 0;
    border: 1px solid var(--app-border, #dbe3ee);
    border-radius: 12px;
    background: #fff;
    overflow: hidden;
}
.document-findings-column { display: grid; gap: 12px; padding: 14px; max-height: 78vh; overflow: auto; }
.document-preview-toolbar { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; font-size: 0.78rem; }
.document-preview-toolbar span { color: #1d4ed8; }
.is-workspace-preview { position: relative; border: 0; border-radius: 0; }
.is-workspace-preview iframe { width: 100%; height: min(72vh, 760px); }
.is-workspace-preview img { width: 100%; max-height: 72vh; object-fit: contain; }
.document-source-highlight { position: absolute; z-index: 3; border: 3px solid #f97316; background: rgb(249 115 22 / 18%); box-shadow: 0 0 0 2px #fff; pointer-events: none; }

.document-mobile-tabs { display: none; }
.document-finding-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.document-finding-summary > div { display: grid; padding: 9px; border-radius: 9px; background: #f1f5f9; text-align: center; }
.document-finding-summary strong { font-size: 1.1rem; }
.document-finding-summary span { color: #64748b; font-size: 0.7rem; }
.document-finding-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.document-finding-controls label { display: flex; align-items: center; gap: 5px; margin-right: auto; font-size: 0.8rem; }
.document-finding-groups { display: grid; gap: 10px; }
.document-finding-group { border: 1px solid #dbe3ee; border-radius: 11px; background: #fff; overflow: hidden; }
.document-finding-group > header { display: flex; justify-content: space-between; gap: 10px; padding: 12px; background: #f8fafc; }
.document-finding-group h4 { margin: 2px 0; font-size: 1rem; }
.document-finding-group header div > span,
.document-finding-group header small { color: #64748b; font-size: 0.72rem; }
.document-group-actions { display: flex; gap: 6px; padding: 0 12px 10px; background: #f8fafc; }
.document-finding-fields { display: grid; }
.document-finding-field { display: grid; gap: 8px; padding: 12px; border-top: 1px solid #e2e8f0; }
.document-finding-field-value { display: grid; gap: 2px; }
.document-finding-field-value > strong { color: #475569; font-size: 0.72rem; text-transform: uppercase; }
.document-finding-field-value > span { font-weight: 700; overflow-wrap: anywhere; }
.document-finding-field-value small { color: #64748b; }
.document-evidence-state { width: fit-content; padding: 2px 7px; border-radius: 999px; background: #f1f5f9; color: #64748b; font-size: 0.7rem; font-style: normal; font-weight: 800; }
.document-evidence-state[data-evidence-active="true"] { background: #ecfdf5; color: #047857; }
.document-finding-field-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.document-source-link { padding-left: 0; margin-right: auto; }
.document-library-no-results { padding: 18px; color: #64748b; text-align: center; }

@media (max-width: 1199.98px) {
    .document-library-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .document-library-search { grid-column: 1 / -1; }
    .document-library-workspace { grid-template-columns: minmax(220px, 0.65fr) minmax(0, 2fr); }
    .document-review-workspace { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
    .document-library-filters,
    .document-library-workspace,
    .document-metadata-editor { grid-template-columns: 1fr; }
    .document-library-search { grid-column: auto; }
    .document-library-index { max-height: 330px; }
    .document-detail-header,
    .document-proof-traceability-heading { flex-direction: column; }
    .document-proof-traceability-footer a { margin-left: 0; }
    .document-mobile-tabs { display: grid; grid-template-columns: 1fr 1fr; margin: 12px 0; border: 1px solid #cbd5e1; border-radius: 10px; overflow: hidden; }
    .document-mobile-tabs button { padding: 9px; border: 0; background: #fff; font-weight: 800; }
    .document-mobile-tabs button.is-active { background: #2563eb; color: #fff; }
    .document-preview-column,
    .document-findings-column { display: none; }
    .document-preview-column.is-mobile-active { display: block; }
    .document-findings-column.is-mobile-active { display: grid; }
    .document-finding-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* r18.5.3 Phase 0F: keep review, proof and score states visually distinct. */
.document-analysis-reuse,
.document-reanalysis-reason {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: .75rem;
    margin-bottom: .75rem;
}

.document-verification-rule,
.document-score-rule {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin-top: .35rem;
    padding: .2rem .5rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    font-size: .75rem;
    overflow-wrap: anywhere;
}

.document-verification-rule {
    font-weight: 600;
}

.document-score-rule {
    font-variant-numeric: tabular-nums;
}

/* r18.6.0 Phase 0B: explicit review-decision workspace */
.document-review-dashboard {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
    gap: .65rem;
    margin: .9rem 0;
}

.document-review-dashboard > div {
    display: grid;
    gap: .15rem;
    padding: .7rem .75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-tertiary-bg);
    min-width: 0;
}

.document-review-dashboard strong {
    font-size: 1.08rem;
}

.document-review-dashboard span {
    font-size: .76rem;
    line-height: 1.2;
    color: var(--bs-secondary-color);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: auto;
}

.document-review-guidance {
    margin: .75rem 0 1rem;
    padding: .85rem 1rem;
    border-left: 4px solid var(--bs-primary);
    border-radius: .65rem;
    background: color-mix(in srgb, var(--bs-primary-bg-subtle) 70%, transparent);
}

.document-review-guidance p {
    margin: .3rem 0 0;
    font-size: .86rem;
}

.document-review-controls {
    align-items: end;
    flex-wrap: wrap;
    gap: .65rem 1rem;
}

.document-category-filter {
    display: grid;
    gap: .25rem;
    min-width: 12rem;
}

.document-category-filter > span {
    font-size: .75rem;
    font-weight: 700;
}

.document-review-bulk-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-left: auto;
}

.document-review-explanation {
    display: block;
    margin-top: .25rem;
    font-size: .76rem;
    line-height: 1.3;
    color: var(--bs-secondary-color);
}

.document-review-explanation[data-review-explanation-state="accepted"] {
    color: var(--bs-success-text-emphasis);
}

.document-review-explanation[data-review-explanation-state="rejected"] {
    color: var(--bs-danger-text-emphasis);
}

.document-review-explanation[data-review-explanation-state="duplicate"],
.document-review-explanation[data-review-explanation-state="stale"] {
    color: var(--bs-secondary-color);
}

.document-finding-category-editor {
    display: grid;
    gap: .25rem;
    max-width: 19rem;
    margin-top: .45rem;
}

.document-finding-category-editor > span {
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
}

.document-finding-category-editor small {
    color: var(--bs-secondary-color);
    font-size: .7rem;
    font-weight: 400;
}

.document-finding-field[data-review-state="duplicate"] {
    border-left: 3px solid var(--bs-secondary);
    background: color-mix(in srgb, var(--bs-secondary-bg-subtle) 55%, transparent);
}

.document-finding-field[data-user-duplicate="true"] .document-evidence-state {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.document-duplicate-action.is-duplicate {
    border-style: dashed;
}

.document-automatic-duplicate {
    align-self: center;
    color: var(--bs-secondary-color);
    font-size: .74rem;
    font-weight: 600;
}

.document-deduplication-note {
    display: inline-flex;
    width: fit-content;
    margin-top: .35rem;
    padding: .2rem .45rem;
    border: 1px solid var(--bs-info-border-subtle);
    border-radius: 999px;
    background: var(--bs-info-bg-subtle);
    color: var(--bs-info-text-emphasis);
    font-size: .72rem;
    font-style: normal;
}

@media (max-width: 700px) {
    .document-category-filter,
    .document-review-bulk-actions {
        width: 100%;
        margin-left: 0;
    }

    .document-review-bulk-actions .btn {
        flex: 1 1 10rem;
    }
}

/* r18.6.0 Phase 0E — explanation-only cross-component impact panel */
.document-impact-explainer {
    margin: 1rem 0 1.25rem;
    padding: 1rem;
    border: 1px solid var(--cb-border, #d7dee8);
    border-radius: 16px;
    background: var(--cb-surface, #fff);
}

.document-impact-authority-pill {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    padding: .35rem .65rem;
    border-radius: 999px;
    border: 1px solid currentColor;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
}

.document-impact-intro {
    margin: .35rem 0 .85rem;
    max-width: 78ch;
}

.document-impact-actions {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.document-impact-actions small {
    flex: 1 1 28rem;
    opacity: .8;
}

.document-impact-note {
    margin-top: .85rem;
    padding: .75rem .85rem;
    border-radius: 12px;
    background: color-mix(in srgb, currentColor 5%, transparent);
}

.document-impact-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.document-impact-metrics > div {
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--cb-border, #d7dee8);
    border-radius: 12px;
}

.document-impact-metrics strong,
.document-impact-metrics span {
    display: block;
    overflow-wrap: anywhere;
}

.document-impact-metrics strong {
    font-size: 1rem;
}

.document-impact-metrics span {
    margin-top: .2rem;
    font-size: .78rem;
    opacity: .75;
}

.document-impact-workspace-state {
    display: flex;
    gap: .65rem;
    flex-wrap: wrap;
    margin-top: .7rem;
}

.document-impact-workspace-state > span {
    padding: .45rem .65rem;
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 6%, transparent);
    font-size: .82rem;
}

.document-impact-ai {
    margin-top: 1rem;
    padding: .9rem;
    border-radius: 14px;
    border: 1px solid var(--cb-border, #d7dee8);
    background: color-mix(in srgb, currentColor 3%, transparent);
}

.document-impact-ai-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}

.document-impact-ai-heading span {
    font-size: .78rem;
    opacity: .72;
}

.document-impact-ai h3 {
    margin: .9rem 0 .35rem;
    font-size: .95rem;
}

.document-impact-ai ul {
    margin: 0;
    padding-left: 1.2rem;
}

.document-impact-ai li + li {
    margin-top: .25rem;
}

.document-impact-sources {
    display: grid;
    gap: .25rem;
    margin-top: .95rem;
    padding-top: .75rem;
    border-top: 1px solid var(--cb-border, #d7dee8);
    overflow-wrap: anywhere;
}

@media (max-width: 900px) {
    .document-impact-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .document-impact-metrics {
        grid-template-columns: 1fr;
    }

    .document-impact-actions > .btn {
        width: 100%;
    }
}

.document-evidence-impact-audit {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--cb-border, #d7dee8);
    border-radius: 16px;
    background: color-mix(in srgb, currentColor 2%, transparent);
}

.document-evidence-impact-audit-note,
.document-evidence-impact-audit-empty {
    margin: .65rem 0 0;
    font-size: .88rem;
    line-height: 1.55;
    opacity: .82;
}

.document-evidence-impact-audit-list {
    display: grid;
    gap: .75rem;
    margin-top: .9rem;
}

.document-evidence-impact-audit-event {
    display: grid;
    gap: .55rem;
    padding: .8rem;
    border: 1px solid var(--cb-border, #d7dee8);
    border-radius: 14px;
    background: var(--bs-body-bg, #fff);
}

.document-evidence-impact-audit-event > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
}

.document-evidence-impact-audit-event > header > div {
    display: grid;
    gap: .15rem;
}

.document-evidence-impact-audit-event time,
.document-evidence-impact-audit-event small {
    font-size: .78rem;
    opacity: .74;
}

.document-evidence-impact-audit-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.document-evidence-impact-audit-metrics > div {
    display: grid;
    gap: .1rem;
    padding: .55rem .65rem;
    border-radius: 10px;
    background: color-mix(in srgb, currentColor 5%, transparent);
}

.document-evidence-impact-audit-metrics span {
    font-size: .72rem;
    opacity: .72;
}

.document-evidence-impact-audit-flags {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    font-size: .76rem;
}

.document-evidence-impact-audit-flags em {
    padding: .2rem .45rem;
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 7%, transparent);
    font-style: normal;
}

.document-evidence-impact-audit-rules {
    overflow-wrap: anywhere;
}

@media (max-width: 700px) {
    .document-evidence-impact-audit-event > header {
        display: grid;
    }

    .document-evidence-impact-audit-metrics {
        grid-template-columns: 1fr;
    }
}

.document-evidence-impact-audit-reason {
    margin: 0;
    font-size: .82rem;
    line-height: 1.45;
}

.document-evidence-impact-audit-state {
    overflow-wrap: anywhere;
}
