/* ===== 基础 ===== */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --navy:#14243d; --navy2:#1d3355; --blue:#2563eb; --blue-l:#3b82f6;
  --gold:#c8a24a; --red:#dc2626; --green:#15803d; --green-l:#16a34a;
  --ink:#1f2937; --gray:#6b7280; --line:#e5e7eb; --bg:#f3f5f9; --card:#fff;
  --warn-bg:#fef3c7; --warn-bd:#f59e0b; --ok-bg:#dcfce7; --ok-bd:#16a34a;
}
html,body{height:100%}
body{font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.7}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}
::selection{background:#bfdbfe}

/* ===== 首页 ===== */
.view-home{min-height:100vh;background:linear-gradient(135deg,#0f1e36 0%,#1d3355 55%,#24467a 100%);color:#fff;display:flex;align-items:center;justify-content:center;padding:40px 20px}
.home-wrap{max-width:1080px;width:100%}
.home-badge{display:inline-block;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:4px 16px;font-size:13px;letter-spacing:2px;color:#dbeafe}
.view-home h1{font-size:40px;margin:18px 0 10px;letter-spacing:2px}
.home-sub{font-size:16px;color:#c7d5ec;max-width:760px;margin-bottom:34px}
.home-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:26px}
.home-info{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:26px 30px;backdrop-filter:blur(4px)}
.home-info h3{color:var(--gold);font-size:15px;margin:16px 0 6px;letter-spacing:1px}
.home-info h3:first-child{margin-top:0}
.home-info ol{padding-left:20px}.home-info li{margin:4px 0;color:#e6edf9}
.home-info p{color:#e6edf9}
.home-side{background:#fff;border-radius:14px;padding:26px;color:var(--ink);display:flex;flex-direction:column;gap:14px;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.field{display:flex;flex-direction:column;gap:6px}
.field span{font-weight:700;font-size:13px;color:var(--navy)}
.field input{border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none}
.field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #dbeafe}
.home-tip{font-size:12px;color:var(--gray);background:#f8fafc;border-radius:8px;padding:10px;line-height:1.6}

/* ===== 按钮 ===== */
.btn{border:none;border-radius:8px;padding:9px 18px;font-size:14px;transition:.15s;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:#1d4ed8}
.btn-lg{padding:13px 20px;font-size:16px;width:100%}
.btn-ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}
.btn-ghost:hover{background:#f1f5f9}
.btn-sm{padding:5px 12px;font-size:12.5px}
.btn-gold{background:var(--gold);color:#3b2a05;font-weight:700}
.btn-gold:hover{filter:brightness(1.05)}
.btn-danger{background:var(--red);color:#fff}
.btn-ok{background:var(--green);color:#fff}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ===== 主框架 ===== */
.app{display:flex;min-height:100vh}
.sidebar{width:232px;background:var(--navy);color:#cbd5e1;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}
.logo{display:flex;gap:10px;align-items:center;padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.logo-badge{width:38px;height:38px;background:var(--gold);color:#2a2108;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;flex-shrink:0}
.logo-title{font-weight:700;color:#fff;font-size:14px}
.logo-sub{font-size:12px;color:#8fa3c4}
.nav{flex:1;overflow-y:auto;padding:10px 8px}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:13.5px;margin:2px 0;position:relative;user-select:none}
.nav-item:hover{background:rgba(255,255,255,.08)}
.nav-item.active{background:var(--blue);color:#fff}
.nav-item .ni-ico{font-size:17px;width:22px;text-align:center}
.nav-item .ni-lock{margin-left:auto;font-size:11px;color:#fbbf24}
.nav-item .ni-done{margin-left:auto;color:#4ade80;font-size:12px}
.nav-item .ni-tag{position:absolute;right:8px;top:4px;background:var(--red);color:#fff;font-size:10px;border-radius:10px;padding:0 6px;line-height:16px}
.sidebar-foot{padding:12px;border-top:1px solid rgba(255,255,255,.08)}
.sidebar-foot .btn-ghost{color:#cbd5e1;border-color:rgba(255,255,255,.2);width:100%}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:60px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}
.crumb{font-size:17px;font-weight:800;color:var(--navy)}
.student-tag{font-size:12px;color:var(--gray);margin-top:1px}
.topbar-left{display:flex;flex-direction:column}
.topbar-right{display:flex;align-items:center;gap:16px}
.progress-mini{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gray)}
.progress-track{width:130px;height:8px;background:#e5e7eb;border-radius:5px;overflow:hidden}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--blue-l),var(--gold));transition:width .5s}
.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;width:34px;height:34px;font-size:16px}
.icon-btn:hover{background:#f1f5f9}
.content{padding:24px;max-width:1240px;width:100%;margin:0 auto}
.view-pane{display:none;animation:fade .25s}
.view-pane.show{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.pane-head{margin-bottom:18px}
.pane-head h2{font-size:21px;color:var(--navy)}
.pane-head p{color:var(--gray);margin-top:4px}

/* ===== 通用卡片/文档 ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 3px rgba(15,30,54,.05)}
.card h3{font-size:15.5px;color:var(--navy);margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.card h4{font-size:14px;margin:12px 0 6px;color:var(--navy)}
.doc{background:#fbfaf5;border:1px solid #e8e2cf;border-radius:8px;padding:18px 22px;font-family:"FangSong","SimSun",serif;line-height:2;color:#2b2b25;position:relative}
.doc-title{text-align:center;font-size:18px;font-weight:700;letter-spacing:2px;margin-bottom:4px}
.doc-no{text-align:center;font-size:12.5px;color:#555;margin-bottom:12px}
.doc .stamp{position:absolute;right:30px;bottom:24px;width:96px;height:96px;border:3px solid rgba(220,38,38,.75);border-radius:50%;color:rgba(220,38,38,.8);display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:700;transform:rotate(-14deg);font-family:"Microsoft YaHei";line-height:1.5;letter-spacing:1px}
.doc-sign{text-align:right;margin-top:18px;font-family:"FangSong";color:#444}
.muted{color:var(--gray);font-size:12.5px}
.mono{font-family:Consolas,Menlo,monospace;background:#f1f5f9;padding:1px 7px;border-radius:5px;font-size:12.5px;word-break:break-all}
.tag{display:inline-block;font-size:11.5px;padding:1px 9px;border-radius:11px;background:#e0e7ff;color:#3730a3;margin-right:6px}
.tag.red{background:#fee2e2;color:#991b1b}
.tag.green{background:#dcfce7;color:#166534}
.tag.gold{background:#fef3c7;color:#92400e}
.tag.gray{background:#f1f5f9;color:#475569}

/* 提示条 */
.notice{border-radius:9px;padding:11px 15px;margin:10px 0;font-size:13.5px;display:flex;gap:9px;align-items:flex-start}
.notice.info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}
.notice.warn{background:var(--warn-bg);border:1px solid var(--warn-bd);color:#92400e}
.notice.ok{background:var(--ok-bg);border:1px solid var(--ok-bd);color:#166534}
.notice .n-ico{flex-shrink:0}

/* 操作行 */
.act-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}

/* ===== 法律课堂 ===== */
.law-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.law-tab{padding:8px 18px;border-radius:9px 9px 0 0;background:#e8edf6;color:var(--navy);border:1px solid var(--line);border-bottom:none;font-weight:700;font-size:13.5px}
.law-tab.active{background:#fff;color:var(--blue);position:relative;top:1px}
.law-panel{display:none}.law-panel.active{display:block}
.law-art{background:#f8fafc;border-left:4px solid var(--blue);padding:14px 18px;border-radius:0 8px 8px 0;margin:10px 0;line-height:2}
.law-art b{color:var(--navy)}
.std-table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13.5px;background:#fff}
.std-table th,.std-table td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top}
.std-table th{background:var(--navy);color:#fff;font-weight:600}
.std-table tr:nth-child(even) td{background:#f8fafc}
.std-table .hl{color:var(--red);font-weight:700}
.quiz-q{border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:12px 0;background:#fff}
.quiz-q .qq{font-weight:700;margin-bottom:8px}
.quiz-opt{display:block;padding:8px 12px;border:1px solid var(--line);border-radius:8px;margin:6px 0;cursor:pointer;background:#fafbfe}
.quiz-opt:hover{border-color:var(--blue-l)}
.quiz-opt.right{background:#dcfce7;border-color:#16a34a}
.quiz-opt.wrong{background:#fee2e2;border-color:#dc2626}
.quiz-opt.picked{font-weight:700}
.quiz-ex{font-size:12.5px;color:var(--gray);margin-top:6px;display:none}
.quiz-ex.show{display:block}

/* ===== 查询平台 ===== */
.sys-tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin-bottom:18px}
.sys-tab{padding:9px 20px;font-weight:700;color:var(--gray);border-bottom:3px solid transparent;margin-bottom:-2px;background:none;border-left:none;border-right:none;border-top:none;font-size:14px}
.sys-tab.active{color:var(--blue);border-bottom-color:var(--blue)}
.sys-pane{display:none}.sys-pane.active{display:block}
.query-bar{display:flex;gap:10px;margin:10px 0 16px;flex-wrap:wrap}
.query-bar input{flex:1;min-width:240px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;outline:none}
.query-bar input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #dbeafe}
.query-result{display:none}
.query-result.show{display:block}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:13.5px}
.kv dt{color:var(--gray);text-align:right}.kv dd{font-weight:600}
.tx-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.tx-table th,.tx-table td{border:1px solid var(--line);padding:7px 10px;text-align:left}
.tx-table th{background:#f1f5f9}
.tx-table .in{color:var(--green);font-weight:700}.tx-table .out{color:var(--red);font-weight:700}

/* 案件材料 */
.case-grid{display:grid;grid-template-columns:250px 1fr;gap:18px;align-items:start}
.doc-list{position:sticky;top:78px}
.doc-list .di{padding:10px 14px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;background:#fff;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13.5px}
.doc-list .di:hover{border-color:var(--blue-l)}
.doc-list .di.active{border-color:var(--blue);background:#eff6ff;font-weight:700}
.doc-list .di .sealed{margin-left:auto;color:var(--green);font-size:12px}

/* ===== 抓捕时间线 ===== */
.timeline{position:relative;padding-left:28px}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:#cbd5e1}
.tl-item{position:relative;margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 18px}
.tl-item::before{content:"";position:absolute;left:-24px;top:20px;width:12px;height:12px;border-radius:50%;background:#cbd5e1;border:2px solid #fff;box-shadow:0 0 0 2px #cbd5e1}
.tl-item.done::before{background:var(--green-l);box-shadow:0 0 0 2px var(--green-l)}
.tl-item h4{margin:0 0 4px;color:var(--navy)}
.seize-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:10px}
.seize-item{border:1px dashed #94a3b8;border-radius:10px;padding:14px;text-align:center;background:#fafbfe}
.seize-item .si-ico{font-size:34px}

/* ===== 讯问 ===== */
.inter-wrap{display:grid;grid-template-columns:1fr 290px;gap:16px;align-items:start}
.chat-box{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.chat-head{background:var(--navy);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:12px}
.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#475569,#1e293b);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;flex-shrink:0}
.chat-head .who{font-weight:700}.chat-head .status{font-size:12px;color:#fbbf24}
.chat-log{height:430px;overflow-y:auto;padding:18px;background:#f3f5f9;display:flex;flex-direction:column;gap:12px}
.msg{max-width:78%;padding:10px 14px;border-radius:12px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word}
.msg.sus{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:3px}
.msg.cop{background:var(--blue);color:#fff;align-self:flex-end;border-bottom-right-radius:3px}
.msg.sys{background:#fef9c3;border:1px solid #fde68a;color:#854d0e;align-self:center;font-size:12.5px;text-align:center;max-width:92%}
.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.chat-input input{flex:1;border:1px solid var(--line);border-radius:8px;padding:10px 14px;outline:none}
.quick-chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px 0;background:#fff}
.chip{border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:4px 12px;font-size:12.5px;color:var(--navy)}
.chip:hover{border-color:var(--blue-l);background:#eff6ff}
.side-panel{display:flex;flex-direction:column;gap:14px}
.meter{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.meter .m-title{font-size:12.5px;color:var(--gray);margin-bottom:6px}
.meter-track{height:10px;border-radius:6px;background:#e5e7eb;overflow:hidden}
.meter-fill{height:100%;width:0;background:linear-gradient(90deg,#ef4444,#f59e0b 55%,#22c55e);transition:width .4s}
.meter-stage{font-weight:800;margin-top:8px;font-size:14px;color:var(--navy)}
.evidence-pick{width:100%;margin-top:8px}
.policy-btn{width:100%;margin-top:8px}

/* ===== 电脑 ===== */
.pc-frame{max-width:880px;margin:0 auto;border-radius:14px;overflow:hidden;border:3px solid #1f2937;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.pc-bar{background:#1f2937;color:#e5e7eb;padding:7px 14px;display:flex;align-items:center;gap:7px;font-size:12.5px}
.pc-dot{width:11px;height:11px;border-radius:50%}
.pc-screen{background:linear-gradient(135deg,#1e3a5f,#2d5a9e);min-height:520px;position:relative;color:#fff}
.pc-lock{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:520px;gap:16px}
.pc-lock .lock-ico{font-size:52px}
.pc-lock input{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:9px;padding:11px 16px;color:#fff;width:260px;text-align:center;letter-spacing:3px;outline:none}
.pc-lock input::placeholder{color:rgba(255,255,255,.6);letter-spacing:0}
.pc-lock.shake{animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-9px)}75%{transform:translateX(9px)}}
.pc-desktop{padding:20px;min-height:520px;background:linear-gradient(135deg,#1e3a5f,#2d5a9e)}
.pc-icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:14px}
.pc-icon{text-align:center;font-size:12.5px;cursor:pointer;padding:10px 6px;border-radius:8px;color:#eaf2ff}
.pc-icon:hover{background:rgba(255,255,255,.13)}
.pc-icon .pi{font-size:40px;display:block;margin-bottom:5px}
.pc-win{background:#fff;color:var(--ink);border-radius:10px;overflow:hidden;margin-top:18px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.pc-winbar{background:#e8edf6;padding:8px 14px;display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;color:var(--navy)}
.pc-winbody{padding:16px 18px;max-height:430px;overflow-y:auto}
pre.code{background:#0f172a;color:#bae6fd;padding:14px;border-radius:8px;font-size:12.5px;line-height:1.7;overflow-x:auto;white-space:pre-wrap}
.botnet-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.botnet-stat div{background:#f1f5f9;border-radius:8px;padding:10px;text-align:center}
.botnet-stat b{display:block;font-size:20px;color:var(--red)}

/* ===== 手机 ===== */
.phone-wrap{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}
.phone{width:320px;height:640px;background:#0f172a;border-radius:42px;padding:12px;box-shadow:0 24px 60px rgba(0,0,0,.4);flex-shrink:0}
.phone-screen{width:100%;height:100%;background:#f3f5f9;border-radius:32px;overflow:hidden;position:relative;display:flex;flex-direction:column}
.phone-notch{height:26px;background:#0f172a;width:130px;margin:0 auto;border-radius:0 0 16px 16px}
.phone-lock{flex:1;background:linear-gradient(160deg,#312e81,#1e1b4b);color:#fff;display:flex;flex-direction:column;align-items:center;padding:34px 20px}
.phone-lock .big-time{font-size:44px;font-weight:300;letter-spacing:2px}
.phone-lock .big-date{font-size:13px;opacity:.8;margin-bottom:40px}
.pindots{display:flex;gap:14px;margin:14px 0 22px}
.pindot{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.7)}
.pindot.fill{background:#fff}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:230px}
.key{height:58px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:22px;border:none;display:flex;align-items:center;justify-content:center}
.key:active{background:rgba(255,255,255,.35)}
.key.fn{background:transparent;font-size:12px}
.phone-home{flex:1;padding:18px 14px;overflow-y:auto}
.phone-status{text-align:center;font-size:12px;color:#475569;margin-bottom:10px}
.app-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 6px}
.app-ico{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;color:#334155;cursor:pointer;text-align:center}
.app-ico .ai{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff}
.phone-appview{position:absolute;inset:0;background:#f3f5f9;z-index:5;display:none;flex-direction:column}
.phone-appview.show{display:flex}
.pa-head{padding:14px 16px;color:#fff;display:flex;align-items:center;gap:10px;font-weight:700}
.pa-body{flex:1;overflow-y:auto;padding:12px}
.pa-back{background:rgba(255,255,255,.25);border:none;color:#fff;width:28px;height:28px;border-radius:50%}
.chatb{padding:9px 12px;border-radius:12px;margin:6px 0;font-size:12.5px;max-width:86%}
.chatb.them{background:#fff;align-self:flex-start;border-bottom-left-radius:3px}
.chatb.me{background:#95ec69;align-self:flex-end;border-bottom-right-radius:3px;margin-left:auto}
.chatb-row{display:flex;flex-direction:column}
.wallet-tx{display:flex;justify-content:space-between;background:#fff;border-radius:10px;padding:9px 12px;margin:6px 0;font-size:12.5px}
.phone-note{font-size:13px;line-height:2}

/* ===== 证据卷 ===== */
.ev-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.ev-stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.ev-stat b{font-size:26px;color:var(--blue);display:block}
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.ev-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px 16px;position:relative}
.ev-card.empty{opacity:.55;border-style:dashed}
.ev-card .ev-type{font-size:11.5px}
.ev-card h4{margin:6px 0 4px;font-size:14.5px}
.ev-card p{font-size:12.5px;color:var(--gray)}
.ev-card .ev-how{margin-top:8px;font-size:12px;color:#92400e;background:#fffbeb;border-radius:6px;padding:5px 9px}
.ev-card .ev-flag{position:absolute;right:12px;top:12px;font-size:17px}

/* ===== 检察院 ===== */
.proc-hero{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#14243d,#274a7e);color:#fff;border-radius:14px;padding:22px 26px;margin-bottom:18px}
.proc-hero .ph-ico{font-size:46px}
.checklist{list-style:none}
.checklist li{padding:9px 4px;border-bottom:1px dashed var(--line);display:flex;gap:9px;align-items:flex-start;font-size:13.5px}
.checklist li:last-child{border-bottom:none}
.cl-ok{color:var(--green-l)}
.cl-no{color:var(--red)}
.ruling{max-width:820px;margin:0 auto}
.score-big{font-size:46px;font-weight:900;color:var(--gold);text-align:center}

/* 弹窗 */
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:#fff;border-radius:14px;max-width:680px;width:100%;max-height:86vh;overflow-y:auto;padding:26px 30px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.modal-x{position:absolute;right:14px;top:10px;border:none;background:none;font-size:24px;color:var(--gray)}
.modal h3{color:var(--navy);margin-bottom:10px}
.modal .row{margin:12px 0}
.toast{position:fixed;left:50%;bottom:40px;transform:translateX(-50%);background:#111827;color:#fff;padding:10px 22px;border-radius:24px;font-size:13.5px;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.3)}

/* 步骤动画 */
.spin{display:inline-block;width:14px;height:14px;border:2px solid #cbd5e1;border-top-color:var(--blue);border-radius:50%;animation:rot 0.8s linear infinite;vertical-align:-2px}
@keyframes rot{to{transform:rotate(360deg)}}

/* 证书打印 */
@media print{
  body *{visibility:hidden}
  #printArea,#printArea *{visibility:visible}
  #printArea{position:absolute;left:0;top:0;width:100%}
  .no-print{display:none!important}
}
.cert{border:8px double var(--gold);border-radius:10px;padding:44px 50px;background:#fffdf6;max-width:860px;margin:0 auto;color:#3b2a05}
.cert h1{text-align:center;letter-spacing:8px;font-size:32px;margin-bottom:6px}
.cert .cert-sub{text-align:center;letter-spacing:4px;color:#8a6d2f;margin-bottom:30px}
.cert p{font-size:15.5px;line-height:2.4;text-indent:2em}
.cert .cert-foot{display:flex;justify-content:space-between;margin-top:40px;font-size:14px}

@media (max-width:1100px){
  .inter-wrap{grid-template-columns:1fr}
  .case-grid{grid-template-columns:1fr}.doc-list{position:static}
}

/* ===== 多角色询问/讯问 ===== */
.pp-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.pp-tab{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 14px;font-size:13.5px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:7px}
.pp-tab:hover{border-color:var(--blue-l);background:#eff6ff}
.pp-tab.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.pp-tab.bad{border-color:var(--red)}
.pp-sus,.pp-wit{font-size:10.5px;font-weight:400;border-radius:8px;padding:0 6px;margin-left:2px}
.pp-tab.active .pp-sus{background:#dc2626;color:#fff}
.pp-tab.active .pp-wit{background:#0ea5e9;color:#fff}
.pp-sus{background:#fee2e2;color:#991b1b}
.pp-wit{background:#e0f2fe;color:#075985}
.rights-banner{background:#fee2e2;color:#991b1b;font-size:12.5px;padding:8px 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #fca5a5}
.right-item{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:10px 13px;margin:8px 0;background:#fafbfe;cursor:pointer;font-size:13.5px}
.right-item input{margin-top:4px;width:16px;height:16px;flex-shrink:0}
.right-item:has(input:checked){background:#eff6ff;border-color:#93c5fd}

/* ===== 取证程序排序题 ===== */
.oq-step{display:block;width:100%;text-align:left;border:1px solid var(--line);background:#fafbfe;border-radius:9px;padding:11px 15px;margin:8px 0;font-size:13.5px;transition:.15s}
.oq-step:hover:not(:disabled){border-color:var(--blue-l);background:#eff6ff}
.oq-step.picked{background:var(--navy);color:#fff;border-color:var(--navy)}
.oq-step:disabled{cursor:default;opacity:.95}

/* ===== 补侦措施库 ===== */
.measure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px;margin-top:10px}
.measure{text-align:left;border:1px solid var(--line);border-radius:10px;padding:11px 14px;background:#fafbfe;font-size:13.5px;color:var(--ink);line-height:1.6}
.measure:hover:not(:disabled){border-color:var(--blue-l);background:#eff6ff}
.measure:disabled{cursor:default}
.measure.bad{border-color:#fca5a5;background:#fee2e2;color:#991b1b;text-decoration:line-through}

/* ===== 起诉意见书表单 ===== */
.ind-q{margin:12px 0}
.ind-q label{display:block;font-weight:700;font-size:13.5px;color:var(--navy);margin-bottom:5px}
.ind-q select,.ind-q input{width:100%;max-width:520px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;outline:none;background:#fff}
.ind-q select:focus,.ind-q input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #dbeafe}

.notice.danger{background:#fee2e2;border-color:#fca5a5;color:#991b1b}

/* ===== 办案助手悬浮钮 ===== */
.assistant-fab{position:fixed;right:22px;bottom:22px;z-index:90;border:none;border-radius:30px;background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:12px 20px;font-size:14.5px;font-weight:700;box-shadow:0 10px 30px rgba(20,36,61,.4);display:flex;align-items:center;gap:8px}
.assistant-fab:hover{transform:translateY(-2px)}
.assistant-fab span{font-size:13.5px}
.assistant-fab.pulse{animation:fabpulse 1.4s infinite}
@keyframes fabpulse{0%,100%{box-shadow:0 10px 30px rgba(20,36,61,.4)}50%{box-shadow:0 0 0 10px rgba(37,99,235,.25),0 10px 30px rgba(20,36,61,.4)}}

/* ===== 学员档案（折叠备用） ===== */
.profile-toggle{background:none;border:none;color:#c7d5ec;font-size:12px;text-decoration:underline;cursor:pointer;padding:2px;text-align:left}
.profile-list-title{font-weight:700;font-size:12.5px;color:var(--navy);margin:4px 0 8px}
#profileList{max-height:230px;overflow-y:auto;display:flex;flex-direction:column;gap:7px}
.profile-row{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:#fafbfe;overflow:hidden}
.pr-main{flex:1;padding:9px 12px;cursor:pointer;min-width:0}
.pr-main:hover{background:#eff6ff}
.pr-main b{font-size:13.5px}
.pr-sid{font-size:11.5px;color:var(--gray);margin-left:6px}
.pr-meta{display:block;font-size:11.5px;color:var(--gray);margin-top:2px}
.pr-del{border:none;background:#fee2e2;color:#991b1b;padding:10px 12px;align-self:stretch;cursor:pointer;font-size:12.5px}
.pr-del:hover{background:#fecaca}
.chips-hint{font-size:11px;color:var(--gray);width:100%;margin-bottom:2px}

/* ===== 报案询问要点 ===== */
.baonan-points{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}
.bp{border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:12.5px;color:var(--gray);background:#fafbfe}
.bp.on{background:#dcfce7;border-color:#16a34a;color:#166534;font-weight:700}

/* ===== 笔录正文 ===== */
.record-text{white-space:pre-wrap;font-family:"FangSong","SimSun",serif;font-size:14px;line-height:2.1;color:#2b2b25;margin:0}

/* ===== 卷宗锁定格 / 可点证据卡 ===== */
.ev-card.got{cursor:pointer;transition:.15s}
.ev-card.got:hover{border-color:var(--blue-l);box-shadow:0 4px 14px rgba(37,99,235,.12);transform:translateY(-1px)}
.ev-card.locked-tile{border-style:dashed;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:130px;background:repeating-linear-gradient(45deg,#fafbfe,#fafbfe 10px,#f4f6fb 10px,#f4f6fb 20px)}
.ev-card.locked-tile .ev-flag{font-size:22px}

/* ===== 电脑锁屏 / 任务栏（沉浸感） ===== */
.pc-lock{padding:0;overflow:hidden;position:relative}
.pc-lock-bg{position:absolute;inset:0;background:radial-gradient(1200px 500px at 70% -10%,rgba(96,165,250,.55),transparent),linear-gradient(160deg,#0b1f3a,#1e3a5f 60%,#0f2440)}
.pc-lock-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:520px;gap:12px;padding:30px}
.pc-bigclock{font-size:76px;font-weight:200;letter-spacing:3px;line-height:1;text-shadow:0 4px 20px rgba(0,0,0,.4)}
.pc-bigdate{font-size:15px;opacity:.85;margin-bottom:18px}
.pc-lock-ava{width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#475569,#1e293b);display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;border:2px solid rgba(255,255,255,.4)}
.pc-lock-name{font-size:19px;letter-spacing:2px}
.pc-lock-sub{font-size:13px;opacity:.8}
.pc-lock-inner input{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:9px;padding:11px 16px;color:#fff;width:280px;text-align:center;outline:none}
.pc-lock-inner input::placeholder{color:rgba(255,255,255,.6)}
.pc-lock-hint{font-size:12px;color:rgba(255,255,255,.7);margin-top:6px;text-align:center;max-width:420px}
.pc-topinfo{font-size:12px;color:rgba(255,255,255,.72);margin-bottom:10px}
.pc-icon.decoy{opacity:.62}
.pc-icon.decoy::after{content:"无关?";display:inline-block;font-size:10px;color:#fbbf24;border:1px solid rgba(251,191,36,.6);border-radius:8px;padding:0 6px;margin-left:4px}
.pc-taskbar{position:absolute;left:0;right:0;bottom:0;height:42px;background:rgba(15,23,42,.88);backdrop-filter:blur(8px);display:flex;align-items:center;padding:0 12px;gap:14px;font-size:12.5px;color:#e2e8f0}
.tb-start{font-weight:700;color:#fde68a;white-space:nowrap}
.tb-run{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-clock{white-space:nowrap;font-variant-numeric:tabular-nums}
.win-ctrl{display:inline-block;width:26px;text-align:center;cursor:pointer;color:#64748b}
.win-ctrl.x:hover{color:var(--red)}
.pc-desktop{padding-bottom:52px;position:relative;min-height:520px}

/* ===== 手机沉浸感 ===== */
.ph-statusbar{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-size:12.5px;font-weight:600;position:relative;flex-shrink:0}
.phone-lock .ph-statusbar, .phone-lock ~ .ph-statusbar{color:#fff}
.ph-island{position:absolute;left:50%;top:4px;transform:translateX(-50%);width:92px;height:24px;background:#000;border-radius:14px}
.ph-sig{font-size:11.5px;letter-spacing:.5px;z-index:1}
.phone-locked .ph-statusbar{position:absolute;top:0;left:0;right:0;z-index:3;color:#fff}
.phone-locked .ph-island{background:#000}
.phone-locked .phone-screen{background:#0b0b14}
.phone-lock{padding-top:34px}
.phone-lock .big-time{margin:0}
.ph-dock{margin-top:14px;background:rgba(255,255,255,.28);border-radius:26px;padding:12px 10px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;backdrop-filter:blur(10px)}
.phone-home{justify-content:flex-start;display:flex;flex-direction:column}
.app-ico.decoy{opacity:.55}
.app-ico.decoy .ai{filter:grayscale(.6)}
.ph-homebar{height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ph-homebar::after{content:"";width:120px;height:4.5px;border-radius:3px;background:#1f2937;opacity:.75}
.phone-appview.show{padding-bottom:0}
.ph-statusbar.inapp{color:#fff;background:#000}
.pa-head + .pa-body{padding-top:10px}
