:root {
  color-scheme: light;
  --bg: #f5f7fa;
  --surface: #f9fafc;
  --surface-strong: #ffffff;
  --surface-muted: #eef1f5;
  --ink: #182033;
  --ink-secondary: #59657a;
  --ink-tertiary: #8590a2;
  --line: #dce2ea;
  --line-strong: #c4cdd9;
  --accent: #355dcc;
  --accent-strong: #2849a8;
  --accent-soft: #e9eefc;
  --positive: #2f735c;
  --positive-soft: #e4f0eb;
  --warning: #9b681c;
  --warning-soft: #f5ead6;
  --danger: #b23c34;
  --danger-soft: #f6e3e1;
  --sidebar: #151b2a;
  --sidebar-muted: #9ea8ba;
  --sidebar-line: #293247;
  --panel-dark: #202838;
  --panel-dark-2: #2a3447;
  --shadow: 0 14px 34px rgba(31, 45, 70, 0.09);
  --radius-card: 12px;
  --radius-control: 8px;
  --radius-pill: 999px;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
}

[data-theme="dark"] {
  color-scheme: dark;
  --bg: #16181b;
  --surface: #1e2125;
  --surface-strong: #24282d;
  --surface-muted: #2a2e34;
  --ink: #f1f2f3;
  --ink-secondary: #b4b9c0;
  --ink-tertiary: #858b94;
  --line: #343940;
  --line-strong: #454b54;
  --accent: #7893f5;
  --accent-strong: #93a9ff;
  --accent-soft: #283554;
  --positive: #6db294;
  --positive-soft: #253c33;
  --warning: #d4a65f;
  --warning-soft: #403522;
  --danger: #e27a72;
  --danger-soft: #452928;
  --sidebar: #101522;
  --sidebar-muted: #959ba4;
  --sidebar-line: #2a3244;
  --panel-dark: #202838;
  --panel-dark-2: #2a3447;
  --shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

* { box-sizing: border-box; }
html { width: 100%; max-width: 100%; overflow-x: hidden; background: var(--bg); }
body { width: 100%; max-width: 100%; margin: 0; min-width: 320px; min-height: 100dvh; overflow-x: hidden; background: var(--bg); color: var(--ink); }
button, input { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 45%, transparent); outline-offset: 2px; }

.app-shell { width: 100%; max-width: 100vw; min-height: 100dvh; display: grid; grid-template-columns: 228px minmax(0, 1fr); overflow-x: hidden; }
.sidebar { position: sticky; top: 0; height: 100dvh; display: flex; flex-direction: column; padding: 22px 14px 18px; color: #f2f4f8; background: var(--sidebar); border-right: 1px solid var(--sidebar-line); }
.brand { display: flex; align-items: center; gap: 12px; margin: 0 8px 34px; color: inherit; text-decoration: none; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 18px; letter-spacing: 0.04em; }
.brand small { margin-top: 2px; color: var(--sidebar-muted); font-size: 11px; }
.brand-mark { width: 35px; height: 35px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: end; gap: 3px; padding: 8px; background: var(--accent); border-radius: 10px; }
.brand-mark span { display: block; background: #fff; border-radius: 2px; }
.brand-mark span:nth-child(1) { height: 45%; }.brand-mark span:nth-child(2) { height: 100%; }.brand-mark span:nth-child(3) { height: 70%; }
.main-nav { display: grid; gap: 4px; }
.nav-item, .project-switcher, .theme-toggle, .reset-demo { width: 100%; border: 0; cursor: pointer; }
.nav-item { min-height: 44px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; padding: 0 12px; border-radius: var(--radius-control); color: var(--sidebar-muted); background: transparent; text-align: left; font-size: 14px; transition: background 160ms ease, color 160ms ease, transform 100ms ease; }
.nav-item:hover { background: #202a3d; color: #fff; }
.nav-item:active { transform: translateY(1px); }
.nav-item.active { background: #27334b; color: #fff; }
.nav-glyph { font-size: 18px; text-align: center; }
.nav-count { min-width: 25px; padding: 3px 7px; border-radius: var(--radius-pill); background: #293449; color: #c9d1de; text-align: center; font: 600 11px ui-monospace, SFMono-Regular, Menlo, monospace; }
.nav-item.active .nav-count { background: #3b4963; color: #fff; }
.nav-count.risk-count { color: #ffc4ad; }
.sidebar-section { margin-top: 34px; }
.sidebar-label { margin: 0 12px 10px; color: #747b86; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.project-switcher { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 10px; padding: 11px; color: #fff; background: #1b2334; border: 1px solid var(--sidebar-line); border-radius: var(--radius-card); text-align: left; }
.project-logo { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; background: #dbe4ff; color: #294aa8; font-weight: 800; }
.project-meta { min-width: 0; }.project-meta strong, .project-meta small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.project-meta strong { font-size: 13px; }.project-meta small { margin-top: 3px; color: var(--sidebar-muted); font-size: 10px; }
.sidebar-footer { margin-top: auto; display: grid; gap: 4px; }
.theme-toggle, .reset-demo { display: flex; gap: 10px; align-items: center; padding: 10px 12px; color: var(--sidebar-muted); background: transparent; border-radius: var(--radius-control); text-align: left; }
.theme-toggle:hover, .reset-demo:hover { color: #fff; background: #272b31; }
.reset-demo:active, .theme-toggle:active { transform: translateY(1px); }
.reset-demo + .theme-toggle { margin-bottom: 10px; }
.user-card { display: flex; align-items: center; gap: 10px; padding: 14px 8px 0; border-top: 1px solid var(--sidebar-line); }
.avatar { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; color: #222; background: #d8dde4; border-radius: 50%; font-size: 12px; font-weight: 700; }
.user-card strong, .user-card small { display: block; }.user-card strong { font-size: 12px; }.user-card small { margin-top: 3px; color: var(--sidebar-muted); font-size: 10px; }

.workspace { width: 100%; min-width: 0; max-width: 100vw; overflow-x: hidden; }
.topbar { height: 68px; position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; padding: 0 30px; background: color-mix(in srgb, var(--bg) 92%, transparent); border-bottom: 1px solid var(--line); backdrop-filter: blur(14px); }
.breadcrumb { display: flex; align-items: center; gap: 9px; color: var(--ink-tertiary); font-size: 13px; }.breadcrumb strong { color: var(--ink); font-weight: 650; }
.top-actions, .toolbar-actions { display: flex; align-items: center; gap: 10px; }
.analysis-state { display: flex; align-items: center; gap: 7px; margin-right: 5px; padding: 7px 9px; color: var(--ink-secondary); background: transparent; border: 0; border-radius: 7px; cursor: pointer; font-size: 12px; }.analysis-state:hover { color: var(--ink); background: var(--surface-muted); }
.state-indicator { width: 7px; height: 7px; border-radius: 50%; background: var(--positive); box-shadow: 0 0 0 3px var(--positive-soft); }
.button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; padding: 0 15px; border: 1px solid transparent; border-radius: var(--radius-control); cursor: pointer; white-space: nowrap; font-weight: 650; font-size: 13px; transition: transform 100ms ease, background 150ms ease, border-color 150ms ease; }
.button:active, .icon-button:active { transform: translateY(1px); }
.button.primary { color: #fff; background: var(--accent); border-color: var(--accent); }.button.primary:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
.button.secondary { color: var(--ink); background: var(--surface-strong); border-color: var(--line-strong); }.button.secondary:hover { background: var(--surface-muted); }
.button.danger { color: #fff; background: var(--danger); border-color: var(--danger); }.button.danger:hover { background: color-mix(in srgb, var(--danger) 84%, #111); border-color: color-mix(in srgb, var(--danger) 84%, #111); }
.button.inverse { color: #1d2025; background: #f6f7f8; }.button.inverse:hover { background: #e6e9ec; }
.button.large { min-height: 44px; padding-inline: 20px; }.button.full { width: 100%; }
.mobile-menu { display: none; border: 0; background: transparent; font-size: 20px; cursor: pointer; }

.view-container { max-width: 1480px; margin: 0 auto; padding: 34px 36px 60px; }
.view { display: none; }.view.active { display: block; }
.kicker { margin: 0 0 10px; color: var(--accent); font-size: 12px; font-weight: 750; letter-spacing: .08em; }
.overview-heading, .page-heading, .requirements-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 30px; }
h1, h2, p { margin-top: 0; }
h1 { max-width: 720px; margin-bottom: 12px; font-size: clamp(29px, 3vw, 40px); line-height: 1.12; letter-spacing: -0.035em; }
.overview-heading p:last-child, .page-heading > div > p:last-child { max-width: 720px; margin: 0; color: var(--ink-secondary); line-height: 1.7; font-size: 14px; }
.signal-grid { display: grid; grid-template-columns: 1.45fr .85fr .85fr; gap: 15px; }
.signal-card { min-height: 210px; display: flex; flex-direction: column; padding: 22px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }
.signal-card.dominant { color: #f5f6f7; background: var(--panel-dark); border-color: var(--panel-dark); box-shadow: var(--shadow); }
[data-theme="dark"] .signal-card.dominant { background: var(--panel-dark-2); border-color: #3d4960; }
.signal-card.risk-card { border-top: 3px solid var(--accent); }
.signal-card-head { display: flex; justify-content: space-between; gap: 15px; color: var(--ink-tertiary); font-size: 12px; }.dominant .signal-card-head { color: #aeb4bd; }
.metric { margin-top: 20px; font: 500 48px/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: -.08em; }
.signal-card > p { margin: 8px 0 0; color: var(--ink-secondary); font-size: 13px; }.dominant > p { color: #c1c6cc; }
.coverage-list { display: flex; gap: 23px; margin-top: auto; padding-top: 20px; color: #aeb4bd; border-top: 1px solid #3c4148; font-size: 11px; }.coverage-list b { margin-right: 3px; color: #fff; font: 650 13px ui-monospace, monospace; }
.confidence { display: inline-flex; padding: 4px 8px; border-radius: var(--radius-pill); font-size: 10px; font-weight: 700; }.confidence.high { color: #9fd8c0; background: #2f483e; }.confidence.medium { color: var(--warning); background: var(--warning-soft); }
.text-link { padding: 0; border: 0; color: var(--ink); background: transparent; cursor: pointer; font-size: 12px; font-weight: 700; text-align: left; }.text-link span { margin-left: 4px; }.text-link:hover { color: var(--accent); }.signal-card .text-link { margin-top: auto; }
.overview-columns { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .7fr); gap: 15px; margin-top: 15px; }
.plain-section, .brief-panel { padding: 24px; border-radius: var(--radius-card); }.plain-section { background: var(--surface-strong); border: 1px solid var(--line); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; margin-bottom: 18px; }.section-heading h2 { margin-bottom: 5px; font-size: 17px; letter-spacing: -.015em; }.section-heading p { margin: 0; color: var(--ink-secondary); font-size: 12px; line-height: 1.55; }
.attention-list { display: grid; }.attention-item { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 72px; padding: 12px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }.attention-item:last-child { border-bottom: 0; }.attention-item:hover .attention-copy strong { color: var(--accent); }
.severity { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; font-size: 11px; font-weight: 800; }.severity.high { color: var(--danger); background: var(--danger-soft); }.severity.medium { color: var(--warning); background: var(--warning-soft); }
.attention-copy strong, .attention-copy small { display: block; }.attention-copy strong { margin-bottom: 5px; font-size: 13px; }.attention-copy small { color: var(--ink-secondary); font-size: 11px; }.source-pair { color: var(--ink-tertiary); font-size: 11px; }
.brief-panel { color: #f4f5f6; background: var(--panel-dark); }.brief-head { display: flex; justify-content: space-between; color: #abb1b9; font-size: 11px; }.brief-panel h2 { max-width: 360px; margin: 42px 0 12px; font-size: 25px; line-height: 1.25; letter-spacing: -.03em; }.brief-panel > p { color: #c1c6cc; font-size: 12px; line-height: 1.75; }.brief-meta { display: flex; gap: 22px; margin: 24px 0; color: #abb1b9; font-size: 11px; }.brief-meta b { color: #fff; font: 650 14px ui-monospace, monospace; }
.overview-story { margin-top: 18px; padding: 26px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }.story-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }.story-head h2 { margin-bottom: 7px; font-size: 22px; letter-spacing: -.025em; }.story-head p:last-child { max-width: 720px; margin: 0; color: var(--ink-secondary); font-size: 12px; line-height: 1.65; }.story-head > span { padding: 6px 9px; color: var(--accent); background: var(--accent-soft); border-radius: var(--radius-pill); font: 700 8px ui-monospace, monospace; white-space: nowrap; }
.business-chain { display: grid; grid-template-columns: 1fr auto 1.25fr auto 1fr auto 1fr; align-items: stretch; gap: 10px; margin-top: 22px; }.business-chain > div { min-height: 105px; display: flex; flex-direction: column; justify-content: center; padding: 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }.business-chain > div.chain-agent { color: #f4f5f6; background: var(--panel-dark); border-color: var(--panel-dark); }.business-chain > b { align-self: center; color: var(--ink-tertiary); font-size: 9px; font-weight: 650; white-space: nowrap; }.business-chain span, .business-chain strong, .business-chain small { display: block; }.business-chain span { color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.business-chain strong { margin: 12px 0 5px; font-size: 12px; line-height: 1.4; }.business-chain small { color: var(--ink-secondary); font-size: 9px; line-height: 1.5; }.chain-agent span, .chain-agent small { color: #aeb4bc; }
.definition-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 10px; overflow: hidden; background: var(--surface-muted); border-radius: 10px; }.definition-strip > div { min-height: 66px; padding: 14px 16px; border-right: 1px solid var(--line); }.definition-strip > div:last-child { border-right: 0; }.definition-strip span, .definition-strip strong { display: block; }.definition-strip span { margin-bottom: 7px; color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .06em; }.definition-strip strong { font-size: 11px; }
.diagnosis-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 20px; }.diagnosis-grid article { min-height: 190px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }.diagnosis-grid article.problem-card { background: var(--accent-soft); border-color: color-mix(in srgb, var(--accent) 26%, var(--line)); }.diagnosis-grid article > span { color: var(--accent); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.diagnosis-grid h3 { margin: 28px 0 13px; font-size: 13px; line-height: 1.45; }.diagnosis-grid p, .diagnosis-grid li { color: var(--ink-secondary); font-size: 10px; line-height: 1.7; }.diagnosis-grid p { margin: 0; }.diagnosis-grid ul { margin: 0; padding-left: 16px; }
.role-allocation { display: grid; grid-template-columns: 1.05fr repeat(3, 1fr); margin-top: 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }.role-allocation > * { min-height: 118px; padding: 16px; border-right: 1px solid var(--line); }.role-allocation > *:last-child { border-right: 0; }.role-allocation header { color: #f4f5f6; background: var(--panel-dark); }.role-allocation div { background: var(--surface); }.role-allocation span, .role-allocation strong, .role-allocation small { display: block; }.role-allocation span { color: var(--accent); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.role-allocation header span { color: #a9b9f8; }.role-allocation strong { margin: 18px 0 7px; font-size: 11px; line-height: 1.5; }.role-allocation small { color: var(--ink-secondary); font-size: 9px; line-height: 1.5; }.role-allocation header strong { color: #fff; font-size: 13px; }
.scope-boundary { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }.scope-boundary > div { padding: 14px 16px; background: var(--surface-muted); border-radius: 9px; }.scope-boundary span, .scope-boundary strong { display: block; }.scope-boundary span { margin-bottom: 7px; color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.scope-boundary strong { font-size: 10px; line-height: 1.55; }

.page-heading { align-items: flex-end; }.page-heading h1, .requirements-toolbar h1 { margin-bottom: 8px; }.upload-zone { min-height: 190px; display: grid; place-items: center; align-content: center; gap: 8px; background: var(--surface-strong); border: 1px dashed var(--line-strong); border-radius: var(--radius-card); cursor: pointer; transition: border 150ms ease, background 150ms ease; }.upload-zone:hover, .upload-zone.dragging { background: var(--accent-soft); border-color: var(--accent); }.upload-symbol { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 4px; color: var(--accent); background: var(--accent-soft); border-radius: 12px; font-size: 25px; }.upload-zone strong { font-size: 14px; }.upload-zone small { color: var(--ink-secondary); font-size: 11px; }
.analysis-progress { margin-top: 14px; padding: 18px 20px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }.progress-heading { display: flex; justify-content: space-between; font-size: 12px; }.progress-track { height: 5px; margin: 14px 0 9px; overflow: hidden; background: var(--surface-muted); border-radius: var(--radius-pill); }.progress-track span { display: block; width: 0; height: 100%; background: var(--accent); border-radius: inherit; transition: width 400ms cubic-bezier(.16,1,.3,1); }.analysis-progress p { margin: 0; color: var(--ink-secondary); font-size: 11px; }
.materials-heading { margin-top: 28px; }.last-sync { color: var(--ink-tertiary); font-size: 11px; }
.file-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }.file-card { min-height: 88px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 14px; padding: 16px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }.file-type { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; font: 750 10px ui-monospace, monospace; }.file-type.pdf { color: #b3473e; background: #f5e1df; }.file-type.xls { color: #31745a; background: #e2f0e9; }.file-type.mail { color: #4b668a; background: #e4eaf2; }.file-type.txt { color: #77613d; background: #eee8dc; }.file-info { min-width: 0; }.file-info strong, .file-info span { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.file-info strong { font-size: 12px; }.file-info span { margin-top: 6px; color: var(--ink-secondary); font-size: 10px; }.file-status { color: var(--positive); font-size: 10px; font-weight: 700; }

.requirements-toolbar { margin-bottom: 22px; }.requirements-toolbar h1 { font-size: 30px; }.workbench { min-height: calc(100dvh - 175px); display: grid; grid-template-columns: 210px minmax(360px, .95fr) minmax(330px, .82fr); overflow: hidden; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }
.filter-panel { padding: 16px 14px; background: var(--surface); border-right: 1px solid var(--line); }.search-box { height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 10px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-control); }.search-box span { color: var(--ink-tertiary); }.search-box input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 11px; }.search-box input::placeholder { color: var(--ink-tertiary); }
.filter-group { margin-top: 22px; }.filter-group > p { margin: 0 8px 8px; color: var(--ink-tertiary); font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.filter-item, .category-item { width: 100%; min-height: 34px; display: flex; justify-content: space-between; align-items: center; padding: 0 9px; border: 0; border-radius: 7px; color: var(--ink-secondary); background: transparent; cursor: pointer; font-size: 11px; text-align: left; }.filter-item:hover, .category-item:hover { color: var(--ink); background: var(--surface-muted); }.filter-item.active, .category-item.active { color: var(--ink); background: var(--accent-soft); font-weight: 700; }.filter-item b, .category-item b { font: 600 10px ui-monospace, monospace; }.danger-text { color: var(--danger); }
.requirements-list-panel { min-width: 0; border-right: 1px solid var(--line); }.list-head { height: 47px; display: flex; align-items: center; justify-content: space-between; padding: 0 17px; color: var(--ink-tertiary); border-bottom: 1px solid var(--line); font-size: 10px; }
.requirements-list { display: grid; }.requirement-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 15px 17px; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; text-align: left; }.requirement-row:hover { background: var(--surface); }.requirement-row.active { background: var(--accent-soft); box-shadow: inset 3px 0 var(--accent); }.requirement-main { min-width: 0; }.requirement-meta { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; color: var(--ink-tertiary); font: 600 9px ui-monospace, monospace; }.status-tag { padding: 3px 6px; border-radius: 5px; font-family: inherit; }.status-tag.conflict { color: var(--danger); background: var(--danger-soft); }.status-tag.missing { color: var(--warning); background: var(--warning-soft); }.status-tag.confirmed { color: var(--positive); background: var(--positive-soft); }.requirement-row strong { display: block; margin-bottom: 5px; font-size: 12px; line-height: 1.5; }.requirement-row p { margin: 0; color: var(--ink-secondary); font-size: 10px; line-height: 1.5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.evidence-count { color: var(--ink-tertiary); font-size: 10px; white-space: nowrap; }
.evidence-panel { min-width: 0; background: var(--surface); }.evidence-inner { padding: 20px; }.evidence-head { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 20px; }.evidence-head span { color: var(--ink-tertiary); font: 650 10px ui-monospace, monospace; }.evidence-title h2 { margin-bottom: 8px; font-size: 18px; line-height: 1.4; }.evidence-title p { margin: 0; color: var(--ink-secondary); font-size: 11px; line-height: 1.65; }.evidence-section { margin-top: 22px; }.evidence-section > span { display: block; margin-bottom: 9px; color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.source-card { margin-bottom: 9px; padding: 13px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: 10px; }.source-card header { display: flex; justify-content: space-between; gap: 15px; margin-bottom: 10px; color: var(--ink-secondary); font-size: 9px; }.source-card blockquote { margin: 0; color: var(--ink); font-size: 11px; line-height: 1.7; }.source-card mark { padding: 1px 2px; color: inherit; background: color-mix(in srgb, var(--accent) 24%, transparent); }.reasoning-box { padding: 13px; background: var(--warning-soft); border-left: 3px solid var(--warning); border-radius: 4px 10px 10px 4px; }.reasoning-box p { margin: 0; color: var(--ink); font-size: 10px; line-height: 1.7; }.evidence-actions { display: flex; gap: 8px; margin-top: 18px; }.evidence-actions .button { flex: 1; min-width: 0; padding-inline: 8px; font-size: 11px; }
.source-link { display: inline-block; margin-top: 10px; color: var(--accent); font-size: 9px; font-weight: 700; text-decoration: none; }.source-link:hover { text-decoration: underline; }.reasoning-box p + p { margin-top: 9px; padding-top: 9px; border-top: 1px solid color-mix(in srgb, var(--warning) 25%, transparent); }
.empty-state { padding: 80px 20px; text-align: center; }.empty-state strong { display: block; margin-bottom: 8px; }.empty-state p { color: var(--ink-secondary); font-size: 12px; }
.evidence-empty { min-height: 420px; display: grid; place-content: center; padding: 30px; text-align: center; }.evidence-empty strong { margin-bottom: 8px; font-size: 14px; }.evidence-empty p { max-width: 260px; margin: 0; color: var(--ink-secondary); font-size: 11px; line-height: 1.6; }

.actions-heading { margin-bottom: 24px; }.action-layout { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(330px, .7fr); gap: 18px; align-items: start; }.question-section { min-width: 0; }.question-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 25px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }.question-summary > div { min-height: 120px; display: flex; flex-direction: column; padding: 18px; border-right: 1px solid var(--line); }.question-summary > div:last-child { border-right: 0; }.question-summary span, .question-summary small { color: var(--ink-secondary); font-size: 10px; }.question-summary strong { margin: auto 0 4px; font: 500 31px ui-monospace, monospace; }.section-heading.compact { margin-bottom: 12px; }
.question-list { display: grid; gap: 9px; }.question-card { padding: 17px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }.question-card-head { display: flex; justify-content: space-between; gap: 20px; }.priority { min-width: 28px; height: 24px; display: grid; place-items: center; color: var(--danger); background: var(--danger-soft); border-radius: 6px; font: 750 9px ui-monospace, monospace; }.priority.p1 { color: var(--warning); background: var(--warning-soft); }.question-card h3 { flex: 1; margin: 2px 0 8px; font-size: 13px; line-height: 1.5; }.question-card p { margin: 0 0 0 38px; color: var(--ink-secondary); font-size: 10px; line-height: 1.65; }.question-footer { display: flex; justify-content: space-between; align-items: center; margin: 13px 0 0 38px; padding-top: 11px; border-top: 1px solid var(--line); color: var(--ink-tertiary); font-size: 9px; }.question-footer button { border: 0; color: var(--accent); background: transparent; cursor: pointer; font-weight: 700; }
.meeting-brief { position: sticky; top: 88px; padding: 26px; color: #f1f3f4; background: var(--panel-dark); border-radius: var(--radius-card); box-shadow: var(--shadow); }.brief-document-head { display: flex; justify-content: space-between; align-items: center; color: #aeb4bc; font-size: 10px; }.icon-button { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #454a51; border-radius: 8px; color: #fff; background: transparent; cursor: pointer; }.meeting-brief h2 { margin: 42px 0 26px; font-size: 27px; line-height: 1.27; letter-spacing: -.03em; }.brief-block { margin-top: 18px; padding-top: 16px; border-top: 1px solid #3d4249; }.brief-block > span { display: block; margin-bottom: 8px; color: #9299a2; font-size: 9px; letter-spacing: .07em; }.brief-block p, .brief-block li { color: #d1d5da; font-size: 10px; line-height: 1.7; }.brief-block p { margin: 0; }.brief-block ol { margin: 0; padding-left: 17px; }.brief-block.warning { padding: 13px; border: 0; border-radius: 9px; background: #49342d; }.brief-block.warning > span { color: #e3a58e; }.meeting-brief footer { margin-top: 26px; color: #7f8790; font-size: 9px; }

.evidence-level { padding: 8px 11px; color: var(--warning); background: var(--warning-soft); border-radius: var(--radius-control); font-size: 11px; font-weight: 700; }
.truth-banner { display: grid; grid-template-columns: 190px 1fr; align-items: center; gap: 18px; margin-bottom: 18px; padding: 17px 20px; color: var(--ink); background: var(--warning-soft); border-left: 4px solid var(--warning); border-radius: 5px var(--radius-card) var(--radius-card) 5px; }.truth-banner strong { font-size: 14px; }.truth-banner p { margin: 0; color: var(--ink-secondary); font-size: 11px; line-height: 1.6; }
.evaluation-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(290px, .55fr); gap: 16px; align-items: start; }.evaluation-main { padding: 23px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); }
.metric-table { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }.metric-row { min-height: 52px; display: grid; grid-template-columns: .9fr 1fr 1.2fr .8fr .72fr; align-items: center; gap: 10px; padding: 0 14px; border-bottom: 1px solid var(--line); font-size: 11px; }.metric-row:last-child { border-bottom: 0; }.metric-row strong { font-size: 11px; }.metric-row span { color: var(--ink-secondary); }.metric-row em { color: var(--warning); font-style: normal; }.metric-row b { color: var(--ink); font: 650 10px ui-monospace, monospace; }.metric-row.metric-header { min-height: 38px; color: var(--ink-tertiary); background: var(--surface-muted); font-size: 9px; font-weight: 700; }
.metric-disclaimer { margin: 10px 2px 0; color: var(--ink-tertiary); font-size: 10px; line-height: 1.5; }.evaluation-subhead { margin-top: 28px; }.baseline-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }.baseline-grid article { min-height: 150px; display: flex; flex-direction: column; padding: 15px; background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }.baseline-grid strong { font-size: 12px; }.baseline-grid p { color: var(--ink-secondary); font-size: 10px; line-height: 1.6; }.baseline-grid span { margin-top: auto; color: var(--accent); font-size: 9px; font-weight: 700; }
.reliability-panel { padding: 23px; color: #f1f3f4; background: var(--panel-dark); border-radius: var(--radius-card); box-shadow: var(--shadow); }.reliability-panel h2 { margin-bottom: 7px; font-size: 19px; }.reliability-panel > p { color: #adb3bb; font-size: 10px; line-height: 1.6; }.reliability-panel ul { margin: 20px 0 28px; padding-left: 18px; color: #d6d9dd; font-size: 10px; line-height: 2; }.reliability-panel h3 { margin: 0 0 13px; color: #aeb4bc; font-size: 10px; letter-spacing: .07em; }.failure-level { display: grid; grid-template-columns: 58px 1fr; gap: 10px; margin-bottom: 9px; padding: 10px; background: var(--panel-dark-2); border-radius: 8px; }.failure-level strong { color: #f0a68b; font-size: 10px; }.failure-level span { color: #c2c7cd; font-size: 9px; line-height: 1.5; }.reliability-panel .button { margin-top: 16px; }
.trajectory-rubric { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }.trajectory-rubric article { min-height: 128px; padding: 13px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; }.trajectory-rubric strong, .trajectory-rubric span { display: block; }.trajectory-rubric strong { color: var(--accent); font: 700 17px ui-monospace, monospace; }.trajectory-rubric span { margin: 7px 0 5px; font-size: 10px; font-weight: 750; }.trajectory-rubric p { margin: 0; color: var(--ink-secondary); font-size: 10px; line-height: 1.55; }
.trajectory-cases { display: grid; gap: 12px; margin-top: 20px; }.trajectory-case { overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }.trajectory-case > header { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 15px 17px; background: var(--surface-muted); }.trajectory-case > header span, .trajectory-case > header strong { display: block; }.trajectory-case > header span { margin-bottom: 4px; color: var(--ink-tertiary); font: 650 9px ui-monospace, monospace; }.trajectory-case > header strong { font-size: 12px; }.trajectory-case > header b { color: var(--positive); font: 700 13px ui-monospace, monospace; }.trajectory-case.failed > header b { color: var(--danger); }.case-input { display: grid; grid-template-columns: 48px 1fr; gap: 10px; padding: 13px 17px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }.case-input span, .case-columns span { color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.case-input p { margin: 0; color: var(--ink-secondary); font-size: 10px; line-height: 1.55; }.case-columns { display: grid; grid-template-columns: 1fr 1fr; }.case-columns > div { padding: 14px 17px; }.case-columns > div + div { border-left: 1px solid var(--line); }.case-columns ol { margin: 10px 0 0; padding-left: 18px; color: var(--ink-secondary); font-size: 10px; line-height: 1.9; }.case-columns mark { padding: 1px 3px; color: inherit; background: var(--positive-soft); }.case-columns .missed { color: var(--danger); text-decoration: line-through; }.trajectory-case > footer { padding: 12px 17px; color: var(--ink-secondary); background: var(--surface); border-top: 1px solid var(--line); font-size: 10px; line-height: 1.6; }.trajectory-case > footer strong { color: var(--ink); }
.agent-workflow-example { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }.agent-workflow-example > div { padding: 17px; background: var(--surface); }.agent-workflow-example > div + div { background: var(--accent-soft); border-left: 1px solid var(--line); }.agent-workflow-example span, .agent-workflow-example strong { display: block; }.agent-workflow-example span { color: var(--ink-tertiary); font-size: 9px; font-weight: 750; letter-spacing: .07em; }.agent-workflow-example strong { margin: 9px 0; font-size: 11px; }.agent-workflow-example p { margin: 0; color: var(--ink-secondary); font-size: 10px; line-height: 1.65; }
.usage-diagnostic { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(210px, .55fr); gap: 14px; align-items: start; }.usage-funnel { padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }.funnel-stage { width: var(--stage-width); min-height: 47px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; margin: 0 auto; padding: 0 14px; color: #fff; background: linear-gradient(100deg, #355dcc, #6f87e8); border-radius: 8px; box-shadow: 0 8px 18px rgba(53,93,204,.16); }.funnel-stage span { font: 750 15px ui-monospace, monospace; }.funnel-stage strong { font-size: 10px; line-height: 1.35; }.funnel-stage em { font-size: 9px; font-style: normal; opacity: .74; }.funnel-drop { display: grid; grid-template-columns: 48px 1fr; align-items: center; gap: 8px; width: 86%; min-height: 38px; margin: 0 auto; color: var(--ink-tertiary); font-size: 9px; line-height: 1.45; }.funnel-drop b { color: var(--warning); font: 700 9px ui-monospace, monospace; }.funnel-drop.critical { color: var(--ink-secondary); }.funnel-drop.critical b { color: var(--danger); }.funnel-method { padding: 17px; background: var(--panel-dark); border-radius: 12px; }.funnel-method > span { color: #aeb4bc; font-size: 9px; font-weight: 750; letter-spacing: .08em; }.funnel-method ol { margin: 15px 0; padding-left: 17px; color: #d6d9dd; font-size: 10px; line-height: 1.75; }.funnel-method li { margin-bottom: 8px; }.funnel-method strong { color: #fff; }.funnel-method p { margin: 0; padding-top: 12px; color: #e7a68e; border-top: 1px solid #3d4249; font-size: 10px; line-height: 1.55; }

.correction-panel { margin-top: 13px; padding: 13px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: 10px; }.correction-panel > span { display: block; margin-bottom: 9px; color: var(--ink-secondary); font-size: 10px; }.correction-options { display: flex; flex-wrap: wrap; gap: 6px; }.correction-options button { padding: 7px 9px; color: var(--ink-secondary); background: var(--surface); border: 1px solid var(--line); border-radius: 7px; cursor: pointer; font-size: 9px; }.correction-options button:hover { color: var(--accent); border-color: var(--accent); }.review-record { margin-top: 12px; padding: 10px; color: var(--positive); background: var(--positive-soft); border-radius: 8px; font-size: 10px; line-height: 1.55; }

.trace-overlay { position: fixed; z-index: 50; inset: 0; display: flex; justify-content: flex-end; background: rgba(13,15,18,.55); }.trace-overlay[hidden] { display: none; }.trace-drawer { width: min(520px, 100%); height: 100dvh; overflow-y: auto; padding: 27px; color: var(--ink); background: var(--surface-strong); box-shadow: -22px 0 65px rgba(0,0,0,.24); }.trace-drawer > header { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 18px; }.trace-drawer header span { color: var(--accent); font-size: 10px; font-weight: 750; }.trace-drawer header h2 { margin: 7px 0 0; font-size: 24px; }.trace-drawer .icon-button { color: var(--ink); border-color: var(--line); }.trace-intro { color: var(--ink-secondary); font-size: 11px; line-height: 1.7; }.trace-list { margin: 22px 0; padding: 0; list-style: none; }.trace-list li { display: grid; grid-template-columns: 28px 1fr auto; gap: 11px; padding: 14px 0; border-bottom: 1px solid var(--line); }.trace-list li > span { width: 25px; height: 25px; display: grid; place-items: center; color: var(--accent); background: var(--accent-soft); border-radius: 7px; font: 700 9px ui-monospace, monospace; }.trace-list strong { display: block; margin-bottom: 4px; font-size: 11px; }.trace-list p { margin: 0; color: var(--ink-secondary); font-size: 9px; line-height: 1.55; }.trace-list em { color: var(--positive); font-size: 9px; font-style: normal; }.security-note { padding: 15px; background: var(--surface-muted); border-radius: 10px; }.security-note strong { font-size: 11px; }.security-note p { margin: 6px 0 0; color: var(--ink-secondary); font-size: 9px; line-height: 1.65; }
.trace-definition { margin-top: 14px; padding: 13px; background: var(--accent-soft); border-radius: 9px; }.trace-definition strong { font-size: 10px; }.trace-definition p { margin: 5px 0 0; color: var(--ink-secondary); font-size: 9px; line-height: 1.6; }

.toast { position: fixed; z-index: 40; right: 24px; bottom: 24px; max-width: 320px; padding: 12px 16px; color: #fff; background: var(--panel-dark); border: 1px solid #454a51; border-radius: 10px; box-shadow: var(--shadow); font-size: 12px; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }.toast.show { opacity: 1; transform: translateY(0); }
.reset-dialog { width: min(440px, calc(100% - 32px)); padding: 0; color: var(--ink); background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.reset-dialog::backdrop { background: rgba(13,15,18,.66); backdrop-filter: blur(2px); }
.reset-dialog-content { padding: 27px; }
.reset-dialog-label { color: var(--danger); font-size: 10px; font-weight: 750; letter-spacing: .07em; }
.reset-dialog h2 { margin: 18px 0 9px; font-size: 23px; letter-spacing: -.025em; }
.reset-dialog p { margin: 0; color: var(--ink-secondary); font-size: 12px; line-height: 1.7; }
.reset-dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 25px; }
.tour-overlay { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(13, 15, 18, .72); }.tour-overlay[hidden] { display: none; }.tour-card { width: min(430px, 100%); padding: 27px; background: var(--surface-strong); border: 1px solid var(--line); border-radius: var(--radius-card); box-shadow: 0 30px 80px rgba(0,0,0,.28); }.tour-step { color: var(--accent); font-size: 10px; font-weight: 750; letter-spacing: .07em; }.tour-card h2 { margin: 20px 0 9px; font-size: 23px; }.tour-card p { color: var(--ink-secondary); font-size: 12px; line-height: 1.7; }.tour-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 24px; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }

@media (max-width: 1180px) {
  .workbench { grid-template-columns: 185px minmax(320px, 1fr); }
  .evidence-panel { grid-column: 1 / -1; border-top: 1px solid var(--line); }
  .evidence-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr); gap: 22px; }
  .evidence-head { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; z-index: 20; left: 0; transform: translateX(-100%); width: 248px; transition: transform 180ms ease; box-shadow: var(--shadow); }
  .sidebar.open { transform: translateX(0); }
  .mobile-menu { display: block; }
  .breadcrumb { margin-right: auto; margin-left: 12px; }
  .analysis-state, #tourButton { display: none; }
  .workspace, .view-container, .view { width: 100%; min-width: 0; max-width: 100vw; }
  .view-container { padding: 26px 18px 45px; }
  .signal-grid, .overview-columns, .action-layout { grid-template-columns: 1fr; }
  .business-chain { grid-template-columns: 1fr 1fr; }.business-chain > b { display: none; }.definition-strip, .role-allocation { grid-template-columns: 1fr 1fr; }.definition-strip > div, .role-allocation > * { border-bottom: 1px solid var(--line); }.diagnosis-grid { grid-template-columns: 1fr; }.diagnosis-grid article { min-height: 0; }
  .file-grid { grid-template-columns: 1fr; }
  .meeting-brief { position: static; }
  .evaluation-layout { grid-template-columns: 1fr; }
  .trajectory-rubric { grid-template-columns: 1fr 1fr; }
  .case-columns, .agent-workflow-example, .usage-diagnostic { grid-template-columns: 1fr; }
  .case-columns > div + div, .agent-workflow-example > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .metric-table { overflow-x: auto; }.metric-row { min-width: 650px; }
  .workbench { grid-template-columns: 1fr; }
  .filter-panel { border-right: 0; border-bottom: 1px solid var(--line); }
  .filter-group { display: flex; gap: 6px; overflow-x: auto; margin-top: 12px; padding-bottom: 2px; }.filter-group > p { display: none; }.filter-item, .category-item { width: auto; flex: 0 0 auto; gap: 12px; }
  .requirements-list-panel { border-right: 0; }
  .evidence-inner { display: block; }
}

@media (max-width: 620px) {
  .business-chain, .definition-strip, .role-allocation, .scope-boundary { grid-template-columns: 1fr; }
  .story-head { display: block; }.story-head > span { display: inline-flex; margin-top: 12px; }
}

@media (max-width: 600px) {
  .topbar { width: 100%; max-width: 100vw; height: 60px; padding: 0 14px; }.top-actions { display: none; }
  .overview-heading, .page-heading, .requirements-toolbar { display: block; }.overview-heading .button, .page-heading > .button, .requirements-toolbar .toolbar-actions { margin-top: 20px; }
  h1 { max-width: 100%; overflow-wrap: anywhere; font-size: 29px; }.signal-card { min-width: 0; min-height: 180px; }.overview-columns { margin-top: 12px; }
  .attention-item { grid-template-columns: 30px 1fr; }.source-pair { display: none; }
  .file-card { grid-template-columns: 42px 1fr; }.file-status { grid-column: 2; }
  .question-summary { grid-template-columns: 1fr; }.question-summary > div { min-height: 80px; border-right: 0; border-bottom: 1px solid var(--line); }.question-summary > div:last-child { border-bottom: 0; }.question-summary strong { margin: 12px 0 2px; }
  .truth-banner { grid-template-columns: 1fr; }.metric-row { grid-template-columns: 1fr 1.2fr .8fr; }.metric-row > :last-child { display: none; }.baseline-grid { grid-template-columns: 1fr; }
  .trajectory-rubric { grid-template-columns: 1fr; }
  .question-footer { align-items: flex-start; gap: 10px; }.toolbar-actions { flex-wrap: wrap; }
}
