:root {
    color-scheme: light;
    --bg: #f4f6f8;
    --panel: #ffffff;
    --ink: #17212b;
    --muted: #667085;
    --line: #d7dee7;
    --teal: #0f766e;
    --indigo: #334eac;
    --amber: #b7791f;
    --danger: #b42318;
    --shadow: 0 12px 28px rgba(16, 32, 51, 0.08);
    --soft-shadow: 0 6px 18px rgba(16, 32, 51, 0.06);
}

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    min-width: 1220px;
    background: var(--bg);
    color: var(--ink);
    font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
    font-size: 14px;
}

.topbar {
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    background: #102033;
    color: #fff;
    border-bottom: 4px solid var(--teal);
}

.topbar h1 {
    margin: 0;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
}

.topbar a {
    color: #d6e4ff;
    text-decoration: none;
}

.auth-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
}

.auth-user {
    color: #d8e2ee;
    font-size: 13px;
}

.topbar-button {
    height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
}

.topbar-button:hover {
    background: rgba(255, 255, 255, 0.16);
}

.auth-pending > .topbar,
.auth-pending > .layout {
    visibility: hidden;
}

.auth-gate {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        radial-gradient(circle at 18% 16%, rgba(15, 118, 110, 0.2), transparent 34%),
        radial-gradient(circle at 82% 78%, rgba(51, 78, 172, 0.18), transparent 32%),
        #edf2f6;
}

.auth-card {
    position: relative;
    width: min(440px, 100%);
    display: grid;
    gap: 20px;
    padding: 32px;
    border: 1px solid #cfdae5;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 28px 70px rgba(16, 32, 51, 0.16);
}

.auth-brand {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 12px;
    background: #102033;
    color: #fff;
    font-size: 18px;
    font-weight: 800;
    box-shadow: inset 0 -4px 0 var(--teal);
}

.auth-kicker {
    color: var(--teal);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.auth-card h2 {
    margin: 5px 0 0;
    font-size: 24px;
}

.auth-intro,
.auth-footnote {
    margin: 8px 0 0;
    color: var(--muted);
    line-height: 1.65;
}

.auth-footnote {
    margin: 0;
    font-size: 12px;
}

.auth-form {
    display: grid;
    gap: 14px;
}

.auth-form label {
    display: grid;
    gap: 6px;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}

.auth-form input {
    height: 42px;
    font-size: 15px;
    font-weight: 400;
}

.auth-form button {
    height: 42px;
    margin-top: 2px;
}

.auth-error {
    padding: 9px 11px;
    border: 1px solid #f2b8b5;
    border-radius: 6px;
    background: #fff1f0;
    color: var(--danger);
    font-size: 12px;
}

.auth-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 32px;
    height: 32px;
    padding: 0;
    border-color: transparent;
    background: transparent;
    color: var(--muted);
    font-size: 24px;
    line-height: 1;
}

.auth-close:hover {
    border-color: var(--line);
    background: #f4f6f8;
}

.access-open {
    overflow: hidden;
}

.access-backdrop {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(16, 32, 51, 0.42);
}

.access-dialog {
    width: min(980px, 100%);
    max-height: calc(100vh - 48px);
    overflow: auto;
    padding: 24px;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background:
        linear-gradient(145deg, rgba(15, 118, 110, 0.045), transparent 35%),
        #f7f9fb;
    box-shadow: 0 30px 80px rgba(16, 32, 51, 0.28);
}

.access-dialog-head,
.access-section-head,
.access-list-row,
.access-member-actions,
.access-row-meta {
    display: flex;
    align-items: center;
}

.access-dialog-head,
.access-section-head,
.access-list-row {
    justify-content: space-between;
}

.access-dialog-head {
    gap: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.access-dialog-head h2,
.access-section h3 {
    margin: 4px 0 0;
}

.access-dialog-head h2 {
    font-size: 24px;
}

.access-dialog-head p,
.access-section-head p {
    margin: 7px 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.access-notice {
    margin-top: 16px;
    padding: 10px 12px;
    border: 1px solid #a6d6cf;
    border-radius: 7px;
    background: #eaf8f5;
    color: #075e56;
}

.access-notice.danger {
    border-color: #f2b8b5;
    background: #fff1f0;
    color: var(--danger);
}

.access-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 16px;
    margin-top: 16px;
}

.access-section {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.access-project-section {
    grid-column: 1 / -1;
}

.mcp-connection-section {
    grid-column: 1 / -1;
    border-color: #b8d9d4;
}

.mcp-connection-section .access-section-head {
    align-items: flex-start;
    gap: 16px;
}

.mcp-status {
    flex-shrink: 0;
    padding: 6px 9px;
    border-radius: 6px;
    background: #f0f4f7;
    color: #526477;
    font-size: 12px;
}

.mcp-connection-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 16px 16px 16px 36px;
    border-radius: 8px;
    background: #f0f8f6;
    color: var(--teal);
}

.mcp-connection-steps strong,
.mcp-connection-steps span {
    display: block;
}

.mcp-connection-steps span,
.mcp-help {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.mcp-import-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.mcp-import-row label,
.mcp-client-guide label {
    display: grid;
    gap: 7px;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
}

.mcp-import-row input {
    width: 100%;
    min-width: 0;
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 6px;
    font: inherit;
}

.mcp-source-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 18px 0;
}

.mcp-source-summary div:nth-child(n+3) {
    grid-column: 1 / -1;
}

.mcp-source-summary dt {
    color: var(--muted);
    font-size: 12px;
}

.mcp-source-summary dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    font-size: 13px;
}

.mcp-config-label {
    font-size: 13px;
    font-weight: 600;
}

.mcp-config-preview {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-height: 100px;
    margin-top: 8px;
    padding: 12px;
    resize: vertical;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #f8fafb;
    color: var(--ink);
    font: 12px/1.6 ui-monospace, SFMono-Regular, monospace;
    overflow-wrap: anywhere;
}

.mcp-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.mcp-client-guide {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.mcp-client-guide select {
    width: min(100%, 260px);
    padding: 8px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    font: inherit;
}

.mcp-client-guide p,
.mcp-preparation p,
.mcp-remote-status {
    font-size: 13px;
    line-height: 1.7;
}

.mcp-preparation {
    margin-top: 18px;
}

.mcp-preparation summary {
    cursor: pointer;
    color: var(--teal);
    font-size: 13px;
    font-weight: 600;
}

.mcp-preparation pre {
    padding: 12px;
    border-radius: 6px;
    background: #f4f6f8;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.mcp-remote-status {
    margin-bottom: 0;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    color: var(--muted);
}

@media (max-width: 640px) {
    .mcp-connection-section .access-section-head {
        flex-direction: column;
        gap: 10px;
    }
    .mcp-connection-steps,
    .mcp-import-row,
    .mcp-source-summary {
        grid-template-columns: 1fr;
    }
}

.access-label {
    color: var(--teal);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.access-role-chip,
.access-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    min-height: 26px;
    padding: 4px 9px;
    border: 1px solid #b8d9d4;
    border-radius: 999px;
    background: #effaf8;
    color: var(--teal);
    font-size: 12px;
    font-weight: 700;
}

.access-identity {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 16px 0;
}

.access-identity div {
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 7px;
    background: #f8fafc;
}

.access-identity dt {
    color: var(--muted);
    font-size: 11px;
}

.access-identity dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.access-form {
    display: grid;
    gap: 10px;
}

.access-user-form {
    margin: 16px 0;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}

.access-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.access-list {
    display: grid;
    gap: 8px;
    max-height: 280px;
    overflow: auto;
}

.access-list-row {
    gap: 14px;
    min-width: 0;
    padding: 10px;
    border: 1px solid #dde4ec;
    border-radius: 7px;
    background: #fbfcfe;
}

.access-person {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.access-person strong,
.access-person span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.access-person span,
.access-row-meta {
    color: var(--muted);
    font-size: 12px;
}

.access-row-meta,
.access-member-actions {
    flex-shrink: 0;
    gap: 8px;
}

.access-status-active {
    color: var(--teal);
}

.access-member-actions select {
    width: 126px;
}

.access-search {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    gap: 10px;
    align-items: end;
    margin: 16px 0 10px;
}

.access-candidates {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
    padding: 12px;
    border: 1px dashed #9dc6c1;
    border-radius: 8px;
    background: #f3fbf9;
}

.access-candidate-title {
    color: var(--teal);
    font-size: 12px;
    font-weight: 800;
}

.access-empty {
    padding: 14px;
    border: 1px dashed #cbd5e1;
    border-radius: 7px;
    color: var(--muted);
    background: #f8fafc;
    text-align: center;
}

.governance-open {
    overflow: hidden;
}

.governance-backdrop {
    position: fixed;
    inset: 0;
    z-index: 65;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(16, 32, 51, 0.48);
}

.governance-dialog {
    width: min(1180px, 100%);
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding: 24px;
    border: 1px solid #c9d6e3;
    border-radius: 12px;
    background:
        linear-gradient(145deg, rgba(51, 78, 172, 0.055), transparent 34%),
        #f6f8fb;
    box-shadow: 0 34px 90px rgba(16, 32, 51, 0.34);
}

.governance-head,
.governance-section-head,
.governance-detail-head,
.governance-event-line,
.governance-cluster-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.governance-head {
    gap: 24px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}

.governance-head h2,
.governance-section-head h3,
.governance-detail-head h3,
.governance-empty h3 {
    margin: 4px 0 0;
}

.governance-head h2 {
    font-size: 24px;
}

.governance-head p,
.governance-empty p {
    margin: 7px 0 0;
    color: var(--muted);
    line-height: 1.55;
}

.governance-filters {
    display: grid;
    grid-template-columns:
        minmax(180px, 1.4fr)
        minmax(130px, 0.75fr)
        minmax(140px, 0.8fr)
        auto
        auto;
    gap: 10px;
    align-items: end;
    margin-top: 16px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.governance-export {
    display: inline-flex;
    height: 34px;
    align-items: center;
    justify-content: center;
    padding: 0 13px;
    border-style: solid;
    border-width: 1px;
    border-radius: 6px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.governance-summary {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 10px;
    align-items: center;
    margin: 12px 0;
}

.governance-summary > div {
    min-width: 112px;
    padding: 10px 12px;
    border: 1px solid #d8e1eb;
    border-radius: 8px;
    background: #fff;
}

.governance-summary span {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.governance-summary strong {
    display: block;
    margin-top: 3px;
    color: var(--indigo);
    font-size: 21px;
}

.governance-summary p {
    margin: 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
    text-align: right;
}

.governance-grid {
    display: grid;
    grid-template-columns: minmax(320px, 0.82fr) minmax(0, 1.18fr);
    gap: 16px;
    min-height: 540px;
}

.governance-list-panel,
.governance-detail-panel {
    min-width: 0;
    padding: 18px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.governance-list-panel {
    align-self: start;
}

.governance-list,
.governance-events {
    display: grid;
    gap: 8px;
    margin-top: 14px;
}

.governance-list {
    max-height: 600px;
    overflow: auto;
}

.governance-cluster {
    height: auto;
    display: grid;
    gap: 7px;
    width: 100%;
    padding: 12px;
    border-color: #d8e1eb;
    background: #fbfcfe;
    color: var(--ink);
    text-align: left;
    white-space: normal;
}

.governance-cluster:hover:not(:disabled),
.governance-cluster.active {
    border-color: var(--teal);
    background: #f0faf8;
}

.governance-cluster.active {
    box-shadow: inset 3px 0 0 var(--teal);
}

.governance-cluster-top {
    gap: 10px;
}

.governance-cluster-top strong {
    overflow-wrap: anywhere;
    color: #24364b;
}

.governance-cluster-description,
.governance-cluster-counts,
.governance-cluster-time {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.governance-cluster-counts {
    color: #344054;
    font-weight: 700;
}

.governance-state,
.governance-severity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid #d4dbe4;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 11px;
    font-weight: 800;
}

.governance-state.triaged,
.governance-state.planned {
    border-color: #a9c4e8;
    background: #eef4ff;
    color: #244f8f;
}

.governance-state.fixed {
    border-color: #e8c88f;
    background: #fff8e8;
    color: #8a5a12;
}

.governance-state.verified {
    border-color: #9ed4c7;
    background: #ecf9f5;
    color: #08715f;
}

.governance-severity.high {
    border-color: #f2b8b5;
    background: #fff1f0;
    color: var(--danger);
}

.governance-severity.medium {
    border-color: #e8c88f;
    background: #fff8e8;
    color: #8a5a12;
}

.governance-detail-head {
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}

.governance-detail-head h3 {
    max-width: 560px;
    overflow-wrap: anywhere;
    font-size: 14px;
}

.governance-detail-head p {
    margin: 6px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.governance-empty {
    display: grid;
    min-height: 300px;
    place-content: center;
    padding: 30px;
    text-align: center;
}

.governance-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0;
}

.governance-metrics div {
    min-width: 0;
    padding: 10px;
    border: 1px solid #e2e8f0;
    border-radius: 7px;
    background: #f8fafc;
}

.governance-metrics dt {
    color: var(--muted);
    font-size: 11px;
}

.governance-metrics dd {
    margin: 4px 0 0;
    overflow-wrap: anywhere;
    font-weight: 700;
}

.governance-subsection,
.governance-action-form {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.governance-events {
    max-height: 280px;
    overflow: auto;
}

.governance-event {
    padding: 11px;
    border-left: 3px solid #9db9d7;
    border-radius: 0 7px 7px 0;
    background: #f8fafc;
}

.governance-event-line {
    gap: 10px;
}

.governance-event-line span,
.governance-event p,
.governance-event-meta,
.governance-fix-evidence {
    font-size: 12px;
}

.governance-event-line span,
.governance-event-meta {
    color: var(--muted);
}

.governance-event p {
    margin: 7px 0;
    color: #344054;
    line-height: 1.5;
}

.governance-event-meta,
.governance-fix-evidence {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 12px;
}

.governance-fix-evidence {
    margin-top: 8px;
    padding: 7px;
    border: 1px solid #d6e4f3;
    border-radius: 5px;
    background: #fff;
}

.governance-fix-evidence code {
    overflow-wrap: anywhere;
    color: var(--indigo);
}

.governance-action-form {
    display: grid;
    gap: 10px;
}

.governance-action-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.governance-action-form textarea {
    width: 100%;
    resize: vertical;
    padding: 8px 9px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: var(--ink);
    background: #fff;
    font: inherit;
    line-height: 1.5;
}

.status {
    display: block;
    margin-top: 4px;
    color: #cbd5e1;
    font-size: 12px;
}

.layout {
    display: grid;
    grid-template-columns: 280px minmax(760px, 1fr) 320px;
    gap: 16px;
    padding: 16px;
    min-height: calc(100vh - 64px);
}

.side,
.workspace {
    min-width: 0;
}

.side {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.workspace {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.panel,
.band {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: var(--soft-shadow);
    transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.panel {
    padding: 14px;
}

.band {
    padding: 16px;
}

.grow {
    flex: 1;
}

.manual-workflow {
    border-color: #96c9c2;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, 0.055), transparent 34%),
        var(--panel);
}

.workflow-title-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.manual-workflow .panel-title {
    margin: 2px 0 0;
    font-size: 18px;
}

.workflow-primary-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--teal);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.manual-workflow-intro {
    margin: 7px 0 10px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}

.cad-plus-shell {
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    background: #f8fafc;
    box-shadow: var(--soft-shadow);
}

.cad-plus-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 82px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
    transition: background 160ms ease;
}

.cad-plus-summary::-webkit-details-marker {
    display: none;
}

.cad-plus-summary::marker {
    content: "";
}

.cad-plus-summary:hover {
    background: #f1f5f9;
}

.cad-plus-summary:focus-visible {
    outline: 3px solid rgba(15, 118, 110, 0.22);
    outline-offset: -3px;
}

.cad-plus-summary strong {
    display: block;
    margin-top: 2px;
    color: #243447;
    font-size: 16px;
}

.cad-plus-summary p {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.cad-plus-action {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 13px;
    border: 1px solid #9fb0c3;
    border-radius: 6px;
    background: #fff;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}

.cad-plus-action-close {
    display: none;
}

.cad-plus-shell[open] > .cad-plus-summary {
    border-bottom: 1px solid #cbd5e1;
    background: #f1f5f9;
}

.cad-plus-shell[open] .cad-plus-action-open {
    display: none;
}

.cad-plus-shell[open] .cad-plus-action-close {
    display: inline;
}

.cad-plus-shell > .cad-workflow {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.cad-workflow {
    display: grid;
    gap: 14px;
    border-color: #b8d9d4;
    background:
        linear-gradient(135deg, rgba(15, 118, 110, 0.045), transparent 38%),
        var(--panel);
}

.cad-workflow-head,
.cad-review-head,
.cad-card-head,
.cad-list-item,
.cad-list-actions,
.cad-title-line {
    display: flex;
    align-items: center;
}

.cad-workflow-head,
.cad-review-head,
.cad-card-head,
.cad-list-item {
    justify-content: space-between;
}

.cad-workflow-head {
    gap: 18px;
}

.cad-title-line {
    flex-wrap: wrap;
    gap: 8px;
}

.cad-title-line .panel-title {
    margin: 0;
}

.cad-base-badge,
.cad-status {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 3px 8px;
    border: 1px solid #b8d9d4;
    border-radius: 999px;
    background: #edfdf9;
    color: var(--teal);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.cad-intro {
    max-width: 740px;
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}

.cad-steps {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.cad-steps span {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 10px;
    border: 1px solid #dbe8e6;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.8);
    color: #344054;
    font-size: 12px;
}

.cad-steps strong {
    display: grid;
    width: 22px;
    height: 22px;
    place-items: center;
    border-radius: 50%;
    background: var(--teal);
    color: #fff;
    font-size: 11px;
}

.cad-agent-panel {
    display: grid;
    gap: 11px;
    padding: 13px;
    border: 1px solid #b8c8ec;
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(53, 82, 174, 0.055), transparent 46%),
        #fbfcff;
}

.cad-agent-head,
.cad-agent-controls,
.cad-agent-progress,
.cad-agent-items-head {
    display: flex;
    align-items: center;
}

.cad-agent-head,
.cad-agent-items-head {
    justify-content: space-between;
}

.cad-agent-head {
    gap: 14px;
}

.cad-agent-head h3 {
    margin: 2px 0 0;
    font-size: 16px;
}

.cad-agent-controls {
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.cad-agent-controls select {
    width: auto;
    min-width: 150px;
    max-width: 230px;
    height: 32px;
    padding: 0 28px 0 9px;
    font-size: 11px;
}

.cad-agent-controls button {
    height: 32px;
    padding: 0 11px;
    font-size: 11px;
}

.cad-agent-goal {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #d4ddec;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.72);
}

.cad-agent-goal-head,
.cad-agent-goal-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cad-agent-goal-head strong {
    display: block;
    margin-top: 2px;
    color: #344054;
    font-size: 12px;
}

.cad-agent-goal-lock {
    flex: 0 0 auto;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eaf6f3;
    color: #256b62;
    font-size: 10px;
    font-weight: 700;
}

.cad-agent-goal-composer,
.cad-agent-saved-goal {
    display: grid;
    gap: 5px;
}

.cad-agent-goal-composer[hidden],
.cad-agent-saved-goal[hidden] {
    display: none;
}

.cad-agent-goal-composer > span,
.cad-agent-saved-goal > span {
    color: var(--muted);
    font-size: 10px;
}

.cad-agent-goal-composer textarea {
    width: 100%;
    min-height: 58px;
    max-height: 130px;
    resize: vertical;
    padding: 8px 9px;
    border: 1px solid #c8d2e3;
    border-radius: 6px;
    background: #fff;
    color: #344054;
    font: inherit;
    font-size: 11px;
    line-height: 1.5;
}

.cad-agent-goal-composer textarea:disabled {
    background: #f5f7fa;
    color: #667085;
}

.cad-agent-saved-goal {
    padding: 8px 9px;
    border-left: 3px solid var(--teal);
    border-radius: 5px;
    background: #f5fbfa;
}

.cad-agent-saved-goal p {
    margin: 0;
    color: #344054;
    font-size: 11px;
    line-height: 1.5;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.cad-agent-goal-foot small {
    color: var(--muted);
    font-size: 10px;
    line-height: 1.45;
}

.cad-agent-goal-foot small:last-child {
    flex: 0 0 auto;
    white-space: nowrap;
}

.cad-agent-message {
    margin: 0;
    color: #475467;
    font-size: 12px;
    line-height: 1.55;
}

.cad-agent-progress {
    gap: 10px;
}

.cad-agent-progress-track {
    flex: 1;
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: #e7ebf4;
}

.cad-agent-progress-track span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--indigo), var(--teal));
    transition: width 180ms ease;
}

.cad-agent-progress > strong {
    min-width: 58px;
    color: #475467;
    font-size: 11px;
    text-align: right;
}

.cad-agent-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.cad-agent-facts > div {
    min-width: 0;
    padding: 9px;
    border: 1px solid #dde3f1;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.82);
}

.cad-agent-facts span,
.cad-agent-facts strong {
    display: block;
    overflow-wrap: anywhere;
}

.cad-agent-facts span {
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 10px;
}

.cad-agent-facts strong {
    color: #344054;
    font-size: 12px;
}

.cad-agent-timeline {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #d7e2df;
    border-radius: 7px;
    background: rgba(247, 252, 250, 0.9);
}

.cad-agent-timeline-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cad-agent-timeline-head strong {
    display: block;
    margin-top: 2px;
    color: #344054;
    font-size: 12px;
}

.cad-agent-timeline-head > span {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #e9f5f1;
    color: var(--teal);
    font-size: 10px;
    font-weight: 700;
    text-align: center;
}

.cad-agent-timeline > p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.5;
}

.cad-agent-timeline ol {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cad-agent-timeline-item {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr);
    gap: 8px;
    min-width: 0;
}

.cad-agent-timeline-item::before {
    width: 7px;
    height: 7px;
    margin-top: 5px;
    border-radius: 50%;
    background: var(--teal);
    content: "";
}

.cad-agent-timeline-item.review::before {
    background: var(--danger);
}

.cad-agent-timeline-item strong,
.cad-agent-timeline-item small {
    display: block;
    overflow-wrap: anywhere;
}

.cad-agent-timeline-item strong {
    color: #344054;
    font-size: 11px;
}

.cad-agent-timeline-item small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.45;
}

.cad-agent-notes {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #eadfbd;
    border-radius: 7px;
    background: rgba(255, 252, 242, 0.92);
}

.cad-agent-notes-head,
.cad-agent-note-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cad-agent-notes-head strong {
    display: block;
    margin-top: 2px;
    color: #344054;
    font-size: 12px;
}

.cad-agent-notes-head > span {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #f7edcf;
    color: #795d12;
    font-size: 10px;
    font-weight: 700;
    text-align: center;
}

.cad-agent-notes > p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.5;
}

.cad-agent-note-list {
    display: grid;
    gap: 7px;
}

.cad-agent-note-item {
    min-width: 0;
    padding: 8px 9px;
    border: 1px solid #ece2c8;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.85);
}

.cad-agent-note-item p,
.cad-agent-note-item small {
    display: block;
    margin: 0;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.cad-agent-note-item p {
    color: #344054;
    font-size: 11px;
    line-height: 1.55;
}

.cad-agent-note-item small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.cad-agent-note-form {
    display: grid;
    gap: 7px;
    padding-top: 2px;
}

.cad-agent-note-form label,
.cad-agent-note-form label > span {
    display: grid;
    gap: 5px;
}

.cad-agent-note-form label > span {
    color: #5a6575;
    font-size: 10px;
}

.cad-agent-note-form textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
}

.cad-agent-note-foot small {
    color: var(--muted);
    font-size: 10px;
}

.cad-agent-note-foot button {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 0 11px;
    font-size: 11px;
}

.cad-agent-note-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 7px;
}

.cad-agent-guidance {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px solid #c8d6f4;
    border-radius: 7px;
    background: rgba(244, 247, 255, 0.9);
}

.cad-agent-guidance-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cad-agent-guidance-head strong {
    display: block;
    margin-top: 2px;
    color: #344054;
    font-size: 12px;
}

.cad-agent-guidance-head button {
    flex: 0 0 auto;
    height: 30px;
    padding: 0 10px;
    font-size: 11px;
}

.cad-agent-guidance > p,
.cad-agent-guidance-result p {
    margin: 0;
    color: #5a6575;
    font-size: 11px;
    line-height: 1.55;
}

.cad-agent-guidance-result {
    display: grid;
    gap: 5px;
    padding: 9px 10px;
    border-left: 3px solid var(--indigo);
    border-radius: 5px;
    background: #fff;
}

.cad-agent-guidance-result[hidden] {
    display: none;
}

.cad-agent-guidance-result small {
    color: var(--muted);
    font-size: 10px;
    overflow-wrap: anywhere;
}

.cad-agent-clarification-list {
    display: grid;
    gap: 8px;
    margin-top: 4px;
}

.cad-agent-clarification-list[hidden] {
    display: none;
}

.cad-agent-clarification {
    display: grid;
    min-width: 0;
    gap: 7px;
    padding: 9px;
    border: 1px solid #dce4f5;
    border-radius: 6px;
    background: #f8faff;
}

.cad-agent-clarification-head,
.cad-agent-clarification-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.cad-agent-clarification-head strong {
    color: #344054;
    font-size: 11px;
}

.cad-agent-clarification-head small {
    text-align: right;
}

.cad-agent-clarification-question {
    color: #344054 !important;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.cad-agent-clarification label {
    display: grid;
    gap: 5px;
}

.cad-agent-clarification label > span {
    color: #5a6575;
    font-size: 10px;
}

.cad-agent-clarification textarea {
    width: 100%;
    min-height: 56px;
    resize: vertical;
}

.cad-agent-clarification-foot button {
    flex: 0 0 auto;
    min-height: 30px;
    padding: 0 11px;
    font-size: 11px;
}

.cad-agent-items-head {
    gap: 10px;
    color: #344054;
    font-size: 12px;
}

.cad-agent-items-head > span {
    min-width: 24px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef3f8;
    color: var(--muted);
    text-align: center;
}

.cad-agent-item-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    max-height: 190px;
    overflow: auto;
}

.cad-agent-item {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 9px;
    border: 1px solid #e1e7ef;
    border-radius: 6px;
    background: #fff;
}

.cad-agent-item > div {
    min-width: 0;
}

.cad-agent-item-actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.cad-agent-item-actions .cad-release-download {
    margin-left: 0;
}

.cad-agent-item strong,
.cad-agent-item small {
    display: block;
    overflow-wrap: anywhere;
}

.cad-agent-item strong {
    margin-bottom: 2px;
    color: #344054;
    font-size: 11px;
}

.cad-agent-item small {
    color: var(--muted);
    font-size: 10px;
}

.cad-upload-form {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) auto minmax(190px, auto);
    gap: 10px;
    align-items: end;
    padding: 12px;
    border: 1px dashed #9fc6c1;
    border-radius: 7px;
    background: #f7fcfb;
}

.cad-file-picker {
    min-width: 0;
}

.cad-file-picker strong {
    display: block;
    overflow: hidden;
    margin-top: 5px;
    color: #31516e;
    font-size: 11px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cad-upload-feedback {
    display: grid;
    grid-column: 1 / -1;
    gap: 7px;
    padding: 10px 12px;
    border: 1px solid #c9d9e7;
    border-radius: 7px;
    background: #fff;
}

.cad-upload-feedback-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cad-upload-feedback-head strong {
    color: #264965;
    font-size: 12px;
}

.cad-upload-feedback-head span {
    flex: 0 0 auto;
    color: #60758b;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}

.cad-upload-feedback p {
    margin: 0;
    color: #60758b;
    font-size: 11px;
    line-height: 1.5;
}

.cad-dxf-guidance {
    padding: 10px 12px;
    border: 1px solid #e7bf76;
    border-radius: 7px;
    background: #fff9ec;
    color: #70440d;
    font-size: 11px;
    line-height: 1.55;
}

.cad-dxf-guidance[hidden] {
    display: none;
}

.cad-dxf-guidance strong,
.cad-dxf-guidance span {
    display: block;
}

.cad-dxf-guidance ol {
    margin: 6px 0;
    padding-left: 20px;
}

.cad-upload-progress {
    position: relative;
    overflow: hidden;
    height: 7px;
    border-radius: 999px;
    background: #e6edf3;
}

.cad-upload-progress > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #2b7a72;
    transition: width 160ms ease;
}

.cad-upload-progress.is-indeterminate > span {
    width: 38%;
    animation: cad-upload-indeterminate 1.25s ease-in-out infinite;
}

.cad-upload-feedback[data-state="complete"] {
    border-color: #a8d6c2;
    background: #f2fbf6;
}

.cad-upload-feedback[data-state="complete"] .cad-upload-progress > span {
    background: #16805c;
}

.cad-upload-feedback[data-state="blocked"] {
    border-color: #e7bf76;
    background: #fff9ec;
}

.cad-upload-feedback[data-state="blocked"] .cad-upload-feedback-head strong,
.cad-upload-feedback[data-state="blocked"] p {
    color: #8a5a12;
}

.cad-upload-feedback[data-state="blocked"] .cad-upload-progress > span {
    background: #c98518;
}

.cad-upload-feedback[data-state="failed"] {
    border-color: #efb3ae;
    background: #fff5f4;
}

.cad-upload-feedback[data-state="failed"] .cad-upload-feedback-head strong,
.cad-upload-feedback[data-state="failed"] p {
    color: #9b302b;
}

@keyframes cad-upload-indeterminate {
    0% {
        transform: translateX(-110%);
    }
    50% {
        transform: translateX(85%);
    }
    100% {
        transform: translateX(270%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .cad-upload-progress > span {
        transition: none;
    }

    .cad-upload-progress.is-indeterminate > span {
        width: 100%;
        animation: none;
        transform: none;
    }
}

.cad-seal-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 14px;
    border: 1px solid #bfd8d4;
    border-radius: 7px;
    background: #f8fcfb;
}

.cad-seal-panel h3,
.cad-seal-panel p {
    margin: 0;
}

.cad-seal-panel h3 {
    margin-top: 3px;
    color: #344054;
    font-size: 14px;
}

.cad-seal-panel p {
    margin-top: 5px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.5;
}

.cad-seal-actions {
    display: flex;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
}

.cad-reconciliation-panel {
    display: grid;
    gap: 14px;
    padding: 18px;
    border: 1px solid #cbd8e6;
    border-radius: 12px;
    background: #f7f9fc;
}

.cad-reconciliation-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.cad-reconciliation-head h3,
.cad-reconciliation-head p {
    margin: 0;
}

.cad-reconciliation-head h3 {
    margin-top: 4px;
    color: #142b4a;
    font-size: 18px;
}

.cad-reconciliation-head p {
    max-width: 820px;
    margin-top: 7px;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.65;
}

.cad-reconciliation-list {
    display: grid;
    gap: 10px;
}

.cad-reconciliation-card {
    display: grid;
    overflow: hidden;
    border: 1px solid #cbd8e6;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(20, 43, 74, 0.08);
}

.cad-review-workbench-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    border-bottom: 1px solid #dce5ee;
    background: #fff;
}

.cad-review-workbench-title {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.cad-review-workbench-title strong,
.cad-review-workbench-title span {
    overflow-wrap: anywhere;
}

.cad-review-workbench-title strong {
    color: #102e55;
    font-size: 17px;
}

.cad-review-progress {
    flex: 0 0 auto;
    padding: 5px 10px;
    border-radius: 999px;
    background: #fff3d6;
    color: #8b5a0a;
    font-size: 11px;
    font-weight: 700;
}

.cad-review-workbench-body {
    display: grid;
    grid-template-columns: minmax(0, 1.16fr) minmax(410px, 0.84fr);
    min-height: 620px;
}

.cad-review-evidence-pane {
    display: grid;
    grid-template-rows: auto minmax(420px, 1fr) auto;
    min-width: 0;
    margin: 0;
    padding: 16px;
    border-right: 1px solid #dce5ee;
    background: #f8fafc;
}

/*
 * The decision column can be much taller than its drawing preview.  Keep the
 * evidence viewer intrinsic and top-aligned so the real CAD image is visible
 * immediately instead of being vertically centered inside the full form
 * height.
 */
.cad-review-workbench-body > .cad-review-evidence-pane {
    align-self: start;
    grid-template-rows: auto auto auto;
}

.cad-review-workbench-body > .cad-review-evidence-pane .cad-review-canvas {
    height: clamp(420px, 62vh, 680px);
}

.cad-review-evidence-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
}

.cad-review-evidence-copy {
    display: grid;
    gap: 3px;
}

.cad-review-evidence-copy strong {
    color: #142b4a;
    font-size: 14px;
}

.cad-review-evidence-copy span,
.cad-review-evidence-pane figcaption {
    color: #6c7c90;
    font-size: 11px;
}

.cad-review-media-sources {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-top: 7px;
}

.cad-review-media-sources button {
    padding: 4px 9px;
    border: 1px solid #b8c8d9;
    border-radius: 999px;
    background: #fff;
    color: #38536f;
    font-size: 11px;
    font-weight: 700;
}

.cad-review-media-sources button.active {
    border-color: #16857b;
    background: #e7f6f3;
    color: #0b655e;
}

.cad-review-zoom {
    display: flex;
    gap: 5px;
}

.cad-review-zoom button {
    min-width: 34px;
    height: 30px;
    padding: 0 9px;
    border: 1px solid #c5d2df;
    border-radius: 6px;
    background: #fff;
    color: #264667;
    font-size: 12px;
}

.cad-review-canvas {
    position: relative;
    display: grid;
    overflow: hidden;
    min-height: 420px;
    place-items: center;
    border: 1px solid #bfcddd;
    border-radius: 8px;
    background:
        linear-gradient(rgba(195, 208, 222, 0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(195, 208, 222, 0.18) 1px, transparent 1px),
        #fff;
    background-size: 24px 24px;
}

.cad-review-canvas svg {
    width: 100%;
    height: 100%;
    max-height: 560px;
}

.cad-review-media-image {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 680px;
    object-fit: contain;
    transform-origin: center;
    transition: transform 120ms ease-out;
    background: #050709;
    user-select: none;
}

.cad-review-media-image.source-standard_design {
    /* Official standard drawings are plotted on white paper.  Their SVGs may
       keep that paper transparent, so the review surface must supply it. */
    background: #fff;
}

.cad-review-canvas.is-pannable {
    cursor: grab;
    touch-action: none;
}

.cad-review-canvas.is-dragging {
    cursor: grabbing;
}

.cad-review-canvas.is-dragging .cad-review-media-image {
    transition: none;
}

.cad-review-canvas svg > g:first-of-type line {
    stroke: #718096;
    stroke-width: 1;
}

.cad-review-canvas svg > g:nth-of-type(2) text {
    fill: #344054;
    font-family: "Microsoft YaHei", "Segoe UI", sans-serif;
}

.cad-review-target-marker circle {
    fill: rgba(220, 38, 38, 0.06);
    stroke: #dc2626;
    stroke-width: 2.5;
}

.cad-review-target-marker line {
    stroke: #dc2626;
    stroke-width: 1.5;
}

.cad-review-preview-missing {
    max-width: 340px;
    padding: 24px;
    color: #6c7c90;
    line-height: 1.7;
    text-align: center;
}

.cad-review-evidence-pane figcaption {
    padding-top: 10px;
    line-height: 1.5;
}

.cad-review-decision-pane {
    display: grid;
    align-content: start;
    gap: 16px;
    min-width: 0;
    padding: 20px;
    background: #fff;
}

.cad-review-question {
    display: grid;
    gap: 6px;
    padding-bottom: 2px;
}

.cad-review-question h4,
.cad-review-question p,
.cad-review-detected h5,
.cad-review-candidates h5,
.cad-review-comparison h5 {
    margin: 0;
}

.cad-review-question h4 {
    color: #102e55;
    font-size: 19px;
    line-height: 1.45;
}

.cad-review-question p {
    color: #6c7c90;
    font-size: 12px;
    line-height: 1.65;
}

.cad-review-route-details,
.cad-review-route-options {
    display: grid;
    gap: 5px;
    padding: 9px 10px;
    border: 1px solid #d8e5f0;
    border-radius: 7px;
    background: #f7fafc;
}

.cad-review-route-details strong,
.cad-review-route-options strong {
    color: #31597f;
    font-size: 11px;
}

.cad-review-route-details ol {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-left: 21px;
    color: #52697e;
    font-size: 11px;
    line-height: 1.55;
}

.cad-review-route-details small,
.cad-review-route-options span {
    color: #718096;
    font-size: 10px;
    line-height: 1.5;
}

.cad-review-detected,
.cad-review-candidates,
.cad-review-comparison {
    display: grid;
    gap: 9px;
}

.cad-review-detected h5,
.cad-review-candidates h5,
.cad-review-comparison h5 {
    color: #344054;
    font-size: 12px;
}

.cad-review-fact-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.cad-review-fact-list span {
    padding: 5px 9px;
    border: 1px solid #c9d9ea;
    border-radius: 999px;
    background: #f3f8fd;
    color: #1f4c78;
    font-size: 11px;
}

.cad-reconciliation-options {
    display: grid;
    gap: 8px;
}

.cad-reconciliation-option {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    gap: 10px;
    align-items: center;
    padding: 10px;
    border: 1px solid #d8e1eb;
    border-radius: 8px;
    background: #fbfcfe;
}

.cad-reconciliation-option:has(input:checked) {
    border-color: #2e6ea8;
    background: #f0f7ff;
    box-shadow: inset 3px 0 0 #2e6ea8;
}

.cad-reconciliation-owner {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    cursor: pointer;
}

.cad-reconciliation-owner input {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: 3px;
    padding: 0;
}

.cad-review-candidate-copy,
.cad-reconciliation-owner span,
.cad-reconciliation-owner small {
    display: block;
    overflow-wrap: anywhere;
}

.cad-review-candidate-copy {
    min-width: 0;
}

.cad-review-candidate-copy strong {
    display: block;
    color: #193b5f;
    font-size: 12px;
    font-weight: 700;
}

.cad-reconciliation-owner small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.55;
}

.cad-review-match-tag {
    display: inline-flex;
    width: fit-content;
    margin-top: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #dff4eb;
    color: #147052;
    font-size: 10px;
    font-weight: 700;
}

.cad-reconciliation-disposition {
    display: grid;
    gap: 4px;
    color: var(--muted);
    font-size: 10px;
}

.cad-reconciliation-disposition[hidden] {
    display: none;
}

.cad-reconciliation-disposition select {
    width: 100%;
}

.cad-review-other-options {
    border-top: 1px solid #e5ebf1;
}

.cad-review-other-options summary,
.cad-review-technical summary {
    padding: 9px 0;
    color: #31597f;
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
}

.cad-review-compare-table {
    overflow: hidden;
    border: 1px solid #dce5ee;
    border-radius: 8px;
}

.cad-review-compare-row {
    display: grid;
    grid-template-columns: 0.75fr 1fr 1fr;
    border-top: 1px solid #e8edf2;
}

.cad-review-compare-row:first-child {
    border-top: 0;
}

.cad-review-compare-row span {
    min-width: 0;
    padding: 8px 9px;
    border-left: 1px solid #e8edf2;
    color: #344054;
    font-size: 10px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.cad-review-compare-row span:first-child {
    border-left: 0;
    font-weight: 700;
}

.cad-review-compare-row.is-header {
    background: #f1f5f9;
}

.cad-review-compare-row.is-header span {
    color: #65758a;
    font-weight: 700;
}

.cad-review-compare-row.is-match span:nth-child(n + 2) {
    background: #f2fbf7;
    color: #146c4f;
}

.cad-review-compare-row.is-different span:nth-child(n + 2) {
    background: #fff4f2;
    color: #a43327;
}

.cad-review-difference-note {
    margin: 0;
    padding: 8px 10px;
    border-left: 3px solid #d97706;
    background: #fff8e8;
    color: #8a5107;
    font-size: 11px;
    line-height: 1.55;
}

.cad-review-comparison-empty {
    padding: 12px;
    border: 1px dashed #cbd5e1;
    border-radius: 8px;
    color: #6c7c90;
    font-size: 11px;
    line-height: 1.6;
}

.cad-reconciliation-reason {
    display: grid;
    gap: 5px;
    color: #344054;
    font-size: 12px;
    font-weight: 700;
}

.cad-reconciliation-reason textarea {
    width: 100%;
    min-height: 58px;
    resize: vertical;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font: inherit;
    font-weight: 400;
}

.cad-reconciliation-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.cad-reconciliation-actions button {
    min-height: 36px;
    padding: 8px 14px;
}

.cad-reconciliation-actions .secondary {
    border: 1px solid #c5d2df;
    background: #fff;
    color: #31597f;
}

.cad-review-technical {
    border-top: 1px solid #e5ebf1;
}

.cad-review-technical p {
    margin: 0 0 8px;
    color: #77879a;
    font-size: 10px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.cad-review-deferred {
    opacity: 0.76;
}

.cad-reconciliation-blockers {
    padding: 9px 10px;
    border: 1px solid #efb3ae;
    border-radius: 6px;
    background: #fff1f0;
    color: var(--danger);
    font-size: 12px;
}

.cad-file-picker input {
    padding: 5px 8px;
}

.cad-hint {
    align-self: center;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.45;
}

.cad-overview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.cad-overview-card {
    min-width: 0;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.86);
}

.cad-review-queue-card,
.cad-diagnostic-card {
    grid-column: 1 / -1;
}

.cad-card-head {
    gap: 10px;
    margin-bottom: 9px;
    color: #344054;
    font-size: 12px;
}

.cad-card-head > div {
    display: grid;
    gap: 3px;
}

.cad-card-head small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 400;
    line-height: 1.4;
}

.cad-card-head > span {
    min-width: 24px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #eef3f8;
    color: var(--muted);
    text-align: center;
}

.cad-review-queue-card .cad-card-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: 440px;
}

.cad-review-queue-card .cad-draft-item {
    min-height: 108px;
    align-items: flex-start;
    padding: 12px;
    border-color: #d6e1eb;
    background: #fff;
}

.cad-review-queue-card .cad-list-main strong {
    color: #173b60;
    font-size: 14px;
}

.cad-list-main .cad-inline-ready {
    margin-top: 5px;
    color: #147052;
}

.cad-list-main .cad-location-state {
    margin-top: 6px;
    padding-left: 17px;
    color: #60758b;
    font-size: 10px;
    position: relative;
}

.cad-list-main .cad-location-state::before {
    position: absolute;
    left: 0;
    content: "◎";
    color: #71869a;
}

.cad-list-main .cad-location-state.is-ready {
    color: #176b55;
}

.cad-list-main .cad-location-state.is-ready::before {
    color: #0f8a69;
}

.cad-diagnostic-card {
    padding: 0;
    background: #f8fafc;
}

.cad-diagnostic-card > summary {
    margin: 0;
    padding: 11px;
    cursor: pointer;
    list-style: none;
}

.cad-diagnostic-card > summary::-webkit-details-marker {
    display: none;
}

.cad-diagnostic-card > summary::after {
    content: "展开";
    color: #31597f;
    font-size: 10px;
    font-weight: 700;
}

.cad-diagnostic-card[open] > summary::after {
    content: "收起";
}

.cad-diagnostic-card > .cad-card-list {
    max-height: 420px;
    padding: 0 11px 11px;
}

.cad-diagnostic-intro {
    display: grid;
    gap: 4px;
    padding: 10px 12px;
    border-left: 3px solid #5d7ea3;
    border-radius: 5px;
    background: #eef4fa;
}

.cad-diagnostic-intro strong {
    color: #274b70;
    font-size: 12px;
}

.cad-diagnostic-intro span {
    color: #60758b;
    font-size: 11px;
    line-height: 1.55;
}

.cad-diagnostic-group {
    overflow: hidden;
    border: 1px solid #dce4ec;
    border-radius: 6px;
    background: #fff;
}

.cad-diagnostic-group > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 12px;
    cursor: pointer;
}

.cad-diagnostic-group > summary > span {
    display: grid;
    gap: 3px;
}

.cad-diagnostic-group > summary strong {
    color: #344d68;
    font-size: 12px;
}

.cad-diagnostic-group > summary small,
.cad-diagnostic-group > summary em {
    color: #718096;
    font-size: 10px;
    font-style: normal;
    line-height: 1.45;
}

.cad-diagnostic-group > summary em {
    flex: 0 0 auto;
}

.cad-diagnostic-review-list {
    display: grid;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid #e5ebf1;
    background: #fff;
}

.cad-diagnostic-review-item {
    display: grid;
    gap: 7px;
    padding: 10px;
    border: 1px solid #d9e5ef;
    border-left: 3px solid #2b7a68;
    border-radius: 6px;
    background: #f8fbfa;
}

.cad-diagnostic-review-item > strong {
    color: #23485a;
    font-size: 12px;
}

.cad-diagnostic-review-reasons,
.cad-diagnostic-review-locations ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-left: 18px;
    color: #52697e;
    font-size: 11px;
    line-height: 1.55;
}

.cad-diagnostic-review-locations {
    display: grid;
    gap: 4px;
    padding-top: 7px;
    border-top: 1px dashed #cbd8e3;
}

.cad-diagnostic-review-locations b {
    color: #31597f;
    font-size: 10px;
}

.cad-diagnostic-review-omitted {
    margin: 0;
    color: #718096;
    font-size: 10px;
}

.cad-diagnostic-technical {
    display: grid;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid #e5ebf1;
    background: #fbfcfd;
}

.cad-diagnostic-technical p {
    margin: 0;
    color: #53677d;
    font-size: 11px;
    line-height: 1.55;
}

.cad-diagnostic-technical summary {
    color: #31597f;
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
}

.cad-diagnostic-technical ul {
    display: grid;
    gap: 5px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.cad-diagnostic-technical li {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: #718096;
    font-size: 10px;
}

.cad-diagnostic-technical code {
    overflow-wrap: anywhere;
}

.cad-card-list {
    display: grid;
    gap: 7px;
    max-height: 250px;
    overflow: auto;
}

.cad-list-item {
    min-width: 0;
    gap: 8px;
    padding: 9px;
    border: 1px solid #e1e7ef;
    border-radius: 6px;
    background: #fbfcfe;
}

.cad-list-main {
    min-width: 0;
}

.cad-list-main strong,
.cad-list-main span {
    display: block;
    overflow-wrap: anywhere;
}

.cad-list-main strong {
    margin-bottom: 3px;
    font-size: 12px;
}

.cad-list-main span {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.45;
}

.cad-list-main .cad-inline-warning {
    color: var(--amber);
}

.cad-issue-item {
    flex-wrap: wrap;
}

.cad-issue-explanation {
    display: grid;
    flex: 1 0 100%;
    gap: 5px;
    padding: 8px 9px;
    border-left: 3px solid #8aa4e8;
    border-radius: 5px;
    background: #f7f9ff;
}

.cad-issue-explanation[hidden] {
    display: none;
}

.cad-issue-explanation span,
.cad-issue-explanation p {
    margin: 0;
    color: #5a6575;
    font-size: 10px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.cad-issue-explanation p {
    color: #344054;
    font-size: 11px;
}

.cad-list-actions {
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 5px;
}

.cad-list-actions button {
    height: 28px;
    padding: 0 8px;
    font-size: 11px;
}

.cad-status {
    min-height: 22px;
    border-color: #d7dee7;
    background: #f8fafc;
    color: #475467;
}

.cad-status.pending {
    border-color: #b7caf9;
    background: #eef4ff;
    color: var(--indigo);
}

.cad-status.review {
    border-color: #f2cc8f;
    background: #fff8e8;
    color: #955b08;
}

.cad-status.success {
    border-color: #a6d8c5;
    background: #ecfdf3;
    color: #067647;
}

.cad-status.blocked {
    border-color: #f2b8b5;
    background: #fff1f0;
    color: var(--danger);
}

.cad-review-panel {
    display: grid;
    gap: 12px;
    overflow: hidden;
    padding: 0;
    border: 1px solid #a9c2ee;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 16px 40px rgba(29, 65, 101, 0.1);
    scroll-margin-top: 16px;
}

.cad-review-head {
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #dce5ee;
}

.cad-review-head h3 {
    margin: 2px 0 0;
    font-size: 17px;
}

.cad-review-member-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 18px;
    border-bottom: 1px solid #dce5ee;
    background: #f7faff;
}

.cad-review-member-copy {
    display: grid;
    gap: 3px;
}

.cad-review-member-copy strong {
    color: #183b56;
    font-size: 12px;
}

.cad-review-member-copy span {
    color: var(--muted);
    font-size: 11px;
}

.cad-review-member-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.cad-review-member-button {
    display: grid;
    gap: 2px;
    min-width: 112px;
    padding: 7px 10px;
    border-color: #b7c9dc;
    background: #fff;
    color: #24445f;
    text-align: left;
}

.cad-review-member-button.active {
    border-color: #167f73;
    background: #eaf8f5;
    box-shadow: 0 0 0 2px rgba(22, 127, 115, 0.12);
}

.cad-review-member-button.is-blocked {
    border-color: #eab4b1;
}

.cad-review-member-state {
    color: var(--muted);
    font-size: 10px;
    font-weight: 600;
}

.cad-review-member-state.blocked {
    color: var(--danger);
}

.cad-review-member-state.success {
    color: #067647;
}

.cad-parameter-review-layout {
    display: grid;
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
    min-height: 680px;
}

#cadReviewEvidence {
    align-self: start;
    min-width: 0;
    background: #f8fafc;
}

#cadReviewEvidence .cad-review-evidence-pane {
    height: auto;
    min-height: 680px;
    box-sizing: border-box;
    grid-template-rows: auto auto auto;
}

#cadReviewEvidence .cad-review-canvas {
    height: clamp(420px, 62vh, 680px);
}

.cad-parameter-review-content {
    display: grid;
    align-content: start;
    gap: 13px;
    min-width: 0;
    padding: 18px;
}

.cad-review-instruction {
    display: grid;
    gap: 4px;
    padding: 10px 12px;
    border-left: 3px solid #2e6ea8;
    border-radius: 5px;
    background: #f2f7fc;
}

.cad-review-instruction strong {
    color: #1e4b75;
    font-size: 12px;
}

.cad-review-instruction span {
    color: #60758b;
    font-size: 11px;
    line-height: 1.55;
}

.cad-parameter-review-content > .cad-review-detected {
    display: grid;
    gap: 7px;
}

.cad-parameter-review-content > .cad-review-detected h5 {
    margin: 0;
    color: #344054;
    font-size: 12px;
}

.cad-review-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.cad-review-summary > div {
    min-width: 0;
    padding: 9px;
    border: 1px solid #dce5f5;
    border-radius: 6px;
    background: #fff;
}

.cad-review-summary span,
.cad-review-summary strong {
    display: block;
    overflow-wrap: anywhere;
}

.cad-review-summary span {
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 11px;
}

.cad-review-summary strong {
    font-size: 12px;
}

.cad-blockers,
.cad-decision-notice {
    padding: 10px 12px;
    border: 1px solid #f2cc8f;
    border-radius: 6px;
    background: #fff8e8;
    color: #784b07;
    font-size: 12px;
}

.cad-blockers ul {
    margin: 6px 0 0;
    padding-left: 18px;
}

.cad-blockers p {
    margin: 5px 0 0;
    color: #8a5b17;
    font-size: 11px;
}

.cad-blockers li {
    margin-top: 3px;
    line-height: 1.5;
}

.cad-decision-notice {
    display: grid;
    gap: 8px;
}

.cad-decision-notice > div {
    display: grid;
    gap: 3px;
}

.cad-decision-notice span,
.cad-decision-notice > div span {
    color: #7a5b2a;
}

.cad-release-download {
    margin-left: auto;
    color: #155eef;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.cad-release-download:hover {
    text-decoration: underline;
}

.cad-review-form,
.cad-review-fields {
    display: grid;
    gap: 12px;
}

.cad-route-review-list,
.cad-route-assignment-list {
    display: grid;
    gap: 8px;
}

.cad-route-review-row,
.cad-route-assignment {
    display: grid;
    grid-template-columns: minmax(76px, auto) minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--panel);
}

.cad-route-review-row span,
.cad-route-assignment small {
    min-width: 0;
    color: var(--muted);
    overflow-wrap: anywhere;
}

.cad-route-review-row em,
.cad-route-assignment em {
    color: var(--ink);
    font-style: normal;
    font-variant-numeric: tabular-nums;
}

.cad-route-mode-options {
    display: grid;
    gap: 10px;
    margin: 12px 0;
}

.cad-route-mode-options label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 2px 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
}

.cad-route-mode-options label > span {
    grid-column: 2;
    color: var(--muted);
}

.cad-route-conflict-source-help {
    margin: 0 0 10px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.6;
}

.cad-route-conflict-source {
    display: grid;
    gap: 8px;
    margin: 0;
}

.cad-route-conflict-source > div {
    display: grid;
    grid-template-columns: minmax(88px, auto) minmax(0, 1fr);
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--panel);
}

.cad-route-conflict-source dt {
    color: var(--muted);
    font-size: 12px;
}

.cad-route-conflict-source dd {
    min-width: 0;
    margin: 0;
    color: var(--ink);
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.cad-route-conflict-unsupported {
    display: grid;
    gap: 4px;
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #efc27b;
    border-left: 4px solid #c97913;
    border-radius: 10px;
    background: #fff8eb;
    color: #74420c;
}

.cad-route-conflict-unsupported p {
    margin: 0;
    line-height: 1.6;
}

.cad-route-conflict-lengths {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.cad-route-conflict-lengths > div {
    display: grid;
    gap: 4px;
    padding: 12px;
    border: 1px solid #bfd5ef;
    border-radius: 10px;
    background: #f5f9ff;
}

.cad-route-conflict-lengths span {
    color: var(--muted);
    font-size: 12px;
}

.cad-route-conflict-lengths strong {
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

.cad-route-conflict-list,
.cad-route-conflict-options {
    display: grid;
    gap: 10px;
}

.cad-route-conflict-guide {
    display: grid;
    gap: 6px;
    padding: 10px 12px;
    border-left: 3px solid #2e6ea8;
    border-radius: 8px;
    background: #f5f9ff;
    color: #334e68;
    font-size: 12px;
    line-height: 1.55;
}

.cad-route-conflict-item {
    min-width: 0;
    margin: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--panel);
}

.cad-route-conflict-item legend {
    padding: 0 6px;
    color: var(--ink);
    font-weight: 800;
}

.cad-route-conflict-item > p {
    margin: 0 0 10px;
    color: var(--muted);
    line-height: 1.6;
}

.cad-route-conflict-options label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.cad-route-conflict-options label:has(input:checked) {
    border-color: #2e6ea8;
    box-shadow: 0 0 0 2px rgba(46, 110, 168, 0.12);
}

.cad-route-conflict-options input {
    margin: 0;
    accent-color: #2e6ea8;
}

.cad-route-conflict-options span {
    color: var(--ink);
    font-weight: 700;
    line-height: 1.45;
}

.cad-route-assignment {
    grid-template-columns: minmax(0, 1fr) auto minmax(130px, auto);
}

.cad-route-assignment > span {
    display: grid;
    gap: 2px;
}

.cad-review-group {
    display: grid;
    gap: 8px;
}

.cad-structure-draft {
    border-left: 3px solid #2e6ea8;
}

.cad-site-condition-list {
    color: #526b82;
    font-size: 11px;
    line-height: 1.55;
}

.cad-group-help {
    margin: -2px 0 2px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}

.cad-shared-structure-fields {
    padding: 12px;
    border: 1px solid #b9d3ee;
    border-radius: 8px;
    background: #f5f9fd;
}

.cad-site-condition-fields {
    padding-top: 4px;
}

.cad-site-member {
    display: grid;
    gap: 9px;
    padding: 12px;
    border: 1px solid #e1e7ef;
    border-radius: 8px;
    background: #fff;
}

.cad-site-member-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.cad-site-member-head strong {
    color: #183b56;
    font-size: 12px;
}

.cad-site-member-head span {
    color: var(--muted);
    font-size: 11px;
    text-align: right;
}

.cad-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.cad-review-field {
    min-width: 0;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
}

.cad-review-field.needs-entry {
    border-color: #dfa94e;
    box-shadow: inset 3px 0 0 #dfa94e;
}

.cad-field-label {
    display: flex;
    align-items: baseline;
    gap: 5px;
}

.cad-field-label strong {
    font-size: 12px;
}

.cad-field-label small {
    margin-left: auto;
    color: var(--muted);
    font-size: 10px;
}

.cad-source-badge {
    padding: 2px 6px;
    border-radius: 999px;
    font-weight: 700;
    white-space: nowrap;
}

.cad-source-badge.cad,
.cad-source-badge.cad_evidence {
    background: #e8f4ff;
    color: #17649b;
}

.cad-source-badge.standard_candidate {
    background: #e6f5f1;
    color: #146c5a;
}

.cad-source-badge.web_formula_derived {
    background: #eee9ff;
    color: #5d46a8;
}

.cad-source-badge.default,
.cad-source-badge.web_default {
    background: #f1f3f5;
    color: #617181;
}

.cad-source-badge.manual,
.cad-source-badge.human_required {
    background: #fff0d5;
    color: #96600b;
}

.cad-source-badge.confirmed {
    background: #dff4eb;
    color: #147052;
}

.cad-field-source {
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.cad-review-field.needs-entry .cad-field-source {
    color: #955b08;
    font-weight: 700;
}

.cad-review-field details {
    color: var(--muted);
    font-size: 11px;
}

.cad-review-field summary {
    cursor: pointer;
}

.cad-review-field details p {
    margin: 5px 0 0;
    overflow-wrap: anywhere;
    line-height: 1.5;
}

.cad-reason textarea {
    width: 100%;
    min-height: 72px;
    resize: vertical;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font: inherit;
}

.cad-review-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.cad-parameter-review-content > .cad-review-technical {
    margin-top: 2px;
}

#cadReviewTechnical {
    display: grid;
    gap: 4px;
    padding-bottom: 4px;
}

#cadReviewTechnical p {
    margin: 0;
}

#cadReviewTechnical code {
    overflow-wrap: anywhere;
}

.panel-title {
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 700;
}

.workspace-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 66px;
    padding: 0 4px;
}

.workspace-head h2,
.table-head h3 {
    margin: 2px 0 0;
    font-size: 20px;
}

.eyebrow {
    color: var(--muted);
    font-size: 12px;
}

.stack,
.search-row,
.calc-form {
    display: grid;
    gap: 10px;
}

.workbench-head {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) auto;
    gap: 16px;
    align-items: end;
    margin-bottom: 12px;
}

.module-select {
    max-width: 460px;
}

.module-group-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 6px 0 8px;
}

.module-group-tab {
    height: 28px;
    padding: 0 10px;
    border-color: #cbd5e1;
    background: #fff;
    color: #344054;
    font-size: 12px;
}

.module-group-tab.active {
    border-color: var(--teal);
    background: #e6f5f2;
    color: var(--teal);
}

.recent-modules {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    color: var(--muted);
    font-size: 12px;
}

.recent-module-chip {
    height: 26px;
    padding: 0 9px;
    border-color: #d7dee7;
    background: #f8fbff;
    color: #344054;
    font-size: 12px;
}

.toggle-line {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    color: #344054;
    font-size: 13px;
}

.toggle-line input,
td input[type="checkbox"] {
    width: 16px;
    height: 16px;
    padding: 0;
}

.param-sections {
    display: grid;
    gap: 10px;
}

.param-group {
    display: grid;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.group-title {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(128px, 1fr));
    gap: 10px;
}

.form-actions {
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    padding-top: 4px;
}

.batch-input-panel {
    display: grid;
    gap: 8px;
    padding: 10px;
    border: 1px dashed #b8c2cc;
    border-radius: 6px;
    background: #fbfcfe;
}

.batch-input-panel textarea {
    width: 100%;
    min-height: 92px;
    resize: vertical;
    padding: 8px 10px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    font: inherit;
}

.batch-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.batch-message,
.field-help {
    color: var(--muted);
    font-size: 12px;
}

label {
    display: grid;
    gap: 5px;
    color: #344054;
    font-size: 12px;
}

label span {
    display: flex;
    align-items: baseline;
    gap: 5px;
    min-width: 0;
}

label em {
    color: var(--muted);
    font-style: normal;
    font-size: 11px;
}

.field-help {
    line-height: 1.4;
}

input,
select {
    height: 34px;
    width: 100%;
    padding: 7px 9px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: var(--ink);
    background: #fff;
    font: inherit;
}

button {
    height: 34px;
    padding: 0 13px;
    border: 1px solid var(--teal);
    border-radius: 6px;
    background: var(--teal);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease, box-shadow 140ms ease;
}

button:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 5px 12px rgba(15, 118, 110, 0.18);
}

button:disabled {
    cursor: not-allowed;
    border-color: #98a2b3;
    background: #98a2b3;
}

.list,
.section-list,
.summary-list,
.material-list {
    display: grid;
    gap: 8px;
}

.list-item,
.section-item,
.material-item {
    width: 100%;
    height: auto;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fbfcfe;
    color: var(--ink);
    cursor: pointer;
    text-align: left;
    transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.list-item:hover,
.section-item:hover,
.material-item:hover {
    border-color: #a9b8cb;
    background: #fff;
    box-shadow: var(--soft-shadow);
}

.list-item,
.section-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
}

.item-main {
    min-width: 0;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--ink);
    font-weight: 400;
    text-align: left;
    white-space: normal;
    transition: color 140ms ease;
}

.item-main:hover {
    color: var(--indigo);
    box-shadow: none;
}

.item-main:hover:not(:disabled) {
    transform: none;
}

.danger-button {
    height: 30px;
    padding: 0 10px;
    border-color: #f0b8b2;
    background: #fff5f5;
    color: var(--danger);
}

.danger-button:hover {
    border-color: var(--danger);
    box-shadow: 0 5px 12px rgba(180, 35, 24, 0.12);
}

.secondary-button {
    border-color: #cbd5e1;
    background: #fff;
    color: #344054;
}

.secondary-button:hover {
    border-color: #98a2b3;
    box-shadow: 0 5px 12px rgba(52, 64, 84, 0.1);
}

.empty-card {
    padding: 10px;
    border: 1px dashed #b8c2cc;
    border-radius: 6px;
    color: var(--muted);
    text-align: center;
}

.list-item.active,
.section-item.active {
    border-color: var(--indigo);
    box-shadow: inset 3px 0 0 var(--indigo);
}

.list-item strong,
.section-item strong,
.material-item strong,
.ledger-table strong {
    display: block;
    margin-bottom: 4px;
}

.list-item span,
.section-item span,
.material-item span,
.summary-list span,
.ledger-table span {
    color: var(--muted);
    font-size: 12px;
}

.split {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.table-band {
    min-width: 0;
}

.table-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.table-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.table-head strong,
.metric strong {
    color: var(--amber);
    font-size: 22px;
}

.table-wrap {
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 6px;
}

table {
    width: 100%;
    border-collapse: collapse;
}

.cost-table {
    min-width: 1160px;
}

.quantity-table {
    min-width: 860px;
}

.ledger-table {
    min-width: 280px;
}

th,
td {
    padding: 8px 9px;
    border-bottom: 1px solid var(--line);
    text-align: left;
    vertical-align: middle;
}

th {
    background: #eef3f8;
    color: #344054;
    font-size: 12px;
}

td input,
td select {
    height: 30px;
}

.price-input {
    width: 84px;
}

.remark-input {
    width: 92px;
}

.action-cell {
    display: flex;
    align-items: center;
    gap: 6px;
}

.action-cell button,
.quantity-table button {
    height: 30px;
    padding: 0 10px;
}

tr.selected {
    background: #fff7e6;
}

tbody tr {
    transition: background-color 120ms ease;
}

tbody tr:hover {
    background: #f8fbff;
}

tbody tr.selected:hover {
    background: #fff2cc;
}

.empty-row td {
    color: var(--muted);
    text-align: center;
}

.metric {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--line);
}

.search-row {
    grid-template-columns: 1fr 72px;
    margin-bottom: 10px;
}

.active-item {
    margin-bottom: 10px;
    padding: 8px;
    border: 1px dashed #b8c2cc;
    border-radius: 6px;
    color: var(--muted);
}

.active-item.material-apply-target {
    border-color: var(--teal);
    background: #f0fdfa;
    color: var(--ink);
}

.material-meta {
    display: block;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.material-apply-target {
    box-shadow: inset 3px 0 0 var(--teal);
}

.compact-wrap {
    max-height: 220px;
}

.hidden {
    display: none !important;
}

.muted {
    opacity: 0.55;
}

.danger {
    color: var(--danger);
}

.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 20;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(16, 32, 51, 0.28);
    animation: fade-in 140ms ease;
}

.confirm-dialog {
    width: min(420px, 100%);
    display: grid;
    gap: 18px;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--shadow);
    animation: rise-in 160ms ease;
}

.confirm-title {
    margin-bottom: 8px;
    font-size: 16px;
    font-weight: 700;
}

.confirm-message {
    margin: 0;
    color: #475467;
    line-height: 1.65;
}

.confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

@keyframes fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes rise-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (min-width: 901px) and (max-width: 1439px) {
    body {
        min-width: 0;
    }

    .layout {
        grid-template-columns: 240px minmax(0, 1fr);
    }

    .layout > .side:last-child {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: stretch;
    }
}

@media (max-width: 900px) {
    body {
        min-width: 0;
    }

    .layout {
        grid-template-columns: 1fr;
    }

    .workbench-head,
    .field-grid,
    .cad-overview-grid,
    .cad-review-grid,
    .cad-review-summary,
    .cad-agent-facts,
    .cad-agent-item-list,
    .cad-upload-form {
        grid-template-columns: 1fr;
    }

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

    .cad-workflow > *,
    .cad-agent-panel > *,
    .cad-steps > *,
    .cad-upload-form > * {
        min-width: 0;
    }

    .cad-workflow-head {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-workflow-head > button {
        width: 100%;
    }

    .cad-plus-summary {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-plus-action {
        justify-content: center;
        width: 100%;
    }

    .cad-agent-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .cad-agent-guidance-head {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-agent-goal-head,
    .cad-agent-goal-foot {
        align-items: flex-start;
        flex-direction: column;
    }

    .cad-agent-guidance-head button {
        width: 100%;
    }

    .cad-agent-note-foot {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-agent-note-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cad-agent-note-actions button {
        width: 100%;
    }

    .cad-agent-clarification-head,
    .cad-agent-clarification-foot {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-agent-clarification-head small {
        text-align: left;
    }

    .cad-agent-clarification-foot button {
        width: 100%;
    }

    .cad-seal-panel,
    .cad-seal-actions,
    .cad-reconciliation-head,
    .cad-review-member-nav {
        align-items: stretch;
        flex-direction: column;
    }

    .cad-review-member-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch;
    }

    .cad-review-workbench-body {
        grid-template-columns: 1fr;
    }

    .cad-review-queue-card .cad-card-list,
    .cad-parameter-review-layout {
        grid-template-columns: 1fr;
    }

    .cad-parameter-review-layout {
        min-height: 0;
    }

    #cadReviewEvidence .cad-review-evidence-pane {
        min-height: 520px;
    }

    #cadReviewEvidence .cad-review-canvas {
        height: 420px;
    }

    .cad-parameter-review-content {
        padding: 14px;
    }

    .cad-review-evidence-pane {
        min-height: 520px;
        border-right: 0;
        border-bottom: 1px solid #dce5ee;
    }

    .cad-review-evidence-head {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .cad-review-canvas {
        min-height: 360px;
    }

    .cad-review-workbench-body > .cad-review-evidence-pane .cad-review-canvas {
        height: 420px;
    }

    .cad-reconciliation-option {
        grid-template-columns: 1fr;
    }

    .cad-reconciliation-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cad-diagnostic-group > summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .cad-agent-controls {
        width: 100%;
        justify-content: flex-start;
    }

    .cad-agent-controls select {
        flex: 1 1 160px;
        max-width: none;
    }

    .topbar {
        height: auto;
        min-height: 64px;
        gap: 14px;
        padding: 10px 16px;
    }

    .topbar h1 {
        font-size: 17px;
    }

    .auth-user {
        max-width: 112px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .auth-card {
        padding: 24px;
    }

    .auth-toolbar {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .access-backdrop,
    .governance-backdrop {
        padding: 0;
    }

    .access-dialog,
    .governance-dialog {
        width: 100%;
        height: 100vh;
        max-height: none;
        padding: 18px;
        border: 0;
        border-radius: 0;
    }

    .access-dialog-head,
    .governance-head,
    .governance-detail-head {
        align-items: flex-start;
    }

    .access-dialog-head h2,
    .governance-head h2 {
        font-size: 21px;
    }

    .access-grid,
    .access-form-row,
    .access-identity,
    .access-search,
    .governance-filters,
    .governance-summary,
    .governance-grid,
    .governance-metrics {
        grid-template-columns: 1fr;
    }

    .governance-summary p {
        text-align: left;
    }

    .governance-grid {
        min-height: 0;
    }

    .governance-list {
        max-height: 360px;
    }

    .access-project-section {
        grid-column: auto;
    }

    .access-list-row,
    .access-member-actions {
        align-items: stretch;
    }

    .access-list-row {
        flex-direction: column;
    }

    .access-member-actions {
        flex-wrap: wrap;
    }

    .access-member-actions select {
        flex: 1 1 130px;
        width: auto;
    }
}

/* 右侧项目助手：桌面端只覆盖原有 320px 辅助栏，不挤压主工作区。 */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cad-chat-launcher {
    position: fixed;
    z-index: 44;
    right: 24px;
    bottom: 28px;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 54px;
    height: 54px;
    padding: 0 17px 0 9px;
    border: 0;
    border-radius: 999px;
    background: #102033;
    color: #fff;
    box-shadow: 0 14px 34px rgba(16, 32, 51, 0.28);
}

.auth-pending > .cad-chat-launcher,
.auth-pending > .cad-chat-panel {
    visibility: hidden;
}

.cad-chat-launcher:hover {
    background: #18334f;
    transform: translateY(-2px);
}

.cad-chat-launcher.hidden {
    display: none;
}

.cad-chat-launcher-icon,
.cad-chat-avatar,
.cad-chat-empty > span {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--teal);
    color: #fff;
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.cad-chat-launcher-label {
    font-size: 13px;
    font-weight: 700;
}

.cad-chat-panel {
    position: fixed;
    z-index: 45;
    top: 80px;
    right: 16px;
    bottom: 16px;
    width: 320px;
    display: flex;
    visibility: hidden;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 24px 60px rgba(16, 32, 51, 0.24);
    opacity: 0;
    transform: translateX(calc(100% + 24px));
    transition: opacity 180ms ease, transform 220ms ease, visibility 220ms;
}

.cad-chat-panel.open {
    visibility: visible;
    opacity: 1;
    transform: translateX(0);
}

.cad-chat-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 68px;
    padding: 12px 12px 12px 14px;
    border-bottom: 1px solid #e3e8ef;
    background: #102033;
    color: #fff;
}

.cad-chat-identity {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cad-chat-identity strong,
.cad-chat-identity span {
    display: block;
}

.cad-chat-identity strong {
    font-size: 14px;
}

.cad-chat-identity span {
    margin-top: 3px;
    color: #cbd5e1;
    font-size: 10px;
}

.cad-chat-identity i {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 3px;
    border-radius: 50%;
    background: #4ade80;
}

.cad-chat-close {
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #d8e2ee;
    font-size: 24px;
    line-height: 1;
}

.cad-chat-close:hover {
    background: rgba(255, 255, 255, 0.1);
}

.cad-chat-safety {
    padding: 8px 12px;
    border-bottom: 1px solid #e5eaf0;
    background: #f7fafc;
    color: #667085;
    font-size: 10px;
    line-height: 1.5;
}

.cad-chat-project-picker {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border-bottom: 1px solid #e5eaf0;
    background: #fff;
}

.cad-chat-project-picker > span {
    color: #667085;
    font-size: 10px;
    font-weight: 700;
}

.cad-chat-project-picker select {
    width: 100%;
    height: 32px;
    min-width: 0;
    padding: 0 28px 0 8px;
    border: 1px solid #cbd5e1;
    border-radius: 7px;
    background: #f8fafc;
    color: #344054;
    font-size: 11px;
}

.cad-chat-messages {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 12px 18px;
    background: #f4f6f8;
    scroll-behavior: smooth;
}

.cad-chat-notice {
    margin: 0 0 14px;
    color: #7b8794;
    font-size: 10px;
    line-height: 1.5;
    text-align: center;
}

.cad-chat-empty {
    display: grid;
    justify-items: center;
    gap: 7px;
    padding: 24px 12px;
    color: #667085;
    text-align: center;
}

.cad-chat-empty strong {
    color: #344054;
    font-size: 13px;
}

.cad-chat-empty p {
    max-width: 230px;
    margin: 0;
    font-size: 11px;
    line-height: 1.6;
}

.cad-chat-panel .cad-agent-note-list {
    display: grid;
    gap: 7px;
}

.cad-chat-panel .cad-chat-message-user {
    width: fit-content;
    max-width: 86%;
    margin-left: auto;
    border-color: #b9d8d4;
    border-radius: 10px 10px 3px 10px;
    background: #dff2ef;
}

.cad-chat-panel .cad-chat-message-ai {
    width: fit-content;
    max-width: 92%;
    margin-right: auto;
    border-color: #d9e1ef;
    border-radius: 10px 10px 10px 3px;
    background: #fff;
}

.cad-chat-panel .cad-chat-message-ai::before {
    content: "AI";
    display: inline-grid;
    width: 22px;
    height: 22px;
    place-items: center;
    margin-bottom: 7px;
    border-radius: 50%;
    background: var(--teal);
    color: #fff;
    font-size: 8px;
    font-weight: 700;
}

.cad-chat-panel .cad-chat-message-ai small {
    color: #667085;
}

.cad-chat-evidence {
    width: 100%;
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px solid #e5eaf0;
}

.cad-chat-evidence > summary {
    cursor: pointer;
    color: #287d75;
    font-size: 10px;
    font-weight: 700;
    list-style-position: inside;
}

.cad-chat-evidence-body {
    display: grid;
    gap: 7px;
    margin-top: 8px;
}

.cad-chat-evidence-source {
    padding: 6px 7px;
    border-radius: 6px;
    background: #ecfdf8;
    color: #287d75;
    font-size: 9px;
    line-height: 1.45;
}

.cad-chat-evidence-source.stale {
    background: #fff4e5;
    color: #9a5b13;
}

.cad-chat-evidence-source.review,
.cad-chat-evidence-source.pending {
    background: #f2f4f7;
    color: #667085;
}

.cad-chat-evidence-heading {
    color: #344054;
    font-size: 10px;
}

.cad-chat-citation-list {
    display: grid;
    gap: 5px;
}

.cad-chat-citation {
    padding: 7px;
    border: 1px solid #e1e7ef;
    border-radius: 7px;
    background: #f8fafc;
}

.cad-chat-citation-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.cad-chat-citation-top strong {
    color: #344054;
    font-size: 9px;
    overflow-wrap: anywhere;
}

.cad-chat-citation-top span {
    flex: 0 0 auto;
    color: #102033;
    font-size: 10px;
    font-weight: 800;
}

.cad-chat-citation p {
    margin: 4px 0 0;
    color: #667085;
    font-size: 9px;
    line-height: 1.45;
}

.cad-chat-citation-partial {
    display: block;
    margin-top: 5px;
    color: #9a5b13 !important;
}

.cad-chat-unknown-list,
.cad-chat-tool-trace {
    display: grid;
    gap: 4px;
    margin: 0;
    padding-left: 17px;
    color: #667085;
    font-size: 9px;
    line-height: 1.45;
}

.cad-chat-unknown-list {
    color: #9a5b13;
}

.cad-chat-follow-ups {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.cad-chat-follow-ups button {
    min-height: 26px;
    padding: 4px 7px;
    border: 1px solid #b9d8d4;
    border-radius: 999px;
    background: #f0fdfa;
    color: #287d75;
    font-size: 9px;
    line-height: 1.3;
}

.cad-chat-panel .cad-chat-message-ai.has-proposal {
    width: 92%;
}

.cad-chat-proposal {
    display: grid;
    gap: 8px;
    width: 100%;
    margin-top: 9px;
    padding: 9px;
    border: 1px solid #cfd8e3;
    border-left-width: 3px;
    border-radius: 8px;
    background: #f8fafc;
}

.cad-chat-proposal.pending {
    border-left-color: #c88719;
    background: #fffaf0;
}

.cad-chat-proposal.applying {
    border-left-color: #3566c8;
    background: #f2f6ff;
}

.cad-chat-proposal.applied {
    border-left-color: #16805f;
    background: #eefbf6;
}

.cad-chat-proposal.stale {
    border-left-color: #8b5e24;
    background: #fff4e5;
}

.cad-chat-proposal.failed {
    border-left-color: #b42318;
    background: #fff4f3;
}

.cad-chat-proposal-head,
.cad-chat-proposal-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cad-chat-proposal-title,
.cad-chat-proposal-summary,
.cad-chat-proposal-effect {
    margin: 0;
    overflow-wrap: anywhere;
}

.cad-chat-proposal-title {
    color: #25364a;
    font-size: 11px;
}

.cad-chat-proposal-summary,
.cad-chat-proposal-effect {
    color: #667085;
    font-size: 9px;
    line-height: 1.5;
}

.cad-chat-proposal-state {
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 999px;
    background: #fff;
    color: #667085;
    font-size: 9px;
    font-weight: 700;
}

.cad-chat-proposal-actions {
    justify-content: flex-end;
}

.cad-chat-proposal-actions button {
    min-height: 28px;
    padding: 4px 8px;
    font-size: 9px;
    line-height: 1.3;
}

.cad-chat-evidence-empty {
    margin: 0;
    color: #667085;
    font-size: 9px;
    line-height: 1.5;
}

.cad-chat-panel .cad-agent-note-form {
    display: grid;
    flex: 0 0 auto;
    gap: 8px;
    padding: 10px 12px 12px;
    border-top: 1px solid #dce3eb;
    background: #fff;
}

.cad-chat-panel .cad-agent-note-form textarea {
    width: 100%;
    min-height: 40px;
    max-height: 112px;
    resize: none;
    padding: 9px 10px;
    border-radius: 8px;
    background: #f8fafc;
}

.cad-chat-panel .cad-agent-note-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cad-chat-panel .cad-agent-note-foot small {
    color: var(--muted);
    font-size: 9px;
}

.cad-chat-panel .cad-agent-note-actions {
    display: flex;
    gap: 6px;
}

.cad-chat-record,
.cad-chat-send,
.cad-chat-retry {
    min-height: 30px;
    padding: 0 10px;
    border-radius: 7px;
    font-size: 11px;
}

.cad-chat-record,
.cad-chat-retry {
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #475467;
}

.cad-chat-send {
    border-color: var(--teal);
    background: var(--teal);
    color: #fff;
}

.cad-chat-panel .cad-agent-guidance {
    display: grid;
    gap: 8px;
    width: fit-content;
    max-width: 92%;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #d9e1ef;
    border-radius: 10px 10px 10px 3px;
    background: #fff;
}

.cad-chat-panel .cad-agent-guidance-head strong::before {
    content: "AI";
    display: inline-grid;
    width: 24px;
    height: 24px;
    place-items: center;
    margin-right: 7px;
    border-radius: 50%;
    background: var(--teal);
    color: #fff;
    font-size: 8px;
}

.cad-chat-panel .cad-agent-guidance-result {
    border-left-color: var(--teal);
    background: #f7fafc;
}

.cad-chat-panel .cad-chat-answer-source {
    display: block;
    padding-top: 5px;
    border-top: 1px solid #e3e8ef;
    color: #667085;
    line-height: 1.5;
}

.cad-chat-panel .cad-chat-answer-source[hidden] {
    display: none;
}

.agent-proposal-open {
    overflow: hidden;
}

.agent-proposal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(16, 32, 51, 0.48);
    animation: fade-in 140ms ease;
}

.agent-proposal-dialog {
    display: grid;
    gap: 15px;
    width: min(480px, 100%);
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    padding: 20px;
    border: 1px solid #b8c9d8;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 28px 72px rgba(16, 32, 51, 0.34);
    animation: rise-in 160ms ease;
}

.agent-proposal-dialog:focus {
    outline: none;
}

.agent-proposal-dialog-head h2,
.agent-proposal-dialog-head p,
.agent-proposal-review-section h3,
.agent-proposal-review-section p,
.agent-proposal-review-section ul,
.agent-proposal-status {
    margin: 0;
}

.agent-proposal-dialog-head h2 {
    margin-top: 3px;
    color: #213449;
    font-size: 18px;
}

.agent-proposal-dialog-head p {
    margin-top: 7px;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
}

.agent-proposal-review {
    display: grid;
    gap: 9px;
}

.agent-proposal-review-section {
    display: grid;
    gap: 6px;
    padding: 10px 11px;
    border: 1px solid #e0e6ed;
    border-radius: 8px;
    background: #f8fafc;
}

.agent-proposal-review-section h3 {
    color: #344054;
    font-size: 12px;
}

.agent-proposal-review-section p,
.agent-proposal-review-section li {
    color: #667085;
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.agent-proposal-fact-list {
    display: grid;
    gap: 5px;
}

.agent-proposal-facts {
    border-left: 3px solid #3566c8;
    background: #f2f6ff;
}

.agent-proposal-impact {
    border-left: 3px solid #16805f;
    background: #f1fbf7;
}

.agent-proposal-exclusions {
    border-left: 3px solid #c88719;
    background: #fffaf0;
}

.agent-proposal-exclusions ul {
    display: grid;
    gap: 4px;
    padding-left: 18px;
}

.agent-proposal-status {
    padding: 8px 10px;
    border-radius: 7px;
    background: #f2f4f7;
    color: #667085;
    font-size: 11px;
    line-height: 1.5;
}

.agent-proposal-status.pending {
    background: #fff4e5;
    color: #8b5e24;
}

.agent-proposal-status.applying {
    background: #eef4ff;
    color: #315fb0;
}

.agent-proposal-status.applied {
    background: #ecfdf3;
    color: #067647;
}

.agent-proposal-status.stale {
    background: #fff4e5;
    color: #9a5b13;
}

.agent-proposal-status.failed {
    background: #fff1f0;
    color: #b42318;
}

.agent-proposal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.agent-proposal-actions button {
    min-width: 88px;
}

@media (max-width: 900px) {
    .cad-chat-launcher {
        right: 16px;
        bottom: 18px;
        width: 54px;
        padding: 0;
        justify-content: center;
    }

    .cad-chat-launcher-label {
        display: none;
    }

    .cad-chat-panel {
        top: 72px;
        right: 8px;
        bottom: 8px;
        width: min(390px, calc(100vw - 16px));
    }

    .agent-proposal-backdrop {
        padding: 12px;
    }

    .agent-proposal-dialog {
        max-height: calc(100vh - 24px);
        padding: 16px;
    }
}

.mcp-token-form { grid-template-columns: minmax(160px, 2fr) minmax(140px, 1fr) 100px auto; align-items: end; }
.mcp-secret-row { display: flex; gap: 10px; margin-bottom: 16px; }
.mcp-secret-row input { flex: 1; min-width: 0; padding: 10px; border: 1px solid #d0d5dd; border-radius: 8px; }
.mcp-token-list { display: grid; gap: 8px; }
.mcp-token-item { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px; border: 1px solid #e4e7ec; border-radius: 8px; }
.mcp-token-item div { min-width: 0; overflow-wrap: anywhere; }
.mcp-token-item p { font-size: 12px; color: #667085; margin: 4px 0 0; }
.mcp-token-item button { flex-shrink: 0; }
@media (max-width: 720px) {
    .mcp-token-form { grid-template-columns: 1fr; }
    .mcp-secret-row { flex-direction: column; }
}
.auth-toolbar a.topbar-button{text-decoration:none;display:inline-flex;align-items:center;font-size:13px}
.mcp-simple-connect{padding:18px;border:1px solid #d7e6e2;border-radius:10px;background:#fbfdfc;margin:16px 0}
.mcp-simple-connect>label:first-child{display:block;font-size:14px;font-weight:650;margin-bottom:8px}
.mcp-simple-actions,.mcp-address-row{display:flex;align-items:stretch;gap:10px}
.mcp-simple-actions select{flex:1;min-width:0;font:inherit;font-size:14px;height:auto;min-height:44px;line-height:1.4;padding:10px 12px;border:1px solid #bccdc8;border-radius:7px;background:#fff}
.mcp-simple-actions button{min-width:170px;min-height:44px;height:auto;font-size:14px;line-height:1.4;padding:11px 18px}
.mcp-address-row input{flex:1;min-width:0;font-size:13px!important}
.mcp-address-row button{flex-shrink:0}
.mcp-document-links{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0;font-size:13px}
.mcp-document-links a{color:#087c72;text-underline-offset:3px}
.mcp-authorization-history{margin-top:14px;padding-top:12px;border-top:1px solid #e0e7e5}
.mcp-authorization-history summary{font-size:13px;color:#5b6c69;cursor:pointer;margin-bottom:12px}
@media(max-width:600px){.mcp-simple-connect{padding:14px}.mcp-simple-actions{flex-direction:column}.mcp-simple-actions button{width:100%}.mcp-document-links{gap:10px 18px}.mcp-connection-steps{grid-template-columns:1fr!important;gap:10px!important}.mcp-connection-steps li{padding:0!important}.mcp-address-row{gap:6px}.mcp-address-row button{padding:8px}.mcp-token-item{align-items:flex-start;gap:10px}}
