
.jdh-cd { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; text-align:left; }
.jdh-cd-pane { display:flex; flex-direction:column; min-width:0; min-height:460px; padding:20px; border:1px solid var(--jd-line); border-radius:20px; background:#fff; box-shadow:0 18px 40px -32px rgba(24,27,41,.35); }
.jdh-cd-out { overflow:auto; max-height:720px; }
.jdh-cd-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; }
.jdh-cd-select { height:36px; padding:0 10px; border:1px solid var(--jd-line); border-radius:100px; background:#fff; font:inherit; font-size:14px; color:var(--jd-ink); }
.jdh-cd-file { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.jdh-cd-code { flex:1; width:100%; margin-top:10px; min-height:300px; padding:12px; border:1px solid var(--jd-line); border-radius:12px; background:#FBFCFE; resize:vertical; outline:none;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:13px; line-height:20px; color:var(--jd-ink); white-space:pre; overflow:auto; tab-size:4; }
.jdh-cd-code:focus { border-color:rgba(46,116,131,.6); box-shadow:0 0 0 3px rgba(46,116,131,.12); background:#fff; }
.jdh-cd-code--sm { min-height:140px; flex:none; }
.jdh-cd-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; padding-top:14px; border-top:1px solid var(--jd-line); }
.jdh-cd-hint { font-size:13px; color:var(--jd-muted); }
.jdh-cd-go { display:inline-flex; align-items:center; gap:8px; height:46px; padding:0 22px; border:0; border-radius:999px; background:var(--jd-teal); color:#fff; font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
.jdh-cd-go:hover:not(:disabled) { background:var(--jd-teal-deep); }
.jdh-cd-go:disabled { opacity:.5; cursor:not-allowed; }
.jdh-cd-note { margin-top:12px; padding:10px 12px; border-radius:12px; background:#F1F5F9; color:var(--jd-body); font-size:13px; line-height:20px; }
.jdh-cd-mock { margin-top:12px; padding:10px 12px; border-radius:12px; background:var(--jd-plag-bg); color:#7A4A12; font-size:13px; line-height:20px; }
.jdh-cd-band { display:flex; align-items:center; gap:14px; margin-top:16px; }
.jdh-cd-badge { display:inline-flex; align-items:center; height:40px; padding:0 18px; border-radius:100px; font-size:18px; font-weight:700; }
.jdh-cd-badge--low { background:#E7F6EF; color:#17724A; }
.jdh-cd-badge--medium { background:#FFF4E0; color:#8A5A0B; }
.jdh-cd-badge--high { background:#FDECEC; color:#A12A2A; }
.jdh-cd-band-t { display:flex; flex-direction:column; gap:2px; font-size:13px; line-height:19px; color:var(--jd-muted); }
.jdh-cd-band-t b { color:var(--jd-ink); font-size:15px; }
.jdh-cd-sub { margin-top:20px; font-size:15px; font-weight:600; color:var(--jd-ink); }
.jdh-cd-p { margin-top:8px; font-size:14px; line-height:22px; color:var(--jd-body); }
.jdh-cd-list { margin-top:10px; display:flex; flex-direction:column; gap:10px; }
.jdh-cd-item { padding:10px 12px; border:1px solid var(--jd-line); border-radius:12px; font-size:14px; line-height:21px; color:var(--jd-body); }
.jdh-cd-item b { color:var(--jd-ink); }
.jdh-cd-tag { display:inline-block; margin-left:6px; padding:0 8px; border-radius:100px; font-size:12px; font-weight:600; line-height:20px; vertical-align:1px; }
.jdh-cd-tag--ai { background:#FDECEC; color:#A12A2A; }
.jdh-cd-tag--neutral { background:#F1F5F9; color:#475569; }
.jdh-cd-tag--human { background:#E7F6EF; color:#17724A; }
.jdh-cd-tabs { display:inline-flex; gap:4px; padding:4px; border-radius:100px; background:#F1F5F9; }
.jdh-cd-tab { height:34px; padding:0 14px; border:0; border-radius:100px; background:transparent; font:inherit; font-size:14px; font-weight:600; color:var(--jd-muted); cursor:pointer; }
.jdh-cd-tab[aria-selected="true"] { background:#fff; color:var(--jd-ink); box-shadow:0 1px 3px rgba(24,27,41,.12); }
.jdh-cd-subs { display:flex; flex-direction:column; gap:14px; margin-top:12px; }
.jdh-cd-subm { display:flex; flex-direction:column; padding:12px; border:1px solid var(--jd-line); border-radius:14px; }
.jdh-cd-subm-h { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.jdh-cd-name { flex:1; min-width:120px; height:36px; padding:0 10px; border:1px solid var(--jd-line); border-radius:10px; font:inherit; font-size:14px; color:var(--jd-ink); }
.jdh-cd-scroll { margin-top:10px; overflow-x:auto; }
.jdh-cd-matrix { border-collapse:collapse; font-size:13px; }
.jdh-cd-matrix th, .jdh-cd-matrix td { min-width:44px; padding:6px 8px; border:1px solid var(--jd-line); text-align:center; white-space:nowrap; }
.jdh-cd-matrix :is(th, thead td) { background:#F8FAFC; color:var(--jd-ink); font-weight:600; }
.jdh-cd-matrix td button { border:0; background:none; font:inherit; font-weight:600; color:inherit; cursor:pointer; text-decoration:underline; }
.jdh-cd-pair { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; width:100%; padding:10px 12px; border:1px solid var(--jd-line); border-radius:12px; background:#fff;
  font:inherit; font-size:14px; color:var(--jd-body); text-align:left; cursor:pointer; }
.jdh-cd-pair[aria-pressed="true"] { border-color:var(--jd-teal); box-shadow:0 0 0 3px rgba(46,116,131,.12); }
.jdh-cd-pair b { color:var(--jd-ink); }
.jdh-cd-side { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; }
.jdh-cd-src { min-width:0; border:1px solid var(--jd-line); border-radius:12px; overflow:hidden; }
.jdh-cd-src-h { padding:6px 10px; background:#F8FAFC; font-size:13px; font-weight:600; color:var(--jd-ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jdh-cd-pre { max-height:420px; margin:0; overflow:auto; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px; line-height:18px; }
.jdh-cd-ln { display:flex; white-space:pre; }
.jdh-cd-ln span:first-child { flex:none; width:38px; padding-right:8px; text-align:right; color:#94A3B8; user-select:none; }
.jdh-cd-ln--hit { background:var(--jd-plag-bg); }
.jdh-cd-score { display:flex; align-items:center; gap:16px; margin-top:16px; }
.jdh-cd-num { font-size:44px; line-height:48px; font-weight:700; color:var(--jd-mint); }
.jdh-cd-num--hit { color:var(--jd-plag); }
.jdh-cd-links a { display:inline-flex; align-items:center; gap:4px; color:var(--jd-teal-deep); font-weight:600; word-break:break-word; }
.jdh-cd-codeline { display:block; margin:4px 0; padding:6px 8px; border-radius:8px; background:#F8FAFC; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:12px; line-height:18px; overflow-x:auto; white-space:pre; }
.jdh-cd-drop { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; flex:1; min-height:260px; margin-top:10px; padding:22px 16px; border:1.5px dashed #CBD5DF; border-radius:16px;
  background:#FBFCFE; color:var(--jd-teal); text-align:center; cursor:pointer; }
.jdh-cd-drop.is-over { border-color:var(--jd-teal); background:#F4FAF9; }
.jdh-cd-drop-t { font-size:15px; font-weight:600; color:var(--jd-ink); word-break:break-word; }
.jdh-cd-drop-h { font-size:13px; color:var(--jd-muted); }
.jdh-cd-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.jdh-cd-chip { padding:2px 10px; border-radius:100px; background:var(--jd-plag-bg); color:#7A4A12; font-size:13px; font-weight:600; text-decoration:none; }
.jdh-cd-slide { padding:12px; border:1px solid var(--jd-line); border-radius:14px; scroll-margin-top:90px; }
.jdh-cd-slide--hit { border-color:#F3C98B; }
.jdh-cd-slide-h { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; font-size:14px; color:var(--jd-muted); }
.jdh-cd-slide-h b { color:var(--jd-ink); font-size:15px; }
.jdh-cd-slide-t { margin-top:8px; font-size:14px; line-height:22px; color:var(--jd-body); word-break:break-word; }
.jdh-cd-mark { background:var(--jd-plag-bg); color:var(--jd-ink); border-radius:4px; padding:1px 2px; }
.jdh-cd-mark sup { margin-left:2px; font-size:10px; font-weight:700; color:var(--jd-plag); }
.jdh-cd-ol { margin-top:8px; padding-left:20px; list-style:decimal; display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--jd-muted); }
.jdh-cd-ol span { display:block; }
@media (max-width: 900px) { .jdh-cd { grid-template-columns:1fr; } .jdh-cd-pane { min-height:0; } }
@media (max-width: 700px) { .jdh-cd-side { grid-template-columns:1fr; } }


.jdh-id-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:220px;padding:24px;border:2px dashed var(--jd-line);border-radius:16px;background:#fff;text-align:center;cursor:pointer;color:var(--jd-ink);font:inherit;width:100%}
.jdh-id-drop:hover,.jdh-id-drop.is-over{border-color:var(--jd-teal)}
.jdh-id-drop-t{font-weight:600}
.jdh-id-drop-t u{color:var(--jd-teal);text-underline-offset:3px}
.jdh-id-meta{font-size:13px;color:var(--jd-muted)}
.jdh-id-preview{display:block;max-width:100%;max-height:320px;margin:0 auto;border-radius:12px;object-fit:contain}
.jdh-id-local{display:flex;align-items:flex-start;gap:8px;margin-top:12px;font-size:13px;color:var(--jd-muted)}
.jdh-id-step{margin:18px 0 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--jd-muted)}
.jdh-id-tier{padding:14px 16px;border-radius:14px;border:1px solid var(--jd-line);background:#fff}
.jdh-id-tier--confirmed_ai{border-color:var(--jd-teal)}
.jdh-id-tier-t{margin:0 0 4px;font-weight:700}
.jdh-id-tier-b{margin:0;font-size:14px;line-height:1.55}
.jdh-id-warn{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#F1F5F9;font-size:13px}
.jdh-id-ev{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.jdh-id-ev li{padding:10px 12px;border-radius:10px;border:1px solid var(--jd-line);font-size:13px;line-height:1.5}
.jdh-id-ev b{margin-right:6px}
.jdh-id-ev code{font-family:inherit;word-break:break-word}
.jdh-id-deep{margin-top:10px;display:grid;gap:10px}
.jdh-id-privacy{font-size:12px;color:var(--jd-muted)}
/* the hub badge is sized for one word ("High"); our bands are phrases ("很可能不是 AI 生成") — keep them on one line,
   let the height follow the text, and wrap the explanation under the badge when the row is too narrow */
.jdh-id-band{flex-wrap:wrap;align-items:center;row-gap:8px}
.jdh-id-band .jdh-cd-badge{height:auto;min-height:40px;padding:8px 18px;white-space:nowrap;flex-shrink:0;line-height:1.3}
.jdh-id-band .jdh-cd-band-t{flex:1 1 220px;min-width:0}
@media (max-width:768px){.jdh-id-drop{min-height:180px}.jdh-id-preview{max-height:240px}}
