/* Dossier treatment: identical public evidence, a restrained investigation UI. */
:root {
  --paper: #eef0f2;
  --card: #fcfcfb;
  --ink: #24323d;
  --muted: #66727d;
  --line: #d4dbe0;
  --lime: #283f51;
  --purple: #3d5e76;
  --coral: #a46a33;
  --green: #507879;
  --gray: #85919a;
  --shadow: none;
}
.site-header { height: 72px; }
h1, h2, p, blockquote, button { word-break: keep-all; overflow-wrap: break-word; }
.brand-mark { border-radius: 3px; background: #283f51; color: #f4f6f8; }
.brand-divider { color: #a8b1b8; }
.brand-project { letter-spacing: .2px; }
.intro { padding: 31px 4px 26px; }
.intro h1 { font-size: 36px; font-weight: 700; letter-spacing: -1.5px; margin: 11px 0; }
.intro > div > p { color: #65717b; }
.tiny-dot { border-radius: 1px; background: #7f97a8; }
.intro .eyebrow { letter-spacing: 1.3px; color: #5d7181; }
.case-file { border-radius: 4px; border-top: 3px solid #31495c; padding: 24px 28px; }
.story-sheet > .eyebrow { color: #455c6c; font-size: 11px; letter-spacing: .8px; }
.document-label { margin: 19px 0 8px; font-size: 10px; letter-spacing: 1px; color: #78838c; }
.story-sheet blockquote { color: #283f51; font-size: 21px; line-height: 1.65; margin: 0 0 12px; font-weight: 600; }
.story-sheet > p { color: #65717b; }
.story-sheet .fact-explanation { color: #717e88; }
.case-facts span { background: #edf0f2; border: 1px solid #e1e6e9; border-radius: 2px; }
.evidence-title h2 { font-weight: 600; }
.witness-group { border-radius: 0; margin: 12px 0; padding: 9px 11px; }
.witness-group.informed { background: #f6f0e9; border-color: #a46a33; }
.witness-group.uninformed { background: #edf3f3; border-color: #507879; }
.witness-group.unknown { background: #eff1f3; border-color: #85919a; }
.witness-group p { color: #5f6b75; }
.witness-name { font-weight: 500; }
.witness-name:hover, .witness-name.current { background: #dce5ec; color: #283f51; }
.mission-strip { padding: 17px 4px; font-size: 11px; }
.mission-strip b { letter-spacing: 1px; color: #3e586d; }
.mission-strip span { color: #65717b; }
.board-panel, .case-panel { border-radius: 4px; }
.board-toolbar { border-bottom: 1px solid #e3e7ea; padding-bottom: 16px; }
.level-tabs { border-radius: 3px; background: #edf0f2; }
.level-tabs button { border-radius: 2px; }
.level-tabs .active { background: #31495c; }
.board-meta { margin-top: 15px; }
#case-label { color: #4e6577; }
.guided-lesson { border-radius: 3px; border-left: 2px solid #6a8295; background: #edf2f6; }
.guided-lesson #guide-progress { color: #627c90; letter-spacing: .6px; }
.guided-lesson strong { color: #324d63; font-weight: 600; }
.guided-lesson p { color: #5c7284; }
.guide-actions .small-button { background: #fcfcfb; color: #3d5e76; border-color: #bfcdd7; border-radius: 3px; }
.graph-wrap { background-image: radial-gradient(#8096a440 .7px, transparent .7px); }
.graph-caption { color: #758490; padding: 0 12px; line-height: 1.6; }
.legend { background: #f5f7f8; border-color: #e0e5e9; color: #5f707d; }
.legend-dot { border-radius: 2px; }
.legend-dot.unknown { background: #e7ebee; }
.legend .legend-extra { color: #7b8892; }
.graph-edge { stroke: #bdc8d0; }
.graph-edge.highlight { stroke: #637f94; }
.graph-edge.reasoning-path { stroke: #4b718e; }
.graph-edge.impossible-path { stroke: #a46a33; }
.graph-edge.current { stroke: #a46a33; }
.node .avatar-bg { fill: #f4eadf; stroke: #a46a33; }
.node.uninformed .avatar-bg { fill: #e7f0f0; stroke: #507879; }
.node.unknown .avatar-bg { fill: #f0f2f4; stroke: #85919a; }
.node .name { fill: #344b5d; font-weight: 600; }
.node .node-role { font-size: 10px; fill: #536775; font-weight: 500; }
.node .node-state { fill: #8d5c30; font-size: 9px; }
.node .avatar-bg { stroke-width: 2; }
.node.unknown .avatar-bg { stroke-dasharray: 3 3; }
.node .state-badge { fill: var(--coral); stroke: var(--card); stroke-width: 2; }
.node.uninformed .state-badge { fill: var(--green); }
.node.unknown .state-badge { fill: var(--card); stroke: var(--gray); stroke-width: 1.5; stroke-dasharray: 2 1; }
.researcher-face { pointer-events: none; }
.node.uninformed .node-state { fill: #4d7376; }
.node.unknown .node-state { fill: #77848f; }
.node.source .node-ring { stroke: #355b70; }
.node .source-tag { fill: #2e5269; }
.node:focus-visible .node-ring, .node:hover .node-ring { stroke: #7895aa; }
.case-panel > div > .eyebrow { font-size: 9px; letter-spacing: .9px; }
.case-panel h2 { font-size: 22px; font-weight: 600; }
.selection, .selection.has-selection { background: #eef2f5; border-radius: 3px; }
.selection-symbol { border-radius: 50%; overflow: hidden; border-color: #acbac5; color: #7e919f; font-size: 18px; }
.selection-symbol img { width: 100%; height: 100%; display: block; }
.selection.has-selection .selection-symbol { background: #3d5e76; font-size: 12px; }
.primary-button, .secondary-button, .small-button, #roster button { border-radius: 3px; }
.primary-button { background: #2e4a60; color: #fff; }
.primary-button:disabled { background: #e0e6eb; color: #7e8e9a; }
.primary-button:not(:disabled):hover { background: #213c51; }
.secondary-button:not(:disabled):hover { background: #edf1f4; }
.small-button { border-color: #c7d0d8; }
.hint-note { color: #74818c; line-height: 1.8; }
.tip b { color: #425f74; }
.tip > span { width: 17px; height: 17px; border: 1px solid #7b93a4; border-radius: 50%; font: 12px Georgia, serif; text-align: center; margin-top: 3px; flex-shrink: 0; }
.inspection blockquote { background: #eef2f5; border-color: #607f95; color: #415d71; }
.deduction > b { color: #3b6970; }
.deduction.ruled-out > b { color: #97612f; }
.deduction p { color: #65717b; }
.path-explanation { background: #edf2f6; border-radius: 3px; border-left: 2px solid #708ba0; }
.path-explanation b { color: #425f74; }
.path-explanation span { color: #526f84; }
.path-explanation small { color: #788b9a; }
.under-board details { border-color: #cdd6dc; }
.under-board summary > span { color: #7b8b96; }
.icon-button { background: #edf1f4; border-radius: 3px; }
#actual-name { color: #3d667b; }
.ai-heading > span { background: #eaf0f5; color: #4b6e88; }
.rank-number { color: #8a98a2; }
.rank-name { width: 48px; white-space: nowrap; }
.rank-bar { background: #e8edf0; }
.rank-bar i { background: #7592a8; }
.score-note, #seed-label { color: #7f8d98; }
.result-context { color: #62727e; }
dialog { border-radius: 5px; }
dialog::backdrop { background: #172c3c70; }
.model-meta span { background: #eaf0f4; border-radius: 2px; }
.lab-members { display: flex; flex-wrap: wrap; gap: 16px; margin: 14px 0; font-size: 11px; color: #62717c; }
.lab-members b { font: 600 13px 'DM Sans', sans-serif; color: #344f61; margin-left: 4px; }
.lab-members span + span { border-left: 1px solid var(--line); padding-left: 16px; }
.witness-name { display: inline-flex; align-items: baseline; gap: 4px; }
.witness-name small { font-size: 9px; color: #7c8890; font-weight: 400; }
.friend-list small { color: var(--muted); font-size: 9px; margin-left: 3px; }
.researcher-profile { display: grid; grid-template-columns: 78px 1fr; gap: 10px 14px; align-items: center; margin: 0 0 20px; }
.researcher-profile img { border-radius: 50%; border: 1px solid #ccd5d8; background: #e6e9e7; }
.researcher-profile strong { display: block; font-size: 12px; line-height: 1.7; font-weight: 600; }
.researcher-profile span { display: block; font-size: 10px; color: #71818b; margin-top: 4px; }
.researcher-profile p { grid-column: 1 / -1; font-size: 11px; line-height: 1.9; color: #6d7b83; margin: 2px 0 0; }
.record-label { font-size: 10px; letter-spacing: .6px; color: #6d7e89; margin-bottom: 8px; }
.answer-pair strong img { display: block; border-radius: 50%; margin: 0 0 8px; }
.answer-pair strong span { display: block; color: inherit; font-size: 20px; }
.answer-pair strong small { display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-top: 4px; }
footer { color: #7c8a96; }
footer .tiny-dot { background: #718b9f; }
@media(max-width:800px) {
  .site-header { height: 64px; }
  .intro { padding: 25px 0 20px; }
  .intro h1 { font-size: 29px; }
  .intro > div > p { max-width: 450px; }
  .case-file { padding: 21px; }
  .story-sheet blockquote { font-size: 22px; }
  .document-label { margin-top: 15px; }
}
@media(max-width:480px) {
  .intro h1 { font-size: 27px; }
  .intro .eyebrow { font-size: 8px; letter-spacing: 1px; }
  .case-file { padding: 17px; }
  .story-sheet blockquote { font-size: 20px; }
  .graph-caption { font-size: 8px; }
  .evidence-title { flex-wrap: wrap; gap: 5px; }
}
