/* v2 案卷记录界面：把游戏化组件收敛为可核验的训练记录。 */
:root{
  --record-ink:#1f3347;
  --record-muted:#607184;
  --record-line:#c9d2dc;
  --record-panel:#eef2f5;
  --record-navy:#1d344b;
  --record-red:#9d3434;
  --record-green:#426e58;
}
body{background:#edf1f4!important;color:var(--record-ink)}
.header{background:var(--record-navy)!important;border-bottom:3px solid var(--record-red)!important;box-shadow:0 2px 10px rgba(19,39,57,.18)!important}
.header-main-title{font-family:"Noto Serif SC","Songti SC",serif!important;letter-spacing:.04em!important}
.header-node-tag{background:#e9eef2!important;color:#1d344b!important;border:1px solid #b5c2cd!important;border-radius:2px!important}
.user-info-bar{background:#f4f6f8!important;border-bottom:1px solid var(--record-line)!important;color:var(--record-ink)!important}
.net-tag,.ai-status-pill{background:#e8edf1!important;border:1px solid #bbc6d0!important;color:#4c6073!important;border-radius:2px!important}
.police-id-btn,.top-action-btn{border-radius:2px!important;box-shadow:none!important}
.main-wrapper{gap:16px!important}
.info-sidebar{background:#f8fafb!important;border:1px solid var(--record-line)!important;border-radius:2px!important;box-shadow:0 2px 8px rgba(31,51,71,.06)!important}
.side-title{background:var(--record-navy)!important;color:#fff!important;border-radius:2px 2px 0 0!important;font-family:"Noto Serif SC","Songti SC",serif!important}
.side-content h4{color:var(--record-navy)!important;border-left:3px solid var(--record-red)!important}
.side-content li::marker{color:var(--record-red)!important}
.case-list-section,.investigation-area{background:#f8fafb!important;border:1px solid var(--record-line)!important;border-radius:2px!important;box-shadow:0 3px 12px rgba(31,51,71,.07)!important}
.case-list-header{background:#eef2f5!important;border-bottom:1px solid var(--record-line)!important}
.case-list-title{font-family:"Noto Serif SC","Songti SC",serif!important;color:var(--record-navy)!important;letter-spacing:.03em!important}
.archive-card,.case-card{border:1px solid #c7d1da!important;border-radius:2px!important;box-shadow:0 2px 7px rgba(31,51,71,.08)!important;background:#fff!important}
.archive-card:hover,.case-card:hover{transform:none!important;border-color:#8ea2b3!important;box-shadow:0 4px 12px rgba(31,51,71,.13)!important}
.archive-meta{color:#51677a!important;border-bottom:1px solid #e2e7eb!important}
.archive-type{color:#697b8a!important}
.archive-progress{background:#e5eaee!important}
.archive-progress i{background:var(--record-green)!important}
.case-card-footer{border-top:1px solid #e2e7eb!important}
.lab-button,.primary-btn,.back-to-list-btn{border-radius:2px!important;box-shadow:none!important}
.lab-button{background:var(--record-navy)!important;border:1px solid #16283a!important}
.lab-button.secondary{background:#eef2f5!important;color:var(--record-navy)!important;border:1px solid #aebbc7!important}
.investigation-top-bar{background:#f8fafb!important;border-bottom:1px solid var(--record-line)!important}
.record-docket-strip{margin:0 0 14px;background:#f8fafb;border:1px solid #c4cfd8;border-left:4px solid #9d3434;padding:11px 14px;color:#294359}
.record-docket-kicker{font-size:10px;color:#8b3d3d;letter-spacing:.12em;margin-bottom:6px}
.record-docket-main{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.record-docket-main strong{display:block;font-family:"Noto Serif SC","Songti SC",serif;font-size:17px;color:#1d344b}
.record-docket-main strong+span{display:block;margin-top:3px;font:11px ui-monospace,SFMono-Regular,Consolas,monospace;color:#6c7c89}
.record-docket-facts{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr));gap:7px 14px;flex:1;max-width:650px}
.record-docket-facts span{font-size:11px;color:#526a7c;min-width:0;overflow-wrap:anywhere}
.record-docket-facts b{display:block;color:#788995;font-size:10px;font-weight:500;margin-bottom:2px}
.record-docket-foot{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding-top:8px;border-top:1px dashed #cbd4dc;color:#6a7c89;font-size:10px}
.record-photo-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;padding-top:7px;border-top:1px solid #e0e6eb;color:#647786;font-size:10px}
.record-photo-meta span{padding:2px 5px;background:#f1f4f6;border:1px solid #d2dbe2;border-radius:2px}
.case-status-badge{font-family:"Noto Serif SC","Songti SC",serif!important}
.case-active-name{color:var(--record-navy)!important}
.case-active-code{border:1px solid #aebbc7!important;background:#eef2f5!important;border-radius:2px!important;color:#536678!important}
.nav-sidebar{background:#f0f3f5!important;border:1px solid var(--record-line)!important;border-radius:2px!important}
.nav-item{border-bottom:1px solid #d7dee5!important;color:#344c61!important;border-radius:0!important}
.nav-item.active{background:#e2e9ee!important;color:var(--record-navy)!important;border-left:4px solid var(--record-red)!important}
.module-container,.case-detail-card,.forensics-workbench,.search-unlock,.character-section,.quiz-section{background:#f8fafb!important;border:1px solid var(--record-line)!important;border-radius:2px!important;box-shadow:none!important}
.case-detail-card h3,.forensics-title,.section-sub-title,.search-title,.character-title,.quiz-title{font-family:"Noto Serif SC","Songti SC",serif!important;color:var(--record-navy)!important}
.detail-grid{background:#eef2f5!important;border:1px solid #d4dde4!important}
.detail-label{color:#5f7181!important}
.detail-val{color:#223a50!important}
.photos-section{border-top:1px solid #d7dee5!important}
.photo-card{border:1px solid #c7d1da!important;border-radius:2px!important;background:#fff!important;box-shadow:none!important}
.photo-kind{background:#eef2f5!important;color:#526879!important;border:1px solid #c1ccd5!important;border-radius:2px!important}
.timeline-item{border-left-color:#9d3434!important}
.timeline-dot{background:#9d3434!important;box-shadow:none!important}
.progress-container{background:#e4e9ed!important}
.progress-bar{background:var(--record-green)!important}
#sceneForensicsWorkbench{margin-top:18px!important}
.scene-forensics-workbench{background:#f2f5f7!important;border:1px solid #bfcbd5!important;border-radius:2px!important;box-shadow:none!important;padding:18px!important}
.scene-forensics-head{display:flex!important;justify-content:space-between!important;gap:16px!important;align-items:flex-start!important;border-bottom:1px solid #c8d2db!important;padding-bottom:14px!important;margin-bottom:14px!important}
.scene-forensics-head h3{font-family:"Noto Serif SC","Songti SC",serif!important;color:var(--record-navy)!important;letter-spacing:.03em!important;margin:4px 0 6px!important}
.scene-forensics-head p{color:#586d7e!important}
.scene-header-status{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:150px}
.scene-training-mark{font-size:11px;color:#6a5960;background:#f4e9e9;border:1px solid #d9b9b9;padding:4px 7px;border-radius:2px;white-space:nowrap}
.scene-progress{background:#e6efe9!important;color:#426e58!important;border:1px solid #b8d1c1!important;border-radius:2px!important}
.scene-hotspot-grid{gap:14px!important}
.scene-hotspot-card{background:#fff!important;border:1px solid #c6d0d9!important;border-radius:2px!important;box-shadow:none!important;padding:14px!important}
.scene-hotspot-card.is-observed{border-left:3px solid #667f93!important}
.scene-hotspot-card.is-collected{border-left:3px solid var(--record-green)!important}
.scene-hotspot-top{border-bottom:1px solid #e3e8ec!important;padding-bottom:10px!important}
.scene-hotspot-number{background:var(--record-navy)!important;border-radius:2px!important}
.scene-hotspot-top h4{font-family:"Noto Serif SC","Songti SC",serif!important;color:#223a50!important}
.scene-stage{font-size:11px!important;color:#526b7b!important;background:#eef2f5!important;border:1px solid #ccd5dc!important;border-radius:2px!important;padding:2px 6px!important}
.scene-record-label{display:flex;justify-content:space-between;gap:8px;margin:10px 0 7px;padding:5px 7px;background:#eef2f5;border:1px solid #d0d9e0;color:#53687a;font-size:11px;letter-spacing:.04em}
.scene-record-label span:last-child{color:#8f3131;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.scene-record-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;margin:0 0 10px;padding:8px 9px;background:#fafbfc;border:1px solid #e0e6eb}
.scene-record-meta div{min-width:0}
.scene-record-meta dt{font-size:10px;color:#718292;letter-spacing:.05em}
.scene-record-meta dd{margin:1px 0 0;font-size:11px;color:#334b60;overflow-wrap:anywhere}
.scene-observation-photo{background:#eef2f5!important;border:1px solid #c6d0d8!important;border-radius:1px!important}
.scene-observation-photo img{filter:saturate(.88) contrast(1.03)!important}
.scene-observation-photo figcaption{font-size:11px!important;color:#5b6d7c!important;background:#f7f9fa!important;border-top:1px solid #cfd8df!important}
.scene-fact-note{background:#f7f9fa;border-left:3px solid #9aaab8;padding:8px 9px;color:#3e566a!important;line-height:1.65!important}
.scene-hotspot-actions{border-top:1px solid #e1e6ea!important;padding-top:10px!important}
.scene-hotspot-actions button{border-radius:2px!important;box-shadow:none!important}
.scene-observe-btn{background:#eef2f5!important;color:#2f4c63!important;border:1px solid #aebbc7!important}
.scene-capture-btn{background:#f4f6f8!important;color:#536b7d!important;border:1px solid #b8c4ce!important}
.scene-collect-btn{background:#355f4e!important;color:#fff!important;border:1px solid #294b3e!important}
.scene-hotspot-actions button:disabled{background:#eef1f3!important;color:#9aa6b0!important;border-color:#d2d9df!important}
.scene-contamination{background:#fbefee!important;color:#913a36!important;border:1px solid #dfb5b0!important;border-radius:2px!important}
.custody-panel{background:#f8fafb!important;border:1px solid #bdc9d3!important;border-radius:2px!important;margin-top:14px!important}
.custody-panel h3,.custody-panel h4{font-family:"Noto Serif SC","Songti SC",serif!important;color:var(--record-navy)!important}
#notebookFloatingBtn{background:#f8fafb!important;border:1px solid #9eabb7!important;color:#314c62!important;box-shadow:0 3px 10px rgba(31,51,71,.13)!important;border-radius:2px!important}
#notebookFloatingBtn span:last-child{color:#314c62!important}
@media(max-width:760px){
  .scene-forensics-head{display:block!important}
  .scene-header-status{align-items:flex-start;margin-top:10px}
  .scene-record-meta{grid-template-columns:1fr}
  .case-status-badge{align-items:flex-start!important;flex-direction:column!important}
  .record-docket-main{display:block}
  .record-docket-facts{grid-template-columns:1fr;margin-top:10px;max-width:none}
  .record-docket-foot{display:block;line-height:1.6}
}
.scene-related-records,.scene-empty-state{margin-top:14px;padding:13px 14px;background:#f8fafb;border:1px solid #c7d1da;border-left:3px solid #7e8f9d}
.scene-related-records h4,.scene-empty-state strong{display:block;margin:0 0 6px;color:#1d344b;font-family:"Noto Serif SC","Songti SC",serif;font-size:14px}
.scene-related-records p,.scene-empty-state p{margin:0 0 9px;color:#607184;font-size:12px;line-height:1.7}
.scene-related-records ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px}
.scene-related-records li{display:grid;grid-template-columns:72px 1fr;gap:4px 8px;align-items:start;padding:7px;background:#fff;border:1px solid #dbe2e7}
.scene-related-records li span{grid-row:span 2;color:#5c7182;font-size:10px}
.scene-related-records li strong{color:#334b60;font-size:11px;font-weight:600}
.scene-related-records li small{color:#8795a0;font-size:10px}
.scene-training-mark{max-width:230px;white-space:normal;line-height:1.45}.scene-related-pending{margin-top:14px;padding:12px 14px;background:#fbf7ee;border:1px solid #dccda9;border-left:3px solid #9b7b3c;color:#5f533b}
.scene-related-pending strong{display:block;margin-bottom:5px;font-size:13px}
.scene-related-pending p{margin:0;font-size:12px;line-height:1.7}.scene-simulation-notice{margin-top:14px;padding:9px 12px;background:#f8f1e7;border:1px solid #d9c9a8;color:#675437;font-size:11px;line-height:1.65}
.scene-conclusion-boundary{display:flex;gap:8px;align-items:flex-start;margin:10px 0 12px;padding:9px 11px;border-left:3px solid #9a6b2f;background:#fbf7ef;color:#5b4630;font-size:12px;line-height:1.55}
.scene-conclusion-boundary strong{white-space:nowrap;color:#7a4e1d}
.scene-conclusion-boundary span{color:#6b5a47}

#trainingOperationsBoard{margin:0 0 14px;background:#f8fafb;border:1px solid #c4cfd8;border-left:4px solid #355f4e;padding:14px 15px;color:#294359}
.ops-board-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid #d7e0e6;padding-bottom:10px;margin-bottom:11px}
.ops-board-kicker{font-size:10px;letter-spacing:.13em;color:#7d5d34}
.ops-board-head h3{margin:4px 0 3px;font:600 16px/1.35 "Noto Serif SC","Songti SC",serif;color:#1d344b}
.ops-board-head p{margin:0;color:#6a7b87;font-size:11px}
.ops-board-status{padding:4px 7px;border:1px solid #b7cbbf;background:#edf5ef;color:#426e58;font-size:10px;white-space:nowrap}
.ops-board-grid{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:9px}
.ops-board-card{min-width:0;padding:10px 11px;background:#fff;border:1px solid #d6dfe5}
.ops-label{display:block;margin-bottom:5px;color:#758694;font-size:10px;letter-spacing:.06em}
.ops-board-card strong{display:block;color:#294359;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.ops-board-card small{display:block;margin-top:4px;color:#71818d;font-size:10px;line-height:1.45}
.ops-steps{display:flex;flex-wrap:wrap;gap:5px}
.ops-steps span{padding:3px 5px;border:1px solid #d4dde3;background:#f4f6f8;color:#8996a0;font-size:10px}
.ops-steps span.is-done{border-color:#b7cbbf;background:#edf5ef;color:#426e58}
.ops-steps span.is-current{border-color:#c7aa72;background:#fbf7ee;color:#7b5b2f}
.ops-meter{height:4px;margin-top:10px;background:#e5eaee;overflow:hidden}
.ops-meter i{display:block;height:100%;background:#426e58;transition:width .2s ease}
.ops-board-next{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:9px 11px;background:#fbf7ee;border:1px solid #dccda9;border-left:3px solid #9b7b3c}
.ops-board-next span{flex:none;color:#7b5b2f;font-size:10px;letter-spacing:.05em}
.ops-board-next strong{color:#5f533b;font-size:11px;line-height:1.55}
.ops-board-foot{margin-top:9px;color:#7d8992;font-size:10px;line-height:1.55}
@media(max-width:860px){.ops-board-grid{grid-template-columns:1fr 1fr}.ops-board-card:nth-child(2){grid-column:1 / -1}.ops-board-head{display:block}.ops-board-status{display:inline-block;margin-top:8px}}
@media(max-width:520px){.ops-board-grid{grid-template-columns:1fr}.ops-board-card:nth-child(2){grid-column:auto}.ops-board-next{display:block}.ops-board-next span{display:block;margin-bottom:4px}}

/* 训练压迫音效开关：低调、可读、不会伪装成真实执法设备控制。 */
.pressure-audio-toggle{position:relative;min-width:126px;transition:background .18s ease,border-color .18s ease,color .18s ease}
.pressure-audio-toggle.pressure-audio-on{background:#f7f1e7!important;border-color:#b49361!important;color:#674d28!important}
.pressure-audio-toggle.pressure-audio-high{background:#f6e8e7!important;border-color:#a25b56!important;color:#7c2d2d!important}
.pressure-audio-toggle.pressure-audio-high::after{content:"";position:absolute;right:6px;top:6px;width:5px;height:5px;border-radius:50%;background:#9d3434;box-shadow:0 0 0 0 rgba(157,52,52,.32);animation:pressure-audio-pulse 1.8s ease-out infinite}
@keyframes pressure-audio-pulse{0%{box-shadow:0 0 0 0 rgba(157,52,52,.34)}70%{box-shadow:0 0 0 6px rgba(157,52,52,0)}100%{box-shadow:0 0 0 0 rgba(157,52,52,0)}}
@media(max-width:760px){.pressure-audio-toggle{min-width:0;padding-left:8px!important;padding-right:8px!important}.header-right{flex-wrap:wrap;justify-content:flex-end}.pressure-audio-toggle{font-size:11px}}

/* 案件关联审查只显示当前案卷已完成记录，结论保持待复核状态。 */
.merger-review-dialog{max-width:980px!important;width:min(94vw,980px)!important;background:#f8fafb!important;border:1px solid #aebbc7!important;border-radius:2px!important;color:#263e52!important;box-shadow:0 18px 40px rgba(31,51,71,.24)!important;overflow:hidden}
.merger-review-header{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px;background:#1d344b!important;padding:13px 18px!important;border-bottom:3px solid #9d3434!important}
.merger-review-header h3{margin:0;color:#fff;font:600 16px/1.35 "Noto Serif SC","Songti SC",serif!important;letter-spacing:.03em}
.merger-review-header button{border:0;background:transparent;color:#dce4eb;font-size:24px;line-height:1;cursor:pointer}
.merger-review-body{padding:18px;max-height:74vh;overflow:auto}
.merger-review-case{margin:0 0 12px;color:#526a7c;font-size:12px}
.merger-review-boundary{margin:0 0 14px;padding:11px 13px;background:#fbf7ee;border:1px solid #dccda9;border-left:4px solid #9b7b3c;color:#5f533b;font-size:12px;line-height:1.7}
.merger-review-boundary strong{display:block;margin-bottom:3px;color:#7b5b2f;font-family:"Noto Serif SC","Songti SC",serif}
.merger-review-boundary p{margin:0}
.merger-review-table-wrap{overflow:auto;border:1px solid #c7d1da;background:#fff}
.merger-review-table{width:100%;border-collapse:collapse;min-width:700px;font-size:12px;color:#334b60}
.merger-review-table th{padding:9px 10px;text-align:left;background:#eef2f5;border-bottom:2px solid #c8d2db;color:#526879;font-weight:600}
.merger-review-table td{padding:10px;border-bottom:1px solid #e1e7eb;vertical-align:top;line-height:1.55}
.merger-review-table tr:last-child td{border-bottom:0}
.merger-review-table small{color:#84929e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.merger-review-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid #d6dfe5;color:#71818d;font-size:11px;line-height:1.55}
.merger-review-footer button:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:620px){.merger-review-body{padding:12px}.merger-review-footer{display:block}.merger-review-footer button{margin-top:10px;width:100%}}

/* 阶段性审查报告：训练记录可打印，保持待复核边界，不伪装成起诉文书。 */
.stage-review-dialog{max-width:980px!important;width:min(94vw,980px)!important;background:#f8fafb!important;border:1px solid #aebbc7!important;border-radius:2px!important;color:#263e52!important;box-shadow:0 18px 40px rgba(31,51,71,.24)!important;overflow:hidden}
.stage-review-header{display:flex!important;justify-content:space-between!important;align-items:center!important;gap:12px;background:#1d344b!important;padding:13px 18px!important;border-bottom:3px solid #9d3434!important}
.stage-review-header h3{margin:0;color:#fff;font:600 16px/1.35 "Noto Serif SC","Songti SC",serif!important;letter-spacing:.03em}
.stage-review-header button{border:0;background:transparent;color:#dce4eb;font-size:24px;line-height:1;cursor:pointer}
.stage-review-body{padding:18px;max-height:74vh;overflow:auto}
.stage-review-case{margin:0 0 12px;color:#526a7c;font-size:12px}
.stage-review-boundary{margin:0 0 14px;padding:11px 13px;background:#fbf7ee;border:1px solid #dccda9;border-left:4px solid #9b7b3c;color:#5f533b;font-size:12px;line-height:1.7}
.stage-review-boundary strong{display:block;margin-bottom:3px;color:#7b5b2f;font-family:"Noto Serif SC","Songti SC",serif}
.stage-review-boundary p{margin:0}
.stage-review-table-wrap{overflow:auto;border:1px solid #c7d1da;background:#fff}
.stage-review-table{width:100%;border-collapse:collapse;min-width:650px;font-size:12px;color:#334b60}
.stage-review-table th{padding:9px 10px;text-align:left;background:#eef2f5;border-bottom:2px solid #c8d2db;color:#526879;font-weight:600}
.stage-review-table td{padding:10px;border-bottom:1px solid #e1e7eb;vertical-align:top;line-height:1.55}
.stage-review-table tr:last-child td{border-bottom:0}
.stage-review-table small{color:#84929e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.stage-review-note{margin-top:12px;padding:10px 12px;background:#eef4ef;border:1px solid #c1d3c5;border-left:3px solid #426e58;color:#4e6758;font-size:11px;line-height:1.65}
.stage-review-footer{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 18px;background:#f3f6f8;border-top:1px solid #d6dfe5;color:#71818d;font-size:11px;line-height:1.55}
.stage-review-footer button+button{margin-left:8px}
@media(max-width:620px){.stage-review-body{padding:12px}.stage-review-footer{display:block}.stage-review-footer button{margin-top:10px;width:100%}.stage-review-footer button+button{margin-left:0}}
