:root { --ink:#263746; --muted:#71808b; --line:#d5dce1; --blue:#155b91; --paper:#fff; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:#e9edf0; font:14px/1.65 "SimSun","宋体",serif; }
button,input { font:inherit; }
a { color:#165f9b; }
.site-top { color:#fff; background:#124f7c; border-bottom:4px solid #d4a72c; }
.site-top .inner,.wrap { width:min(980px,calc(100% - 28px)); margin:auto; }
.site-top .inner { padding:20px 0 15px; }
.site-top h1 { margin:0; font:700 27px/1.2 "Microsoft YaHei",sans-serif; letter-spacing:2px; }
.site-top p { margin:5px 0 0; color:#c8dce9; font-size:12px; }
.nav { background:#fff; border-bottom:1px solid #c9d2d8; box-shadow:0 1px 3px #aeb8bf66; }
.nav .inner { width:min(980px,calc(100% - 28px)); margin:auto; display:flex; flex-wrap:wrap; }
.nav a { padding:11px 18px; color:#344d5d; text-decoration:none; border-right:1px solid #e2e7ea; }
.nav a.active { color:#fff; background:#1c6ca3; }
.wrap { margin-top:18px; margin-bottom:40px; display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:16px; }
.main,.side-card,.record-card { background:var(--paper); border:1px solid #cbd4da; }
.main { padding:22px 26px; }
.crumb { margin-bottom:14px; color:var(--muted); font-size:12px; }
.headline { margin:0; text-align:center; font-size:24px; font-family:"Microsoft YaHei",sans-serif; }
.meta { margin:8px 0 20px; text-align:center; color:#8c969d; font-size:12px; }
.article-photo { width:100%; max-height:430px; object-fit:cover; border:1px solid #bbc5cb; filter:saturate(.82) contrast(.96); }
.caption { margin-top:2px; color:#8a949b; font-size:12px; }
.article p { text-indent:2em; }
.notice { padding:11px 13px; border-left:4px solid #c79b2d; background:#fff9e8; }
.side-card { margin-bottom:12px; padding:14px; }
.side-card h2 { margin:0 -14px 10px; padding:0 14px 8px; color:var(--blue); border-bottom:1px solid #dbe2e6; font-size:16px; }
.side-card a { display:block; padding:5px 0; text-decoration:none; border-bottom:1px dotted #d5dce1; }
.foot { padding:25px; text-align:center; color:#87939a; border-top:1px solid #ccd4d9; background:#f4f6f7; font-size:12px; }
.query-box { margin:18px 0; padding:18px; background:#f4f7f9; border:1px solid #cbd5dc; }
.query-row { display:grid; grid-template-columns:1fr 160px auto; gap:8px; }
.query-row input { min-width:0; padding:9px; border:1px solid #aebbc4; background:#fff; }
.query-row button { padding:8px 18px; border:1px solid #0f5688; color:#fff; background:linear-gradient(#287bad,#145a8a); cursor:pointer; }
.dispatch-index { margin:18px 0; padding:17px 18px; border:1px solid #c5d3db; background:#fbfcfd; }
.dispatch-index h3 { margin:0 0 7px; color:#345f77; font-size:17px; }
.dispatch-index > p { margin:0 0 14px; color:#697a84; }
.dispatch-query-row { grid-template-columns:150px minmax(0,1fr) auto; }
.query-message { min-height:24px; margin-top:9px; color:#657984; font-size:12px; }
.dispatch-results { margin-top:10px; border:1px solid #c6d2d8; background:#fff; }
.dispatch-results article { display:grid; grid-template-columns:60px minmax(0,1fr) auto; gap:12px; align-items:center; padding:11px 12px; border-bottom:1px solid #dbe3e7; }
.dispatch-results article:last-child { border-bottom:0; }
.dispatch-results article.matched { background:#f3f8fa; }
.dispatch-results time { color:#42697d; font:700 13px/1 Consolas,monospace; }
.dispatch-results b,.dispatch-results span { display:block; }
.dispatch-results b { color:#2d5367; font-family:Consolas,monospace; }
.dispatch-results span { margin-top:2px; color:#74838b; font-size:12px; }
.dispatch-results button { min-height:36px; padding:0 11px; color:#245f7d; border:1px solid #9ebdcb; background:#edf6fa; cursor:pointer; }
.live-log { margin-top:10px; padding:8px 10px; color:#6c5c36; border-left:3px solid #c79b2d; background:#fff9e8; font-size:12px; }
.live-maintenance { width:min(980px,calc(100% - 28px)); margin:12px auto 0; padding:10px 14px; display:flex; align-items:center; gap:12px; color:#654e20; border:1px solid #d3b96b; background:#fff8df; box-shadow:0 2px 5px rgba(71,58,28,.1); }
.live-maintenance b { flex:0 0 auto; }
.live-maintenance span { color:#82734f; font-size:12px; }
.anniversary-banner { width:min(980px,calc(100% - 28px)); margin:14px auto 0; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:18px; color:#f5f8fa; border:1px solid #315f78; background:linear-gradient(120deg,#174f6d,#286e8c); box-shadow:0 3px 9px rgba(32,62,78,.16); }
.anniversary-banner span { color:#e7c778; font-size:12px; letter-spacing:.12em; }
.anniversary-banner h2 { margin:4px 0; font:700 19px/1.35 "Microsoft YaHei",sans-serif; }
.anniversary-banner p { margin:0; color:#c9dce5; font-size:12px; }
.anniversary-banner strong { flex:0 0 auto; padding:9px 12px; color:#5d4615; border:1px solid #e0c674; background:#fff7d9; font:700 12px/1.4 "Microsoft YaHei",sans-serif; }
.result { margin-top:16px; }
.hidden { display:none !important; }
.data-table { width:100%; border-collapse:collapse; font-family:Arial,"SimSun",sans-serif; font-size:13px; }
.data-table th,.data-table td { padding:9px; text-align:left; border:1px solid #c9d2d8; }
.data-table th { color:#37536a; background:#edf3f6; }
.table-scroll { width:100%; overflow-x:auto; overscroll-behavior-inline:contain; -webkit-overflow-scrolling:touch; }
.table-scroll:focus-visible { outline:2px solid #287bad; outline-offset:2px; }
.table-scroll .data-table { min-width:620px; }
.changed { color:#a43b2e; background:#fff2ed; }
.audit { margin-top:14px; padding:12px; color:#596a75; border:1px dashed #b8c3ca; background:#fafbfb; font:12px/1.8 Consolas,monospace; }
.record-card { padding:22px; }
.record-head { display:flex; justify-content:space-between; gap:14px; padding-bottom:12px; border-bottom:2px solid #3f799b; }
.record-head h2 { margin:0; color:#286381; font-size:20px; }
.record-grid { display:grid; grid-template-columns:140px 1fr; border:1px solid #cbd5db; border-bottom:0; }
.record-grid dt,.record-grid dd { margin:0; padding:9px 11px; border-bottom:1px solid #cbd5db; }
.record-grid dt { color:#657783; background:#edf3f6; }
.record-grid dd,.audit,.notice,.caption { overflow-wrap:anywhere; }
.case-photo { width:100%; margin-top:14px; border:1px solid #b7c1c8; }
.stamp-note { margin-top:14px; padding:10px 12px; border:1px solid #c8b683; color:#695b2d; background:#fffbe8; }
.audio-evidence { margin-top:14px; padding:12px; border:1px solid #bbc9d2; background:#f2f6f8; }
.audio-evidence audio { width:100%; height:34px; }
.back-game { display:inline-block; margin-top:18px; padding:7px 12px; color:#fff; text-decoration:none; background:#416d88; }
@media(max-width:720px){
  .site-top .inner,.wrap{width:min(980px,calc(100% - 20px))}
  .site-top .inner{padding:15px 0 12px}.site-top h1{font-size:23px}
  .nav .inner{width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.nav .inner::-webkit-scrollbar{display:none}
  .nav a{min-height:44px;padding:0 15px;display:flex;align-items:center;flex:0 0 auto;white-space:nowrap}
  .wrap{display:block;margin-top:10px;margin-bottom:22px}.side{margin-top:12px}.main,.record-card{padding:17px 14px}
  .query-box{margin:14px 0;padding:14px 12px}.query-row{grid-template-columns:1fr}.query-row input,.query-row button{min-height:44px;font-size:16px}.query-row button{padding:8px 18px}
  .dispatch-index{padding:14px 12px}.dispatch-results article{grid-template-columns:52px minmax(0,1fr)}.dispatch-results button{grid-column:1/-1;width:100%}
  .live-maintenance{width:calc(100% - 20px);align-items:flex-start;flex-direction:column;gap:2px}
  .anniversary-banner{width:calc(100% - 20px);padding:15px 14px;align-items:flex-start;flex-direction:column;gap:10px}.anniversary-banner strong{width:100%;text-align:center}
  .record-head{align-items:flex-start;flex-direction:column;gap:4px}.record-grid{grid-template-columns:100px minmax(0,1fr)}.headline{font-size:20px}
  .data-table{font-size:12px}.data-table th,.data-table td{padding:8px;white-space:nowrap}
  .audio-evidence audio{height:44px}.back-game{min-height:44px;padding:0 14px;display:inline-flex;align-items:center}
  .archive-toast{bottom:max(12px,env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 20px);text-align:center}
}
@media(max-width:480px){
  .record-grid{display:block}.record-grid dt,.record-grid dd{display:block}.record-grid dt{padding-bottom:3px;border-bottom:0;font-weight:700}.record-grid dd{padding-top:3px}
  .article p{text-indent:0}.foot{padding:18px 12px}.side-card{padding:12px}
}
.archive-toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  z-index: 20;
  transform: translateX(-50%);
  padding: 10px 16px;
  border: 1px solid #879aa6;
  background: rgba(39,55,64,.95);
  color: #fff;
  box-shadow: 0 5px 18px rgba(0,0,0,.24);
  font-size: 13px;
}
.external-forensic-watermark { position:fixed; right:18px; bottom:14px; z-index:19; max-width:70vw; color:rgba(43,70,83,.24); font:10px/1.4 Consolas,monospace; letter-spacing:.12em; transform:rotate(-2deg); pointer-events:none; user-select:none; }

.portal-wrap { grid-template-columns:minmax(0,1fr) 230px; }
.portal-lead { margin:12px auto 0; max-width:680px; color:#697982; text-align:center; }
.portal-search-form { margin:22px 0 8px; padding:18px; border:1px solid #bdcad2; background:linear-gradient(#f8fafb,#edf3f6); }
.portal-search-form label { display:block; margin-bottom:7px; color:#425c6b; font-weight:700; }
.portal-search-form > div { display:flex; }
.portal-search-form input { flex:1; min-width:0; height:42px; padding:0 12px; border:1px solid #9eb0bc; background:#fff; font-size:16px; }
.portal-search-form button { min-width:90px; border:1px solid #0f5688; color:#fff; background:linear-gradient(#2a7fb2,#145a8a); cursor:pointer; }
.portal-message { min-height:26px; padding:7px 2px; color:#6d7d85; font-size:12px; }
.portal-results { margin:6px 0 20px; }
.portal-empty { padding:26px 20px; border:1px dashed #bdcbd3; color:#75868e; background:#f7f9fa; text-align:center; }
.portal-empty p { margin-bottom:0; }
.portal-result { padding:17px 4px; border-bottom:1px solid #dbe3e7; }
.portal-result > a { color:#145f96; font-size:18px; text-decoration:none; }
.portal-result > a:hover { text-decoration:underline; }
.portal-result small,.portal-result cite { display:block; margin-top:4px; }
.portal-result small { color:#89969d; }
.portal-result cite { color:#4d8b58; font-style:normal; overflow-wrap:anywhere; }
.portal-result > p { margin:8px 0; color:#52646d; line-height:1.65; }
.cache-tag { display:inline-block; padding:2px 7px; color:#806c43; border:1px solid #d8ca9e; background:#fff9e6; font-size:11px; }
.forum-result { margin:12px 0; padding:17px; border:1px solid #cbd7dd; background:#f8fafb; }
.forum-thread { margin:12px 0; border-top:1px solid #d9e1e5; }
.forum-thread p { display:grid; grid-template-columns:145px minmax(0,1fr); gap:10px; margin:0; padding:9px 0; border-bottom:1px dotted #d2dce1; }
.forum-thread b { color:#536c78; font-size:12px; }
.forum-thread span { color:#4d5e66; }
.portal-history button { display:block; width:100%; padding:7px 3px; color:#326c8c; border:0; border-bottom:1px dotted #d5dce1; background:transparent; text-align:left; cursor:pointer; overflow-wrap:anywhere; }
.portal-history button:hover { background:#f0f6f8; }

@media(max-width:680px){
  .portal-search-form { padding:12px; }
  .portal-search-form > div { display:grid; grid-template-columns:minmax(0,1fr) 76px; }
  .portal-search-form button { min-width:0; min-height:44px; }
  .forum-thread p { display:block; }
  .forum-thread b,.forum-thread span { display:block; }
  .forum-thread span { margin-top:4px; }
  .external-forensic-watermark { right:10px; bottom:8px; max-width:calc(100vw - 20px); font-size:8px; }
}
