/* ============================================================
   late. 判断日志 · 样式
   ⚠️ 只放本页特有的规则。
   全站通用部分（tokens / 导航 / 页头 / 区块标题 / 页脚 / .wrap 宽度）
   一律继承 company.css —— 不要在这里重复定义，否则会漂移。
   ============================================================ */

/* ---------- 页头 ---------- */
.lede b{color:var(--ink)}
.rules{margin-top:18px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:0 12px 12px 0}
.rules p{font-size:.95rem;color:var(--ink-2);line-height:1.9}
.rules .k{font-weight:700;color:var(--ink)}
.rules .sep{color:#C7CFDB;margin:0 6px}

/* ---------- 统计 ---------- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;margin:34px 0 0}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px 14px}
.stat .s-l{font-size:.8rem;color:var(--muted);margin-bottom:7px}
.stat .s-v{font-family:var(--num);font-size:1.55rem;font-weight:700;color:var(--ink);line-height:1.1;letter-spacing:-.01em}
.stat .s-v small{font-size:.62em;font-weight:600;color:var(--muted);margin-left:3px}
.stat .s-s{font-size:.78rem;color:var(--faint);margin-top:5px}
.stat.warn .s-v{color:var(--amber)}
.stat.due .s-v{color:var(--red)}
.gbar{margin-top:14px;height:6px;border-radius:4px;background:var(--line-2);overflow:hidden}
.gbar i{display:block;height:100%;background:var(--blue);border-radius:4px}

/* ---------- 区块 ---------- */

/* ---------- 录入表单 ---------- */
.jform{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.frow{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fld{display:flex;flex-direction:column;gap:5px}
.fld label{font-size:.78rem;font-weight:600;color:var(--muted)}
.fld input,.fld select,.fld textarea{
  font-family:inherit;font-size:.94rem;color:var(--ink);background:#FBFCFE;
  border:1px solid #D7DEE9;border-radius:9px;padding:9px 12px;width:100%;
}
.fld textarea{resize:vertical;min-height:62px;line-height:1.7}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1);background:#fff}
.fld.grow{flex:1;min-width:200px}
.fld.sm{width:150px}
.fld.xs{width:120px}
.fblock{margin-bottom:14px}
.fblock label{display:block;font-size:.82rem;font-weight:650;color:var(--ink);margin-bottom:6px}
.fblock .after{font-size:.82rem;color:var(--muted);margin-top:6px}
.conf-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.conf-row input[type=range]{flex:1;min-width:180px;accent-color:var(--blue)}
.conf-val{font-family:var(--num);font-weight:700;color:var(--ink);font-size:1.05rem;min-width:52px}
.fbtns{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.chk{display:inline-flex;align-items:center;gap:7px;font-size:.88rem;color:var(--ink-2);cursor:pointer;user-select:none}
.chk input{accent-color:var(--blue);width:15px;height:15px;cursor:pointer}
.btn{
  appearance:none;font-family:inherit;font-size:.92rem;font-weight:600;cursor:pointer;
  border-radius:999px;padding:9px 20px;transition:background .15s ease,border-color .15s ease,transform .12s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn-primary{background:var(--blue);color:#fff;border:1px solid var(--blue)}
.btn-primary:hover{background:#1D4ED8}
.btn-ghost{background:var(--surface);color:var(--ink-2);border:1px solid #D7DEE9}
.btn-ghost:hover{border-color:#C3CDDC;background:#FBFCFE}
.btn-sm{padding:6px 14px;font-size:.84rem}

/* ---------- 判断列表 ---------- */
.jlist{display:flex;flex-direction:column;gap:14px}
.jcard{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px 22px 16px}
.jcard.hit{border-left:3px solid var(--green)}
.jcard.miss{border-left:3px solid var(--red)}
.jcard.pending{border-left:3px solid #D7DEE9}
.jhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:.8rem;color:var(--muted)}
.jhead .obj{font-weight:700;color:var(--ink);font-size:.92rem}
.jhead .dot{color:#DCE2EC}
.jline{display:grid;grid-template-columns:64px 1fr;gap:12px;margin-bottom:9px;align-items:start}
.jline .lb{font-size:.78rem;font-weight:700;color:var(--faint);padding-top:2px;letter-spacing:.02em}
.jline .tx{font-size:.96rem;color:var(--ink-2);line-height:1.8}
.jline.claim .tx{color:var(--ink);font-weight:620;font-size:1rem}
.jline.falsify .tx{color:var(--amber)}
.jfoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:13px;padding-top:12px;border-top:1px solid var(--line-2);font-size:.8rem;color:var(--muted)}
.jfoot .conf{font-family:var(--num);font-weight:700;color:var(--ink)}
.badge{font-size:.72rem;font-weight:600;padding:2px 9px;border-radius:999px}
.b-pending{color:#6B7480;background:#EEF0F4}
.b-hit{color:#0A6B4D;background:var(--green-soft)}
.b-miss{color:#8A1C12;background:var(--red-soft)}
.b-due{color:#8A5308;background:var(--amber-soft)}
.b-local{color:#1D4ED8;background:var(--blue-soft)}
.jresult{margin-top:12px;background:#FBFCFE;border:1px solid var(--line-2);border-radius:10px;padding:11px 14px;font-size:.9rem;color:var(--ink-2);line-height:1.75}
.jresult b{color:var(--ink)}
.jacts{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.empty{padding:40px 4px;color:var(--muted);font-size:.94rem;text-align:center;border:1px dashed #D7DEE9;border-radius:14px}

/* ---------- 校准 ---------- */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.cal-top{display:flex;gap:26px;flex-wrap:wrap;align-items:baseline;margin-bottom:16px}
.cal-top .cv{font-family:var(--num);font-size:1.5rem;font-weight:700;color:var(--ink)}
.cal-top .cl{font-size:.8rem;color:var(--muted)}
.cal svg{width:100%;height:auto;display:block;max-width:420px}
.cal-note{font-size:.85rem;color:var(--muted);margin-top:12px;line-height:1.75}
.cal-note b{color:var(--ink-2)}

/* ---------- 问题汇总（从四家公司页自动抓） ---------- */
.qgroup{margin-bottom:22px}
.qgroup h3{font-size:.95rem;font-weight:700;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.qgroup h3 .src{font-size:.78rem;font-weight:500;color:var(--muted)}
.qgroup h3 a{color:var(--blue);font-size:.8rem;font-weight:600}
.qitem{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:start;padding:12px 0;border-top:1px dashed var(--line-2)}
.qitem .qt{font-size:.93rem;color:var(--ink-2);line-height:1.75}
.qitem .qa{white-space:nowrap;padding-top:2px}
.qitem .qa button{font-size:.8rem;font-weight:600;color:var(--blue);background:none;border:none;cursor:pointer;font-family:inherit;padding:4px 0}
.qitem .qa button:hover{text-decoration:underline}

/* ---------- 导出面板 ---------- */
.io-panel{display:none;margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px}
.io-panel.show{display:block}
.io-panel h4{font-size:.94rem;font-weight:700;color:var(--ink);margin-bottom:6px}
.io-panel p{font-size:.85rem;color:var(--muted);margin-bottom:10px;line-height:1.7}
.io-panel textarea{width:100%;min-height:190px;border:1px solid var(--line);border-radius:9px;padding:12px;
  font-family:var(--num);font-size:12.5px;line-height:1.6;color:var(--ink-2);background:#FBFCFE;resize:vertical}
.io-panel textarea:focus{outline:none;border-color:var(--blue)}


/* ---------- 最近一年热力图 ---------- */
.heat{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px 16px;overflow-x:auto}
.heat svg{display:block;width:100%;height:auto;min-width:660px}
.heat .lg{display:flex;align-items:center;gap:6px;justify-content:flex-end;margin-top:10px;min-width:660px;
          font-size:.78rem;color:var(--muted)}
.heat .lg i{width:11px;height:11px;border-radius:3px;display:inline-block}
.heat .lg span{padding:0 3px}

@media (max-width:720px){
  .jline{grid-template-columns:1fr;gap:2px}
  .jline .lb{padding-top:0}
  .fld.sm,.fld.xs{width:100%}
  .qitem{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
