
  :root{
    --primary:#1F4E79; --primary-light:#E8F1FB; --bg:#F5F7FA; --card:#FFFFFF;
    --border:#D6DCE4; --text:#2B3440; --text-dim:#7A8699;
    --yes-bg:#E6F4EA; --yes-text:#137333; --yes-border:#A8D5B5;
    --no-bg:#FEF7E0;  --no-text:#B06000;  --no-border:#F0D89A;
    --maybe-bg:#F1F3F5; --maybe-text:#868E96;
    --err-bg:#FDECEA; --err-text:#B91C1C;
  }
  *{box-sizing:border-box; margin:0; padding:0}
  body{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;
       background:var(--bg); color:var(--text); font-size:14px;}
  .topbar{background:var(--primary); color:#fff; padding:12px 24px;
          display:flex; align-items:center; justify-content:space-between;
          position:sticky; top:0; z-index:50; box-shadow:0 2px 8px rgba(0,0,0,.12)}
  .topbar h1{font-size:18px; font-weight:600; letter-spacing:.5px}
  .topbar .right{display:flex; align-items:center; gap:12px}
  .badge{display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.15);
         padding:5px 12px; border-radius:20px; font-size:12.5px}
  .badge .dot{width:8px; height:8px; border-radius:50%; background:#4ADE80}
  .badge.off .dot{background:#FBBF24}
  .btn{border:none; cursor:pointer; border-radius:6px; font-size:13.5px;
       padding:8px 16px; font-family:inherit; transition:all .15s}
  .btn-primary{background:var(--primary); color:#fff}
  .btn-primary:hover{background:#2A6396}
  .btn-primary:disabled{background:#9DB4CC; cursor:not-allowed}
  .btn-ghost{background:rgba(255,255,255,.16); color:#fff}
  .btn-ghost:hover{background:rgba(255,255,255,.26)}
  .btn-outline{background:#fff; color:var(--primary); border:1px solid var(--primary)}
  .btn-outline:hover{background:var(--primary-light)}
  .wrap{max-width:1280px; margin:20px auto; padding:0 20px 60px}
  .card{background:var(--card); border-radius:10px; padding:22px 24px;
        margin-bottom:18px; box-shadow:0 1px 4px rgba(30,50,80,.07)}
  .card h2{font-size:15.5px; margin-bottom:16px; color:var(--primary);
           display:flex; align-items:center; gap:8px}
  .card h2 .step{background:var(--primary); color:#fff; width:20px; height:20px;
                 border-radius:50%; font-size:12px; display:inline-flex;
                 align-items:center; justify-content:center; flex:none}
  .form-row{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:14px}
  .field{display:flex; flex-direction:column; gap:6px}
  .field label{font-size:13px; color:var(--text-dim)}
  .field input[type=text], .field input[type=date]{
     border:1px solid var(--border); border-radius:6px; padding:9px 12px;
     font-size:14px; font-family:inherit; outline:none; background:#fff; color:var(--text)}
  .field input:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(31,78,121,.12)}
  textarea#targetInput{width:100%; min-height:54px; border:1px solid var(--border); border-radius:6px;
     padding:9px 12px; font-size:14px; font-family:inherit; outline:none; background:#fff;
     color:var(--text); resize:vertical; line-height:1.5}
  textarea#targetInput:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(31,78,121,.12)}
  .hint{font-size:12px; color:var(--text-dim); line-height:1.6}
  .std-row{display:flex; gap:8px; margin-bottom:8px; align-items:center}
  .std-row input{flex:1; border:1px solid var(--border); border-radius:6px;
                 padding:9px 12px; font-size:14px; font-family:inherit; outline:none}
  .std-row input:focus{border-color:var(--primary)}
  .std-row .del{background:#fff; border:1px solid var(--border); color:var(--text-dim);
                border-radius:6px; width:34px; height:34px; cursor:pointer; font-size:15px; flex:none}
  .std-row .del:hover{color:var(--err-text); border-color:#E5B4B4}
  .actions{margin-top:18px; display:flex; gap:12px; align-items:center}
  #reviewBtn{padding:11px 34px; font-size:15px}
  .progress-box{display:none}
  .progress-box.show{display:block}
  .pstage{display:flex; justify-content:space-between; font-size:13.5px; margin-bottom:8px}
  .pstage b{color:var(--primary)}
  .pbar{height:10px; background:#EDF1F6; border-radius:6px; overflow:hidden}
  .pbar>div{height:100%; background:linear-gradient(90deg,#3E7CB1,#1F4E79);
            border-radius:6px; transition:width .3s; width:0}
  .pbar.indet>div{width:35% !important; animation:slide 1.2s infinite}
  @keyframes slide{0%{margin-left:-35%}100%{margin-left:100%}}
  .err{display:none; background:var(--err-bg); color:var(--err-text);
       border:1px solid #F3C2C2; border-radius:8px; padding:12px 16px;
       margin-bottom:16px; font-size:13.5px; line-height:1.7}
  .err.show{display:block}
  .err .btn{margin-left:10px}
  .chips{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px}
  .chip{background:#F2F6FB; border:1px solid #DEE8F3; border-radius:8px;
        padding:8px 14px; font-size:13px}
  .chip b{color:var(--primary); font-weight:600}
  .chip.warn{background:var(--no-bg); border-color:var(--no-border); color:var(--no-text)}
  table{width:100%; border-collapse:collapse; font-size:13px}
  thead th{background:var(--primary); color:#fff; padding:10px 10px; font-weight:600;
           position:sticky; top:0; white-space:nowrap; text-align:center}
  tbody td{border:1px solid var(--border); padding:9px 10px; vertical-align:middle}
  tbody tr:nth-child(even) td{background:#F7F9FC}
  tbody tr.data-row{cursor:default}
  tbody tr.data-row:hover td{background:#EEF4FB}
  td.c, th.c{text-align:center}
  .pill{display:inline-block; min-width:34px; text-align:center; padding:3px 10px;
        border-radius:12px; font-weight:600; font-size:12.5px}
  .pill.yes{background:var(--yes-bg); color:var(--yes-text); border:1px solid var(--yes-border)}
  .pill.no{background:var(--no-bg); color:var(--no-text); border:1px solid var(--no-border)}
  .pill.maybe{background:var(--maybe-bg); color:var(--maybe-text)}
  .desc{max-width:340px; line-height:1.65; color:#4A5568; font-size:12.5px}
  .hl-cell{max-width:250px; line-height:1.55; font-size:12px}
  .hl-item{display:flex; gap:5px; margin-bottom:4px; align-items:flex-start}
  .hl-tag{flex:none; border-radius:4px; padding:0 5px; font-size:10.5px; font-weight:600;
          line-height:17px; margin-top:1px}
  .hl-tag.g{background:#E6F4EA; color:#137333; border:1px solid #A8D5B5}
  .hl-tag.r{background:#FDECEA; color:#B91C1C; border:1px solid #F3C2C2}
  .hl-tag.o{background:#FEF7E0; color:#B06000; border:1px solid #F0D89A}
  .hl-tag.b{background:#EEF2F7; color:#5A6B80; border:1px solid #D6DCE4}
  .hl-item .tx{color:#4A5568; word-break:break-all}
  .hl-none{color:#B6BEC9; font-size:12px}
  .msg.call{align-self:stretch; max-width:92%; background:#FFF8EC; border:1px solid #F0D89A}
  .msg.call .call-tag{background:#F0A82E; color:#fff; border-radius:4px; padding:0 5px;
                      font-size:10.5px; font-weight:600; margin-right:6px}
  .msg.call .call-abs{margin-top:6px; padding:6px 9px; background:#FFFDF6;
                      border:1px dashed #E8D5A8; border-radius:6px; font-size:12px; color:#8A6D1F}
  .linkbtn{background:none; border:none; color:var(--primary); cursor:pointer;
           font-size:12.5px; text-decoration:underline; font-family:inherit}
  /* 亮点/不足可定位标签：点击直达原文对应消息 */
  .hl-tag.loc{cursor:pointer; transition:box-shadow .15s, transform .15s}
  .hl-tag.loc:hover{box-shadow:0 0 0 2px rgba(19,115,51,.35); transform:translateY(-1px)}
  .hl-tag.loc.r:hover{box-shadow:0 0 0 2px rgba(185,28,28,.35)}
  .hl-tag.loc.o:hover{box-shadow:0 0 0 2px rgba(176,96,0,.35)}
  .loc-btn{background:none; border:none; color:var(--primary); cursor:pointer;
           font-size:11px; padding:0 2px; font-family:inherit; white-space:nowrap}
  .loc-btn:hover{text-decoration:underline}
  /* 原文定位：目标消息闪烁高亮 */
  @keyframes msgflash{0%,100%{box-shadow:0 0 0 0 rgba(19,115,51,0)}
    20%,60%{box-shadow:0 0 0 3px rgba(19,115,51,.55); background:#E6F4EA}}
  .msg.flash{animation:msgflash 2.2s ease-in-out 2; border-radius:8px}
  .msg mark{background:#FFE9A8; color:#7A4B00; padding:0 1px; border-radius:2px; font-weight:600}
  .msg mark.g{background:#E6F4EA; color:#137333; border:1px solid #A8D5B5}
  .msg mark.r{background:#FDECEA; color:#B91C1C; border:1px solid #F3C2C2}
  .msg mark.o{background:#FEF7E0; color:#B06000; border:1px solid #F0D89A}
  .msg mark.b{background:#EEF2F7; color:#5A6B80; border:1px solid #D6DCE4}
  .msg .hit-tip{display:inline-block; margin-left:6px; font-size:10.5px; color:#137333;
                background:#E6F4EA; border:1px solid #A8D5B5; border-radius:4px; padding:0 4px}
  .chat-row td{background:#FBFCFE !important; padding:0}
  .chat-box{max-height:420px; overflow-y:auto; padding:14px 18px; display:flex;
            flex-direction:column; gap:8px}
  .msg{max-width:72%; padding:8px 12px; border-radius:10px; font-size:13px;
       line-height:1.6; word-break:break-all; white-space:pre-wrap}
  .msg .meta{font-size:11px; color:var(--text-dim); margin-bottom:3px;
             display:flex; gap:8px; align-items:center}
  .msg.teacher{align-self:flex-start; background:#E8F1FB; border:1px solid #D2E2F5}
  .msg.student{align-self:flex-end; background:#F1F3F5; border:1px solid #E3E7EC}
  .tag-bc{background:#FFF3D6; color:#9C6500; border-radius:4px; padding:0 5px; font-size:10.5px}
  .toolbar{display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap}
  details.help{font-size:13px; color:#4A5568; line-height:1.9}
  details.help summary{cursor:pointer; color:var(--primary); font-weight:600;
                       font-size:13.5px; margin-bottom:6px}
  details.help code{background:#EEF2F7; padding:1px 6px; border-radius:4px; font-size:12.5px}
  /* 多 UID 结果分节 */
  .target-sec{margin-bottom:28px}
  .sec-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:14px;
           background:var(--primary-light); border:1px solid #DEE8F3; border-radius:8px;
           padding:9px 14px; margin-bottom:10px}
  .sec-head b{color:var(--primary)}
  .sec-no{background:var(--primary); color:#fff; border-radius:10px; font-size:11.5px;
         padding:1px 8px; font-weight:600; flex:none}
  .sec-mode{margin-left:auto; font-size:12px; color:var(--text-dim)}
  .empty{color:var(--text-dim); text-align:center; padding:30px 0}
  /* 专业知识库（共享） */
  .kb-bar{display:flex; align-items:center; gap:12px; background:#F2F6FB; border:1px solid #DEE8F3;
         border-radius:8px; padding:10px 14px; margin-bottom:10px; font-size:13px; flex-wrap:wrap}
  .kb-bar b{color:var(--primary)}
  .kb-bar .sp{flex:1}
  .modal-mask{display:none; position:fixed; inset:0; background:rgba(20,30,45,.45); z-index:100;
              align-items:flex-start; justify-content:center; padding:36px 16px; overflow-y:auto}
  .modal-mask.show{display:flex}
  .modal{background:#fff; border-radius:12px; width:940px; max-width:100%;
         box-shadow:0 12px 40px rgba(0,0,0,.25)}
  .modal-head{display:flex; align-items:center; gap:10px; padding:15px 22px; border-bottom:1px solid var(--border);
              font-size:16px; font-weight:600; color:var(--primary); position:sticky; top:0;
              background:#fff; z-index:2; border-radius:12px 12px 0 0}
  .modal-head .kb-total{font-size:12.5px; color:var(--text-dim); font-weight:400}
  .modal-head .x{margin-left:auto; background:none; border:none; font-size:22px; color:var(--text-dim);
                 cursor:pointer; line-height:1; padding:0 4px}
  .modal-head .x:hover{color:var(--err-text)}
  .modal-body{padding:18px 22px 28px}
  .kb-add{background:#F8FAFD; border:1px solid #E3EAF3; border-radius:10px; padding:16px; margin-bottom:20px}
  .kb-add h3, .kb-list-head h3{font-size:14px; color:var(--primary); margin-bottom:10px}
  .kb-form-row{display:flex; gap:10px; margin-bottom:10px; flex-wrap:wrap; align-items:center}
  .kb-form-row input, .kb-form-row select, .kb-add textarea{
     border:1px solid var(--border); border-radius:6px; padding:8px 11px; font-size:13.5px;
     font-family:inherit; outline:none; background:#fff; color:var(--text)}
  .kb-form-row input{flex:1; min-width:170px}
  .kb-form-row input:focus, .kb-add textarea:focus{border-color:var(--primary)}
  .kb-add textarea{width:100%; min-height:88px; resize:vertical; line-height:1.6}
  .kb-type-desc{font-size:12px; color:var(--text-dim); margin:-4px 0 10px; line-height:1.6}
  .kb-list-head{display:flex; align-items:center; gap:12px; margin-bottom:10px; flex-wrap:wrap}
  .kb-list-head input{flex:1; min-width:200px; border:1px solid var(--border); border-radius:6px;
                      padding:8px 11px; font-size:13.5px; font-family:inherit; outline:none}
  .kb-filter-bar{display:none; align-items:center; gap:10px; background:#FEF7E0; border:1px solid #F0D89A;
                 color:#8A5A00; border-radius:8px; padding:8px 12px; font-size:12.5px; margin-bottom:12px}
  .kb-filter-bar.show{display:flex}
  .kb-filter-bar .btn{padding:3px 12px; font-size:12px}
  .kb-item{border:1px solid var(--border); border-radius:10px; padding:13px 15px; margin-bottom:10px; background:#fff}
  .kb-item:hover{border-color:#B9CBE0}
  .kb-item-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13.5px}
  .kb-item-head b{color:var(--text)}
  .kb-meta{font-size:11.5px; color:var(--text-dim)}
  .kb-del{margin-left:auto; background:#fff; border:1px solid var(--border); color:var(--text-dim);
          border-radius:6px; padding:3px 10px; font-size:12px; cursor:pointer; font-family:inherit}
  .kb-del:hover{color:var(--err-text); border-color:#E5B4B4}
  .kb-type{border-radius:4px; padding:1px 7px; font-size:11px; font-weight:600; flex:none}
  .kb-type.t-term{background:#E8F1FB; color:#1F4E79; border:1px solid #C4D9EE}
  .kb-type.t-allow, .kb-type.t-highlight{background:#E6F4EA; color:#137333; border:1px solid #A8D5B5}
  .kb-type.t-risk{background:#FDECEA; color:#B91C1C; border:1px solid #F3C2C2}
  .kb-type.t-standard{background:#F3EDFB; color:#6B3FA0; border:1px solid #D9C8F0}
  .kb-kws{margin:7px 0 5px; display:flex; flex-wrap:wrap; gap:5px}
  .kb-kw{background:#EEF2F7; border:1px solid #D6DCE4; border-radius:4px; padding:0 6px;
         font-size:11.5px; color:#5A6B80}
  .kb-content{font-size:12.5px; color:#4A5568; line-height:1.7; white-space:pre-wrap;
              word-break:break-all; max-height:64px; overflow:hidden; position:relative; cursor:pointer}
  .kb-content.open{max-height:none}
  .kb-content:not(.open)::after{content:""; position:absolute; left:0; right:0; bottom:0; height:20px;
              background:linear-gradient(transparent, #fff)}
  .kb-char{display:inline-block; margin-left:6px; padding:1px 7px; border-radius:10px;
           background:#eef4fb; color:#1f4e79; font-size:11px; font-weight:600; white-space:nowrap}
  .kb-part{background:#fff5e8; color:#9a5b13}
  .kb-expand{display:inline-block; margin-top:6px; color:#1f4e79; font-size:12px;
             font-weight:600; cursor:pointer; user-select:none}
  .kb-expand:hover{text-decoration:underline}
  .kb-resplit{background:#eef8f2!important; color:#0f6b46!important; border-color:#bfe3d0!important}
  .kb-src{font-size:11.5px; color:var(--text-dim); margin-top:6px}
  .kb-src a{color:var(--primary)}
  .kb-chip{cursor:pointer}
  .kb-chip:hover{background:var(--primary-light)}
  /* 登录页 */
  .login-wrap{max-width:460px; margin:60px auto; padding:0 16px}
  .login-card{background:var(--card); border-radius:12px; padding:34px 36px;
              box-shadow:0 4px 18px rgba(30,50,80,.12)}
  .login-card h2{font-size:19px; color:var(--primary); margin-bottom:6px; text-align:center}
  .login-card .sub{font-size:12.5px; color:var(--text-dim); text-align:center;
                   margin-bottom:24px; line-height:1.7}
  .login-card .field{margin-bottom:14px}
  .login-card .field label{display:block; font-size:13px; color:var(--text-dim); margin-bottom:6px}
  .login-card .field input{width:100%; border:1px solid var(--border); border-radius:6px;
      padding:10px 12px; font-size:14px; font-family:inherit; outline:none; background:#fff; color:var(--text)}
  .login-card .field input:focus{border-color:var(--primary); box-shadow:0 0 0 3px rgba(31,78,121,.12)}
  .login-card .btn{width:100%; padding:11px; font-size:15px; margin-top:6px}
  .login-err{display:none; background:var(--err-bg); color:var(--err-text); border:1px solid #F3C2C2;
             border-radius:8px; padding:10px 14px; font-size:13px; margin-bottom:14px; line-height:1.6}
  .login-err.show{display:block}
  .login-foot{margin-top:18px; font-size:12px; color:var(--text-dim); line-height:1.9; text-align:center}
  .login-foot code{background:#EEF2F7; padding:1px 6px; border-radius:4px; font-size:11.5px}
  .otp-row{display:flex; gap:8px; align-items:center}
  .otp-row input{flex:1}
  .otp-row .btn{width:auto; margin:0; white-space:nowrap; padding:9px 12px; font-size:13px}
  @media (max-width:760px){ .desc{max-width:200px} }

/* 知识库：编辑按钮（与删除按钮并排，蓝色） */
.kb-edit{margin-left:0!important;background:#f2f8ff!important;color:#1f4e79!important;border-color:#c9dcf2!important}
.kb-edit:hover{color:#1f4e79!important;border-color:#9bc0ea!important}

/* 工作台选择 */
.ws-picker{position:fixed;inset:0;z-index:9999;background:rgba(15,32,55,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.ws-panel{background:#fff;border-radius:14px;padding:26px 28px;max-width:720px;width:100%;box-shadow:0 18px 50px rgba(15,32,55,.28)}
.ws-panel h2{margin:0 0 6px;font-size:22px;color:#1f4e79}
.ws-panel .sub{color:#5b6570;font-size:13.5px;line-height:1.75;margin-bottom:18px}
.ws-cards{display:flex;gap:14px;flex-wrap:wrap}
.ws-card{flex:1;min-width:240px;text-align:left;background:#f7fafd;border:1px solid #d6e2ef;border-radius:10px;padding:16px 18px;cursor:pointer;font-family:inherit;transition:.15s}
.ws-card:hover:not(:disabled){border-color:#1f4e79;background:#eef6ff;transform:translateY(-2px)}
.ws-card:disabled{opacity:.5;cursor:not-allowed}
.ws-card b{display:block;color:#1f4e79;font-size:16px;margin-bottom:6px}
.ws-card span{display:block;color:#4a5560;font-size:13px;line-height:1.6}
.ws-card em{display:block;margin-top:8px;font-size:12px;color:#b45309;font-style:normal}
.ws-remember{display:block;margin:16px 0 8px;font-size:13px;color:#334;cursor:pointer}

/* 核查标准细节（返检前把「是/否」的判定口径摊开） */
.crit-tip{margin-top:10px;padding:10px 13px;background:#fffaf0;border:1px solid #f0dcae;border-radius:8px;font-size:12.5px;line-height:1.75;color:#5a4a2c}
.crit-tip b{color:#1f4e79}
.crit-intro{padding:10px 13px;background:#eef6ff;border:1px solid #cfe0f5;border-radius:8px;font-size:12.8px;line-height:1.7;margin-bottom:14px;color:#294761}
.crit-group{border:1px solid var(--border);border-radius:10px;margin-bottom:13px;overflow:hidden;background:#fff}
.crit-group-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 13px;background:#f4f8fd;border-bottom:1px solid var(--border)}
.crit-group-head b{color:#1f4e79;font-size:14px}
.crit-src{font-size:11.5px;color:#5b6570;background:#fff;border:1px solid #dce7f3;border-radius:6px;padding:2px 7px}
.crit-edit-tag{font-size:11.5px;color:#0f6b46;background:#e8f6ee;border:1px solid #bfe4cf;border-radius:6px;padding:2px 7px}
.crit-min-box{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12.5px;color:#334;white-space:nowrap}
.ci-min{width:52px;padding:4px 6px;border:1px solid #c9d8ea;border-radius:6px;font-size:13px;text-align:center}
.crit-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 13px;border-bottom:1px solid #f0f4f8}
.crit-item:last-of-type{border-bottom:none}
.crit-item .ci-req{margin:0;flex:none}
.crit-item .ci-req-label{font-size:11.5px;color:#5b6570;white-space:nowrap;cursor:pointer}
.crit-item .ci-text{flex:1.1;min-width:210px;padding:6px 9px;border:1px solid #d6e0ec;border-radius:6px;font-size:13px;font-family:inherit}
.crit-item .ci-kw{flex:1;min-width:200px;padding:6px 9px;border:1px solid #d6e0ec;border-radius:6px;font-size:12.5px;font-family:inherit;color:#3c5064}
.crit-item input:focus{outline:none;border-color:#1f4e79}
.crit-item .ci-del{background:#fff;border:1px solid var(--border);color:#8b94a0;border-radius:6px;padding:5px 9px;cursor:pointer;font-size:12px}
.crit-item .ci-del:hover{color:#B91C1C;border-color:#e5b4b4}
.crit-item .ci-ref{font-size:11px;color:#8b94a0;flex-basis:100%;padding-left:22px}
.crit-item.fact{background:#f2f8ff}
.crit-item.fact .ci-row{flex:1;min-width:0}
.crit-item.fact .ci-fact-note{flex:1;min-width:220px;padding:6px 9px;border:1px dashed #9dbde2;border-radius:6px;font-size:12px;line-height:1.6;color:#274a72;background:#fff}
.crit-warn{margin:2px 13px 6px;padding:6px 10px;background:#fff7e6;border:1px solid #f0d39b;border-radius:6px;font-size:12px;line-height:1.6;color:#8a5a00}
/* v13：且词 / 或词 / 达标数 / 匹配模式 */
.crit-item.kw{display:block;padding:9px 13px;background:#fff}
.crit-item .ci-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.crit-item .ci-row+.ci-row{margin-top:7px}
.crit-item .ci-match{padding:6px 7px;border:1px solid #d6e0ec;border-radius:6px;font-size:12px;font-family:inherit;color:#334;background:#f8fbff;cursor:pointer}
.ci-min-any-box{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:11.5px;color:#5b6570;white-space:nowrap}
.ci-min-any{width:46px;padding:4px 5px;border:1px solid #c9d8ea;border-radius:6px;font-size:12.5px;text-align:center}
.crit-item .kw-row{align-items:flex-end}
.ci-slot{flex:1;min-width:230px;display:flex;flex-direction:column;gap:3px;font-size:11.5px}
.ci-slot span{font-weight:600}
.ci-slot.must span{color:#a33a2b}
.ci-slot.any span{color:#1f4e79}
.ci-slot input{width:100%;box-sizing:border-box;padding:6px 9px;border:1px solid #d6e0ec;border-radius:6px;font-size:12.5px;font-family:inherit;color:#3c5064}
.ci-slot.must input{border-color:#e8c9c2;background:#fffaf8}
.ci-slot input:focus{outline:none;border-color:#1f4e79}
.crit-item .ci-foot-row{gap:9px;align-items:flex-start}
.ci-syn{background:#eef6ff;border:1px solid #cfe0f5;color:#1f4e79;border-radius:6px;padding:4px 9px;font-size:11.5px;font-family:inherit;cursor:pointer;white-space:nowrap}
.ci-syn:hover{background:#dcecff}
.ci-syn:disabled{opacity:.55;cursor:wait}
.ci-syntax{font-size:11px;color:#8b94a0;line-height:1.6;flex:1;min-width:200px}
.ci-risk{flex-basis:100%;font-size:11px;line-height:1.6;color:#b45309}
.crit-item.kw .ci-ref{padding-left:0}
.crit-batch{background:#fff;border:1px solid #cfe0f5;color:#1f4e79;border-radius:6px;padding:3px 8px;font-size:11.5px;font-family:inherit;cursor:pointer;white-space:nowrap}
.crit-batch:hover{background:#eef6ff}
.check-chips{margin-top:5px;display:flex;flex-wrap:wrap;gap:5px}
.check-chip{font-size:11px;padding:2px 7px;border-radius:10px;border:1px solid #cfe0f5;background:#f4f8fd;color:#274a72}
.check-chip.and{border-color:#e8c9c2;background:#fff5f2;color:#a33a2b}
.crit-add{margin:8px 13px 11px;background:#f2f8ff;border:1px dashed #a9c6e8;color:#1f4e79;border-radius:6px;padding:5px 12px;cursor:pointer;font-size:12.5px;font-family:inherit}
.crit-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--border)}
.crit-foot .sp{flex:1}
.crit-link{display:block;margin:3px auto 0;background:none;border:none;color:#1f4e79;font-size:11px;text-decoration:underline;cursor:pointer;padding:0}
.crit-link:hover{color:#0f6b46}
.check-group{padding:10px 13px;background:#f4f8fd;border:1px solid #dce7f3;border-radius:8px;margin-bottom:12px;font-size:13px;line-height:1.7}
.check-row{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border:1px solid var(--border);border-radius:8px;margin-bottom:8px}
.check-row.hit{background:#f2fbf5;border-color:#cfe8d9}
.check-row.miss{background:#fffaf2;border-color:#f0dcae}
.check-mark{font-size:15px;font-weight:700;flex:none;width:20px}
.check-row.hit .check-mark{color:#137333}
.check-row.miss .check-mark{color:#b45309}
.check-main{flex:1;min-width:0}
.check-main b{font-size:13px;color:#243b53}
.check-quote{margin-top:4px;font-size:12px;color:#4a5560;background:#fff;border:1px solid #e6ecf3;border-radius:6px;padding:5px 8px;word-break:break-all}
.check-kw{margin-top:4px;font-size:11.5px;color:#7a8593}

/* ---- 标准模板库 ---- */
.tpl-intro{padding:10px 13px;background:#f5f1ff;border:1px solid #ddd2f7;border-radius:8px;font-size:12.8px;line-height:1.75;margin-bottom:12px;color:#3d3159}
.tpl-intro code,.kb-src code{background:#fff;border:1px solid #e3dcf3;border-radius:4px;padding:1px 5px;font-size:11.5px}
.tpl-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.tpl-tools .sp{flex:1}
.tpl-card{border:1px solid var(--border);border-radius:9px;margin-bottom:10px;background:#fff;overflow:hidden}
.tpl-card.tpl-shared{border-left:4px solid #4a83d4;background:#fbfdff}
.tpl-card.tpl-named{border-left:4px solid #8a68d0;background:#fdfcff}
.tpl-top{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:9px 12px}
.tpl-top .sp{flex:1}
.tpl-top b{font-size:13.5px;color:#243b53}
.tpl-kind{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;white-space:nowrap}
.tpl-shared .tpl-kind{background:#e5f0ff;color:#1e5aa8}
.tpl-named .tpl-kind{background:#efe8ff;color:#6844b5}
.tpl-meta{font-size:11.5px;color:#7a8593}
.tpl-sub{padding:0 12px 8px;font-size:12px;color:#4a5560;line-height:1.6}
.tpl-btn{padding:4px 10px;font-size:12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#3d4b5c;cursor:pointer;white-space:nowrap}
.tpl-btn:hover{border-color:#1f4e79;color:#1f4e79}
.tpl-btn.primary{background:#1f4e79;border-color:#1f4e79;color:#fff;font-weight:600}
.tpl-btn.primary:hover{background:#163b5c;color:#fff}
.tpl-btn.danger:hover{border-color:#c0392b;color:#c0392b}
.tpl-detail{padding:0 12px 12px;max-height:340px;overflow:auto}
.tpl-g{margin:8px 0 5px;font-size:12.5px;color:#1f4e79}
.tpl-table{width:100%;border-collapse:collapse;font-size:11.5px;background:#fff}
.tpl-table th,.tpl-table td{border:1px solid #e3e9f1;padding:4px 7px;text-align:left;vertical-align:top;word-break:break-all}
.tpl-table th{background:#f3f7fc;color:#3d4b5c;font-weight:600;white-space:nowrap}
.kb-src-note{display:block;margin-top:2px;font-size:11px;color:#8b94a0}
.kb-refresh{margin-left:8px;padding:2px 8px;font-size:11px;border:1px solid #c9d8ea;border-radius:5px;background:#fff;color:#1f4e79;cursor:pointer}
.kb-refresh:hover{background:#eef5fd}
.kb-refresh:disabled{opacity:.6;cursor:wait}
