.br {
    --br-blue:#2463d4;
    --br-ink:#253247;
    --br-muted:#66758b;
    max-width:1440px;
    margin:0 auto;
    padding:28px 32px 60px;
    color:var(--br-ink);
    font-size:14px;
    line-height:1.6;
    background:#f6f8fc;
    min-height:80vh;
    box-sizing:border-box
}

.br * {
    box-sizing:border-box
}

.br [hidden] {
    display:none!important
}

.br h1 {
    font-size:29px;
    margin:2px 0 4px;
    line-height:1.4
}

.br h2 {
    font-size:19px;
    margin:0 0 6px
}

.br h3 {
    font-size:16px;
    margin:0 0 8px
}

.br p {
    margin:4px 0 10px
}

.br button,.br input,.br select,.br textarea {
    font:inherit
}

.br input:not([type=checkbox]),.br select,.br textarea {
    border:1px solid #cbd5e3;
    border-radius:7px;
    padding:9px 11px;
    background:white;
    color:var(--br-ink);
    max-width:100%
}

.br textarea {
    width:100%;
    resize:vertical;
    line-height:1.7;
    min-height:84px
}

.br input[type=checkbox] {
    accent-color:var(--br-blue);
    width:17px;
    height:17px;
    flex-shrink:0;
    margin:3px 9px 0 0
}

.br button:focus-visible,.br a:focus-visible,.br input:focus-visible,.br select:focus-visible,.br textarea:focus-visible,.br summary:focus-visible {
    outline:3px solid #8bb5ff;
    outline-offset:3px
}

.br a {
    color:var(--br-blue)
}

.br-back {
    display:inline-block;
    margin-bottom:20px;
    text-decoration:none
}

.br-heading,.br-section-heading,.br-row,.br-action-bar,.br-inline-actions {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px
}

.br-heading {
    align-items:flex-start
}

.br-heading-actions {
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    max-width:52%
}

.br-heading-actions label {
    flex-basis:100%;
    text-align:right;
    color:var(--br-muted)
}

.br-heading-actions select {
    max-width:310px
}

.br-eyebrow {
    font-size:12px;
    font-weight:600;
    color:var(--br-blue);
    letter-spacing:.08em
}

.br-risk {
    padding: 14px 18px;
    margin: 20px 0;
    border: 1px solid #dce4ed;
    border-left: 3px solid #7a8da7;
    border-radius: 7px;
    background: #f8fafc;
    color: #52627a;
    font-size: 13px;
    line-height: 1.8;
}
.br-risk strong { color: #394a62; }
.br-risk p { margin: 4px 0 0; }
.br-snapshot-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 16px 0; font-size: 13px; color: #73500d; }
.br-snapshot-toolbar > div { display: flex; gap: 8px; flex-shrink: 0; }
.br-snapshot-content { max-height: 57vh; overflow-y: auto; padding: 18px; border: 1px solid #e1e6ed; border-radius: 6px; background: #fcfdff; white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 2; }
.br-snapshot-match { background: #fff0b3; color: #6b4300; border-bottom: 2px solid #daa027; padding: 2px 0; border-radius: 2px; }
.br-snapshot-match.active { background: #ffe082; color: #543000; outline: 2px solid #bf8617; outline-offset: 2px; }
@media (max-width: 600px) { .br-snapshot-toolbar { flex-wrap: wrap; } }

.br-title {
    font-size:16px;
    overflow-wrap:anywhere
}

.br-scope {
    color:var(--br-muted);
    margin:18px 0!important
}

.br-card {
    background:white;
    border:1px solid #dfe5ef;
    border-radius:11px;
    padding:22px
}

.br-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
    white-space:nowrap;
    border:1px solid #cbd5e3;
    border-radius:7px;
    padding:9px 16px;
    background:#fff;
    color:var(--br-ink)!important;
    cursor:pointer;
    line-height:1.5;
    font-weight:500
}

.br-button:hover {
    background:#f1f5fa
}

.br-button:disabled {
    opacity:.5;
    cursor:not-allowed
}

.br-primary {
    background:var(--br-blue);
    border-color:var(--br-blue);
    color:white!important
}

.br-primary:hover {
    background:#1d51b0
}

.br-text-button {
    background:none;
    border:0;
    padding:6px 8px;
    color:var(--br-blue);
    cursor:pointer
}

.br-link {
    text-decoration:none;
    white-space:nowrap
}

.br-muted,.br-help {
    color:var(--br-muted);
    font-size:13px
}

.br-help {
    margin-top:14px!important
}

.br-alert {
    padding:13px 17px;
    background:#fff1f0;
    border:1px solid #f0bfbc;
    color:#a53129;
    border-radius:8px;
    margin:14px 0;
    white-space:pre-line
}

.br-alert.success {
    background:#edf8f1;
    border-color:#baddc9;
    color:#246542
}

.br-notice {
    padding:12px 16px;
    border:1px solid #ecd6a9;
    background:#fffbf1;
    border-radius:7px;
    color:#72531b;
    margin:14px 0!important;
    white-space:pre-line
}

.br-steps {
    display:flex;
    gap:0;
    list-style:none;
    margin:24px 0;
    padding:0;
    border-bottom:1px solid #d9e2ef
}

.br-steps li {
    flex:1;
    padding:14px 6px;
    display:flex;
    align-items:center;
    gap:10px;
    color:var(--br-muted);
    border-bottom:3px solid transparent
}

.br-steps li.active {
    border-color:var(--br-blue);
    color:var(--br-blue);
    font-weight:600
}

.br-steps span {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    width:25px;
    height:25px;
    border-radius:50%;
    background:#e8edf5;
    font-size:13px
}

.br-steps .active span {
    background:#e4eeff
}

.br-section-heading {
    margin:26px 0 18px
}

.br-section-heading p {
    color:var(--br-muted);
    margin:0
}

.br-source-layout {
    display:grid;
    grid-template-columns:310px minmax(0,1fr);
    gap:18px
}

.br-search {
    display:flex;
    gap:7px;
    margin-bottom:14px
}

.br-search input {
    min-width:0;
    width:100%
}

.br-search button {
    padding:8px 11px
}

.br-documents {
    padding:18px;
    height:fit-content
}

.br-document-list {
    margin-top:12px
}

.br-doc {
    display:block;
    width:100%;
    text-align:left;
    background:white;
    border:1px solid #e0e6ef;
    border-radius:8px;
    padding:13px;
    margin-bottom:10px;
    cursor:pointer;
    color:var(--br-ink)
}

.br-doc.selected {
    background:#edf4ff;
    border-color:var(--br-blue)
}

.br-doc:disabled {
    opacity:.65;
    cursor:not-allowed
}

.br-doc strong {
    display:block;
    font-weight:600;
    overflow-wrap:anywhere;
    margin-bottom:5px
}

.br-doc span {
    display:block;
    color:var(--br-muted);
    font-size:12px
}

.br-pagination {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:5px;
    margin-top:18px
}

.br-pagination button {
    font-size:12px;
    padding:6px 9px
}

.br-source-items {
    min-height:450px;
    min-width:0
}

.br-empty {
    text-align:center;
    padding:54px 22px;
    color:var(--br-muted)
}

.br-empty h2,.br-empty h3 {
    color:var(--br-ink)
}

.br-group-label {
    margin:22px 0 8px;
    font-weight:600;
    font-size:13px;
    color:var(--br-muted)
}

.br-source-option {
    border-top:1px solid #edf0f5;
    padding:12px 0
}

.br-source-option>label,.br-check-label,.br-generic label {
    display:flex;
    align-items:flex-start;
    cursor:pointer
}

.br-source-option details {
    margin:7px 0 0 26px
}

.br-source-option summary,.br-coverage summary,.br-check-card summary {
    cursor:pointer;
    color:var(--br-blue);
    font-size:13px
}

.br-source-option pre,.br-quote,.br-basis {
    font:inherit;
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    background:#f7f9fc;
    border-left:3px solid #cedaf0;
    padding:12px 15px;
    margin:10px 0;
    max-height:260px;
    overflow:auto
}

.br-generic {
    border-top:1px solid #e5eaf1;
    padding-top:20px;
    margin-top:20px
}

.br-generic label {
    margin:12px 0
}

.br-badge {
    display:inline-block;
    border-radius:5px;
    padding:2px 8px;
    font-size:12px;
    font-weight:500;
    background:#eef2f7;
    color:#52627a;
    margin-left:7px;
    vertical-align:middle
}

.br-badge.issue,.br-badge.high {
    background:#fff0ef;
    color:#a8342d
}

.br-badge.uncertain,.br-badge.error,.br-badge.modified {
    background:#fff5dd;
    color:#845f15
}

.br-badge.pass {
    background:#ebf6ef;
    color:#287044
}

.br-action-bar {
    position:sticky;
    bottom:0;
    z-index:5;
    margin-top:24px;
    background:#fff;
    border:1px solid #dfe5ef;
    border-radius:10px;
    padding:16px 22px;
    box-shadow:0 -4px 20px #263d6010
}

.br-action-bar p {
    font-size:12px;
    color:var(--br-muted);
    margin:3px 0 0
}

.br-progress-panel {
    text-align:center;
    padding:50px 24px
}

.br-spinner {
    width:28px;
    height:28px;
    border:3px solid #dce7f7;
    border-top-color:var(--br-blue);
    border-radius:50%;
    animation:br-spin 1s linear infinite;
    margin:0 auto 20px
}

@keyframes br-spin {
    to {
        transform:rotate(360deg)
    }
}

.br progress {
    display:block;
    max-width:540px;
    width:100%;
    height:10px;
    accent-color:var(--br-blue);
    margin:22px auto 12px
}

.br-checklist-toolbar {
    margin:15px 0
}

.br-check-card {
    margin:12px 0;
    padding:20px 24px
}

.br-check-card label {
    font-size:13px;
    display:block;
    margin:12px 0 6px
}

.br-check-card .br-check-label {
    display:flex;
    font-size:16px;
    font-weight:600;
    margin-top:0
}

.br-check-fields {
    padding-left:26px
}

.br-check-card:not(:has(input[type=checkbox]:checked)) {
    background:#f8f9fb
}

.br-check-card details {
    margin-top:12px
}

.br-counts {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:12px;
    margin:20px 0
}

.br-count {
    background:white;
    border:1px solid #dfe5ef;
    border-radius:9px;
    padding:15px 18px
}

.br-count strong {
    display:block;
    font-size:27px;
    line-height:1.3;
    margin-top:5px
}

.br-count span {
    font-size:12px;
    color:var(--br-muted)
}

.br-count.high strong {
    color:#b3362d
}

.br-count.uncertain strong {
    color:#8b651c
}

.br-coverage {
    padding:15px 20px;
    margin-bottom:20px
}

.br-coverage p {
    margin-top:12px
}

.br-result-layout {
    display:grid;
    grid-template-columns:310px minmax(0,1fr);
    gap:18px;
    align-items:start
}

.br-findings {
    padding:18px;
    position:sticky;
    top:15px;
    max-height:85vh;
    overflow:auto
}

.br-findings label {
    display:block;
    font-weight:600;
    margin-bottom:8px
}

.br-findings select,.br-findings input {
    width:100%;
    margin-bottom:12px
}

.br-finding {
    display:block;
    width:100%;
    text-align:left;
    background:white;
    border:1px solid #e1e6ee;
    border-radius:8px;
    padding:13px;
    margin-top:10px;
    cursor:pointer;
    color:var(--br-ink)
}

.br-finding.selected {
    border-color:var(--br-blue);
    background:#f0f5ff
}

.br-finding strong {
    display:block;
    margin-bottom:7px
}

.br-finding small {
    display:block;
    margin-top:7px;
    color:var(--br-muted)
}

.br-finding .br-badge {
    margin-left:0;
    margin-right:6px
}

.br-finding-detail {
    min-height:500px;
    min-width:0;
    padding:28px
}

.br-finding-detail h2 {
    font-size:22px;
    overflow-wrap:anywhere
}

.br-detail-section {
    border-top:1px solid #e6ebf2;
    padding-top:20px;
    margin-top:20px
}

.br-detail-section h3 {
    font-size:14px;
    color:var(--br-muted)
}

.br-prose {
    white-space:pre-wrap;
    overflow-wrap:anywhere
}

.br-evidence {
    margin:17px 0
}

.br-evidence-path {
    font-size:12px;
    color:var(--br-muted)
}

.br-evidence-actions {
    display:flex;
    gap:18px;
    align-items:center;
    flex-wrap:wrap
}

.br-disposition {
    display:flex;
    gap:10px;
    margin-bottom:12px
}

.br-disposition select {
    flex:1
}

.br-node-edit {
    display:flex;
    gap:10px;
    margin-top:12px
}

.br-node-edit select {
    min-width:0;
    flex:1
}

.br-dialog {
    width:min(900px,92vw);
    max-height:85vh;
    border:1px solid #d8e1ed;
    border-radius:12px;
    padding:25px;
    color:var(--br-ink)
}

.br-dialog::backdrop {
    background:#14223970
}

.br-dialog pre {
    white-space:pre-wrap;
    overflow-wrap:anywhere;
    font:inherit;
    line-height:1.9;
    max-height:60vh;
    overflow:auto
}

.br-align-start {
    align-items:flex-start
}

.br-sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

@media(max-width:1050px) {
    .br {
        padding:22px 20px 45px
    }
    .br-source-layout,.br-result-layout {
        grid-template-columns:260px minmax(0,1fr)
    }
    .br-heading {
        gap:20px
    }
    .br-counts {
        gap:8px
    }
    .br-count {
        padding:12px
    }
    .br-finding-detail {
        padding:20px
    }
}

@media(max-width:760px) {
    .br {
        padding:18px 13px 35px
    }
    .br-heading,.br-section-heading {
        display:block
    }
    .br-heading-actions {
        max-width:100%;
        justify-content:flex-start;
        margin-top:18px
    }
    .br-heading-actions label {
        text-align:left
    }
    .br-heading-actions select {
        max-width:75%
    }
    .br-source-layout,.br-result-layout {
        grid-template-columns:1fr
    }
    .br-document-list {
        max-height:280px;
        overflow:auto
    }
    .br-counts {
        grid-template-columns:repeat(3,minmax(0,1fr))
    }
    .br-findings {
        position:static;
        max-height:400px
    }
    .br-action-bar {
        padding:13px;
        gap:10px
    }
    .br-action-bar strong {
        font-size:13px
    }
    .br-action-bar p {
        display:none
    }
    .br-steps li {
        font-size:12px;
        gap:6px
    }
    .br-check-fields {
        padding-left:0
    }
    .br-check-card {
        padding:17px
    }
    .br-section-heading .br-inline-actions {
        justify-content:flex-start;
        margin-top:12px
    }
    .br-source-items {
        padding:18px
    }
    .br-finding-detail {
        padding:18px
    }
}

@media(prefers-reduced-motion:reduce) {
    .br-spinner {
        animation:none
    }
}

/* 本样式仅在审查页加载，避免基础页头/页脚的宽度叠加内边距。 */ .base-header .base-container,.base-footer .base-container {
    box-sizing:border-box
}

.br input,.br textarea,.br select,.br button {
    scroll-margin-block:110px
}

.br-template-choice { margin-bottom:18px; }
.br-template-choice > label { display:block; font-weight:600; margin-bottom:8px; }
.br-template-choice > select { width:100%; }
.br-template-rule { margin:14px 0; overflow-wrap:anywhere; }
.br-template-rule > label:not(.br-check-label) { display:block; margin:12px 0; font-size:13px; }
.br-template-rule > label > input:not([type=checkbox]),.br-template-rule > label > select,.br-template-rule > label > textarea { display:block; width:100%; margin-top:6px; }
.br-template-rule > select { width:100%; }
.br-check-fields > input,.br-check-fields > select { width:100%; }
.br-check-heading { align-items:flex-start; }
.br-check-heading .br-check-label { flex:1; margin-bottom:0; }
.br-check-heading > button { flex-shrink:0; }
.br-check-preview { white-space:pre-wrap; overflow-wrap:anywhere; max-height:100px; overflow:auto; }
.br-inline-actions { flex-wrap:wrap; }
.br-steps span { flex-shrink:0; }
.br-check-label { flex-wrap:wrap; row-gap:7px; }
.br-template-editor { overflow-y:auto; }
.br-template-editor form > label { display:block; margin:14px 0 6px; }
.br-template-editor form > input,.br-template-editor form > textarea { width:100%; }
@media(max-width:600px) {
    .br-steps { display:grid; grid-template-columns:1fr 1fr; }
    .br-steps li { min-width:0; }
    .br-dialog { padding:16px; }
    .br-action-bar { flex-wrap:wrap; }
    .br-inline-actions { gap:8px; }
}
