/* ============================================================
   历史正剧(单元剧)—— 剧本页第五个标签
   放映室暗色 token 为底,史册气质靠两样东西给:宋体展示字(--font-display-cn)
   只用在成语与《通鉴》原文上,判定色沿用平台语义色(通过=青、待核=琥珀、阻断=赭红)。
   所有类名 hd- 前缀,与 nv-/ww-/ltv- 各家互不干扰。
   ============================================================ */
#page-historydrama { padding: 0; }
.hd-wrap { padding: 4px 32px 48px; font-size: 13.5px; color: var(--text); }

/* ---------- 通用积木 ---------- */
.hd-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700; line-height: 1;
    padding: 4px 10px; border-radius: 999px; white-space: nowrap; margin-right: 6px; }
.hd-ok { background: rgba(77, 191, 168, .13); color: #4dbfa8; border: 1px solid rgba(77, 191, 168, .38); }
.hd-hold { background: rgba(232, 176, 75, .13); color: var(--accent); border: 1px solid rgba(232, 176, 75, .38); }
.hd-bad { background: rgba(224, 123, 99, .13); color: var(--danger); border: 1px solid rgba(224, 123, 99, .4); }
.hd-pill.hd-run { background: rgba(120, 160, 255, .12); color: #8fb0ff; border: 1px solid rgba(120, 160, 255, .36); }
.hd-pill.hd-wait { background: rgba(255, 255, 255, .05); color: var(--text-hint); border: 1px solid var(--border); }
.hd-dim { color: var(--text-hint); font-size: 12px; }
.hd-sp { flex: 1; }
.hd-idiom { font-family: var(--font-display-cn); font-size: 15px; font-weight: 700; color: var(--strong); letter-spacing: .04em; }
.hd-canon { font-family: var(--font-display-cn); color: #d9cfb6; }
.hd-sha { font-size: 11px; color: var(--text-hint); font-variant-numeric: tabular-nums; margin-left: 6px; }
.hd-empty { padding: 26px 18px; text-align: center; color: var(--text-hint); font-size: 13px; line-height: 1.8;
    border: 1px dashed var(--border); border-radius: 12px; background: rgba(255, 255, 255, .015); }
.hd-note { font-size: 12px; line-height: 1.85; color: var(--text-secondary); margin: 10px 0 0;
    border-left: 2px solid rgba(232, 176, 75, .5); padding-left: 11px; }
.hd-gsub { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 800; letter-spacing: .1em;
    color: var(--text-secondary); margin: 22px 0 10px; text-transform: none; }
.hd-gsub::after { content: ''; flex: 1; height: 1px; background: var(--border); }

.hd-btn { border: 1px solid var(--border); background: var(--bg-white); color: var(--text); border-radius: 9px;
    padding: 8px 15px; font-size: 13px; font-weight: 600; cursor: pointer; transition: .15s;
    display: inline-flex; align-items: center; gap: 7px; }
.hd-btn:hover:not(:disabled) { border-color: var(--primary); color: var(--accent); }
.hd-btn.sm { padding: 5px 11px; font-size: 12px; border-radius: 8px; }
.hd-btn.primary { background: var(--gold-grad); color: #1a1205; border: none; font-weight: 800; }
.hd-btn.primary:hover:not(:disabled) { filter: brightness(1.07); color: #1a1205; }
.hd-btn:disabled { opacity: .42; cursor: not-allowed; }

.hd-warnbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 12px 0;
    border: 1px solid rgba(232, 176, 75, .42); background: rgba(232, 176, 75, .08); color: var(--accent);
    border-radius: 11px; padding: 11px 15px; font-size: 12.5px; line-height: 1.75; }
.hd-warnbar b { color: var(--strong); }
.hd-warnbar.hd-ovr { border-color: rgba(120, 160, 255, .38); background: rgba(120, 160, 255, .07); color: #8fb0ff; }
.hd-warnbar.hd-bad { border-color: rgba(224, 123, 99, .42); background: rgba(224, 123, 99, .08); color: var(--danger); }

/* ---------- 表 ---------- */
.hd-tb { width: 100%; border-collapse: collapse; font-size: 12.5px; background: var(--bg-white);
    border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
.hd-tb th { text-align: left; font-size: 11.5px; font-weight: 700; color: var(--text-hint); letter-spacing: .06em;
    padding: 10px 12px; background: rgba(255, 255, 255, .025); border-bottom: 1px solid var(--border); white-space: nowrap; }
.hd-tb td { padding: 10px 12px; border-bottom: 1px solid rgba(255, 255, 255, .05); vertical-align: top; line-height: 1.7; }
.hd-tb tbody tr:last-child td { border-bottom: none; }
.hd-tb tbody tr:hover { background: rgba(255, 255, 255, .022); }
.hd-tb tr.hd-row-bad td { background: rgba(224, 123, 99, .05); }
.hd-eptb { display: block; overflow-x: auto; }          /* 窄屏:表横滚,别裁掉操作列 */
/* 编审单里的覆盖表(.hd-tb)列数也不少,375px 会把整页顶出横向滚动条 —— 窄屏一律让表自己横滚 */
@media (max-width: 760px) {
    .hd-wrap { padding: 4px 16px 40px; }                /* 侧边留 16px 天沟,不是 32px */
    .hd-tb { display: block; overflow-x: auto; }
    .hd-quote { max-width: 200px; }
}
.hd-ops { white-space: nowrap; }
.hd-ops .hd-btn { margin-right: 6px; }
.hd-ck { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-variant-numeric: tabular-nums; }
.hd-fid { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; color: var(--accent); white-space: nowrap; }
.hd-quote { max-width: 340px; }

/* ---------- 列表页 ---------- */
.hd-intro { border: 1px solid var(--border); background: var(--bg-white); border-radius: 14px; padding: 18px 22px; margin: 16px 0 4px; }
.hd-intro h3 { margin: 0 0 8px; font-size: 16px; font-weight: 800; color: var(--strong); font-family: var(--font-display-cn); letter-spacing: .06em; }
.hd-intro p { margin: 0 0 6px; font-size: 13px; line-height: 1.85; color: var(--text-secondary); }
.hd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.hd-card-s { border: 1px solid var(--border); background: var(--bg-white); border-radius: 13px; padding: 16px 18px;
    cursor: pointer; transition: .16s; }
.hd-card-s:hover { transform: translateY(-2px); border-color: var(--primary); box-shadow: var(--shadow); }
.hd-card-s-t { font-size: 15px; font-weight: 700; color: var(--strong); margin-bottom: 6px; }
.hd-card-s-m { font-size: 12px; color: var(--text-secondary); margin-bottom: 4px; }

.hd-form { display: flex; flex-direction: column; gap: 14px; border: 1px solid var(--border);
    background: var(--bg-white); border-radius: 14px; padding: 18px 22px; }
.hd-form label { display: flex; flex-direction: column; gap: 6px; font-size: 12px; color: var(--text-secondary); font-weight: 600; }
.hd-in { background: var(--bg); border: 1px solid var(--border); border-radius: 9px; color: var(--text);
    padding: 9px 12px; font-size: 13px; font-family: inherit; }
.hd-in:focus { outline: none; border-color: var(--primary); }
.hd-ta { resize: vertical; line-height: 1.75; font-size: 12.5px; min-height: 140px; }
.hd-prev-head { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.hd-prev-msg { margin: 0 0 12px; padding-left: 18px; font-size: 12px; line-height: 1.9; }
.hd-prev-msg li.bad { color: var(--danger); }
.hd-prev-msg li.hold { color: var(--accent); }
.hd-pack-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 16px; }

/* ---------- 自定义创作要求(两栏 + 每集一条) ----------
   两栏并排,窄屏落一列;字数条与「这一句不能用」都紧跟各自的输入框 ——
   服务端挡下的原句必须挨着那一栏显示,堆在页脚等于让人自己对号入座。 */
.hd-req { border: 1px solid var(--border); background: var(--bg-white); border-radius: 14px; padding: 16px 20px; margin-bottom: 4px; }
.hd-req-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.hd-req-f { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hd-req-f > label, .hd-req-ep > label { display: flex; flex-direction: column; gap: 4px;
    font-size: 12px; font-weight: 700; color: var(--text-secondary); }
.hd-req-f > label em, .hd-req-ep > label em { font-style: normal; font-weight: 400; font-size: 11px;
    line-height: 1.7; color: var(--text-hint); }
.hd-req-f.bad > label, .hd-req-ep.bad > label { color: var(--danger); }
.hd-req-f.bad .hd-in, .hd-req-ep.bad .hd-in { border-color: rgba(224, 123, 99, .6); }
.hd-ta2 { resize: vertical; min-height: 104px; line-height: 1.8; font-size: 12.5px; width: 100%; box-sizing: border-box; }
.hd-req-c { display: flex; align-items: baseline; gap: 8px; font-size: 11px; color: var(--text-hint);
    font-variant-numeric: tabular-nums; }
.hd-req-c .over { color: var(--danger); font-weight: 700; }
.hd-req-c b { color: var(--danger); font-weight: 700; }
.hd-req-e { display: flex; flex-direction: column; gap: 6px; }
.hd-req-e:empty { display: none; }
.hd-req-ep { margin: 12px 0 4px; }
.hd-hit { border: 1px solid rgba(224, 123, 99, .45); background: rgba(224, 123, 99, .07); border-radius: 10px;
    padding: 8px 12px; font-size: 11.5px; line-height: 1.8; color: var(--danger); }
.hd-hit b { display: block; color: var(--strong); font-family: var(--font-display-cn); font-size: 13px; margin: 2px 0; word-break: break-word; }
.hd-hit em { font-style: normal; display: block; color: var(--accent); }
.hd-hit .hd-dim { display: block; }
/* 逐集那一格:表里的多行输入(与核定面板同一份数据,单行 input 会吞掉换行),窄到一列也点得到 */
.hd-epreq { min-width: 190px; }
.hd-epreq .hd-in-sm { width: 100%; box-sizing: border-box; padding: 6px 9px; font-size: 12px; border-radius: 8px;
    font-family: inherit; line-height: 1.7; min-height: 46px; resize: vertical; }
.hd-epreq.bad .hd-in-sm { border-color: rgba(224, 123, 99, .6); }
.hd-epreq .hd-req-e { margin-top: 5px; max-width: 260px; }

/* 起单前的确认区:这一单实际会带上哪些自定义要求 */
.hd-reqsum { border: 1px solid rgba(232, 176, 75, .3); background: rgba(232, 176, 75, .05);
    border-radius: 11px; padding: 11px 15px; margin-top: 12px; font-size: 12.5px; line-height: 1.8; }
.hd-reqsum-h { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--accent); margin-bottom: 6px; }
.hd-reqsum-i { display: flex; gap: 10px; padding: 4px 0; border-top: 1px dashed rgba(255, 255, 255, .07); }
.hd-reqsum-i span { flex: 0 0 116px; color: var(--text-hint); font-size: 11.5px; padding-top: 2px; }
.hd-reqsum-i p { margin: 0; color: var(--text); line-height: 1.8; word-break: break-word; }

/* 编审单里的「本集生效的创作要求」:全文照登,不截断 */
.hd-creq { border: 1px solid var(--border); background: var(--bg-white); border-radius: 12px; padding: 14px 18px; }
.hd-creq-i { padding: 7px 0; border-bottom: 1px dashed rgba(255, 255, 255, .06); }
.hd-creq-i:last-of-type { border-bottom: none; }
.hd-creq-i label { display: block; font-size: 11.5px; color: var(--text-hint); margin-bottom: 5px; }
.hd-creq-i pre { margin: 0; white-space: pre-wrap; word-break: break-word; font-family: inherit;
    font-size: 12.5px; line-height: 1.9; color: var(--text); }
/* 运行期被剔掉、没有进提示词的那几句:与生效的几栏区分开,别让人以为它也生效了 */
.hd-creq-drop label { color: var(--danger, #d9534f); }
.hd-creq-drop pre { color: var(--text-hint); text-decoration: line-through; text-decoration-thickness: 1px; }

/* ---------- 起单 ---------- */
.hd-start { border: 1px solid var(--border); background: var(--bg-white); border-radius: 14px; padding: 16px 20px; }
.hd-startbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.hd-cost { font-size: 12.5px; color: var(--accent); background: rgba(232, 176, 75, .07);
    border: 1px solid rgba(232, 176, 75, .3); border-radius: 10px; padding: 10px 14px; line-height: 1.75; }
.hd-runs { display: flex; flex-direction: column; gap: 8px; }
.hd-runrow { display: flex; align-items: center; gap: 10px; border: 1px solid var(--border);
    background: var(--bg-white); border-radius: 10px; padding: 10px 14px; font-size: 12.5px; }

/* ---------- 史料包核定面板 ---------- */
.hd-rv-head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 14px 0 10px;
    border-bottom: 1px solid var(--border); margin-bottom: 4px; }
.hd-rv-head b { font-size: 15.5px; color: var(--strong); }
.hd-pack-body { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 24px; align-items: start; }
.hd-canon-box { font-family: var(--font-display-cn); font-size: 14px; line-height: 2.05; color: #d9cfb6;
    background: rgba(232, 176, 75, .04); border: 1px solid rgba(232, 176, 75, .2); border-radius: 12px;
    padding: 18px 20px; max-height: 60vh; overflow: auto; white-space: pre-wrap; word-break: break-word; margin: 0 0 10px; }
.hd-seg { margin-left: auto; display: inline-flex; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.hd-segb { background: transparent; border: none; color: var(--text-hint); font-size: 11.5px; padding: 5px 11px; cursor: pointer; }
.hd-segb.on { background: var(--primary-light); color: var(--accent-deep); font-weight: 700; }
.hd-qlist { margin: 0; padding-left: 18px; font-size: 12.5px; line-height: 1.95; }
.hd-qlist li { margin-bottom: 8px; }
.hd-qlist .hd-dim { margin-left: 8px; }
.hd-card { border: 1px solid rgba(232, 176, 75, .26); background: rgba(232, 176, 75, .045);
    border-radius: 12px; padding: 14px 18px; font-size: 12.5px; }
pre.hd-card { font-family: var(--font-display-cn); font-size: 13.5px; line-height: 2; white-space: pre-wrap; margin: 0; color: #d9cfb6; }
.hd-cardline { display: flex; gap: 12px; padding: 5px 0; border-bottom: 1px dashed rgba(255, 255, 255, .06); }
.hd-cardline:last-child { border-bottom: none; }
.hd-cardline label { flex: 0 0 72px; color: var(--text-hint); font-size: 11.5px; padding-top: 2px; }
.hd-cardline p { margin: 0; line-height: 1.8; color: var(--text); }

/* ---------- 史料包编辑(成语卡四项 + 必备史实分级) ----------
   长列表(20 条史实)要好用:分级下拉紧跟每条文本,整块竖着排,不做表格 ——
   表格一加下拉就必然横向滚动,窄屏更是点不到最后一列。 */
.hd-fld { display: flex; flex-direction: column; gap: 6px; padding: 9px 0; border-bottom: 1px dashed rgba(255, 255, 255, .06); }
.hd-fld:last-child { border-bottom: none; }
.hd-fld > label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px;
    font-size: 11.5px; font-weight: 700; color: var(--text-secondary); }
.hd-fld > label em { font-style: normal; font-weight: 400; font-size: 11px; color: var(--text-hint); }
.hd-fld.bad > label { color: var(--danger); }
.hd-ta1 { resize: vertical; min-height: 40px; line-height: 1.7; font-size: 12.5px; width: 100%; box-sizing: border-box; }
.hd-fld.bad .hd-in { border-color: rgba(224, 123, 99, .6); }
.hd-ferr { display: flex; flex-direction: column; gap: 3px; }
.hd-ferr:empty { display: none; }
.hd-e1 { font-size: 11.5px; line-height: 1.7; color: var(--danger); }

.hd-sel { background: var(--bg); border: 1px solid var(--border); border-radius: 7px; color: var(--text);
    padding: 4px 8px; font-size: 12px; font-family: inherit; cursor: pointer; }
.hd-sel:focus { outline: none; border-color: var(--primary); }
.hd-tierlab { font-size: 12px; font-weight: 700; color: var(--accent); }

.hd-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px;
    max-height: 56vh; overflow-y: auto; overflow-x: hidden; }
.hd-fact { border: 1px solid var(--border); background: var(--bg-white); border-radius: 10px; padding: 9px 13px; }
.hd-fact.bad { border-color: rgba(224, 123, 99, .45); background: rgba(224, 123, 99, .05); }
.hd-fact-h { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.hd-fact-t { margin: 6px 0 0; font-size: 12.5px; line-height: 1.8; color: var(--text); word-break: break-word; }

.hd-ctr { margin-bottom: 10px; }
.hd-ctr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; }
.hd-ctr-i { border: 1px solid var(--border); background: var(--bg-white); border-radius: 10px; padding: 8px 12px; }
.hd-ctr-i span { display: block; font-size: 11px; color: var(--text-hint); }
.hd-ctr-i b { font-size: 15px; font-weight: 800; color: var(--strong); font-variant-numeric: tabular-nums; }
.hd-ctr-i em { font-style: normal; display: block; font-size: 10.5px; line-height: 1.6; color: var(--text-hint); margin-top: 2px; }
.hd-ctr-i.over { border-color: rgba(224, 123, 99, .5); background: rgba(224, 123, 99, .06); }
.hd-ctr-i.over b, .hd-ctr-i.over em { color: var(--danger); }
.hd-ctr-warn { margin-top: 8px; font-size: 12px; line-height: 1.75; color: var(--danger);
    border: 1px solid rgba(224, 123, 99, .4); background: rgba(224, 123, 99, .07); border-radius: 10px; padding: 8px 12px; }
.hd-rowerr { font-size: 11.5px; line-height: 1.7; color: var(--danger); margin-top: 4px; max-width: 240px; }
.hd-dirty { font-size: 12px; color: var(--accent); }
.hd-dirty[hidden] { display: none; }

/* ---------- 运行视图 ---------- */
.hd-tally { margin-left: auto; font-size: 12px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.hd-eplist { display: flex; flex-direction: column; gap: 9px; }
.hd-epcard { border: 1px solid var(--border); background: var(--bg-white); border-radius: 12px; overflow: hidden; }
.hd-epcard.open { border-color: rgba(232, 176, 75, .34); }
.hd-epcard-h { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding: 12px 16px; cursor: pointer; }
.hd-epcard-h:hover { background: rgba(255, 255, 255, .022); }
.hd-epcard-h b { font-size: 14px; color: var(--strong); flex: 0 0 auto; }
.hd-epcard-b { border-top: 1px solid var(--border); padding: 4px 16px 18px; background: rgba(0, 0, 0, .14); }
.hd-gflags { font-size: 11.5px; font-weight: 700; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.hd-gflags.bad { color: var(--danger); }
.hd-gflags.hold { color: var(--accent); }

/* ---------- 编审单 ---------- */
.hd-review { font-size: 13px; }
.hd-reasons { font-size: 12px; color: var(--text-secondary); padding: 6px 0 0; }
.hd-sect { margin: 18px 0 0; }
.hd-sect > h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; font-size: 13px; font-weight: 800;
    color: var(--strong); letter-spacing: .04em; }
.hd-sect > h4 em { font-style: normal; font-size: 11px; font-weight: 600; color: var(--text-hint);
    border: 1px solid var(--border); border-radius: 999px; padding: 2px 9px; }
.hd-gate { border: 1px solid var(--border); border-radius: 10px; padding: 10px 14px; margin-bottom: 7px;
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px; background: var(--bg-white); }
.hd-gate-hard { border-left: 3px solid var(--danger); }
.hd-gate-warn { border-left: 3px solid var(--accent); }
.hd-gid { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; font-weight: 700;
    color: var(--text-secondary); background: rgba(255, 255, 255, .05); border-radius: 6px; padding: 2px 7px; cursor: help; }
.hd-gname { font-size: 13px; font-weight: 600; color: var(--text); }
.hd-gdet, .hd-gev { flex: 1 1 100%; font-size: 11.5px; line-height: 1.85; color: var(--text-hint); }
.hd-gev { font-family: var(--font-display-cn); color: #b8ab92; }

.hd-find { border: 1px solid rgba(224, 123, 99, .3); background: rgba(224, 123, 99, .045);
    border-radius: 12px; padding: 12px 16px; margin-bottom: 9px; }
.hd-find-pending { border-color: rgba(232, 176, 75, .32); background: rgba(232, 176, 75, .05); }
.hd-find-h { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 8px; }
.hd-find-r { font-size: 12.5px; line-height: 1.8; color: var(--text-secondary); margin-bottom: 8px; }
.hd-find-f { font-size: 12.5px; line-height: 1.8; color: var(--accent); margin-top: 8px; }
.hd-cmp { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hd-cmp > div { background: rgba(0, 0, 0, .2); border-radius: 9px; padding: 10px 12px; }
.hd-cmp label { display: block; font-size: 11px; color: var(--text-hint); margin-bottom: 5px; }
.hd-cmp p { margin: 0; font-size: 13px; line-height: 1.9; word-break: break-word; }

.hd-mgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.hd-mi { border: 1px solid var(--border); background: var(--bg-white); border-radius: 10px; padding: 11px 14px; }
.hd-mi span { display: block; font-size: 11.5px; color: var(--text-hint); margin-bottom: 4px; }
.hd-mi b { font-size: 16px; font-weight: 800; color: var(--strong); font-variant-numeric: tabular-nums; }
.hd-mi em { font-style: normal; display: block; font-size: 11px; color: var(--text-hint); margin-top: 3px; }

.hd-score { border: 1px solid var(--border); background: var(--bg-white); border-radius: 12px; padding: 16px 18px; }
.hd-score-t { font-size: 30px; font-weight: 800; color: var(--accent); font-variant-numeric: tabular-nums; line-height: 1.1; }
.hd-score-t em { display: block; font-style: normal; font-size: 11.5px; font-weight: 600; color: var(--text-hint); margin-top: 4px; }
.hd-score-d { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; margin-top: 14px; }
.hd-sd { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 12px;
    border-bottom: 1px dashed rgba(255, 255, 255, .07); padding-bottom: 5px; }
.hd-sd span { color: var(--text-secondary); }
.hd-sd b { color: var(--text); font-variant-numeric: tabular-nums; }
.hd-sd b i { font-style: normal; color: var(--text-hint); font-weight: 400; font-size: 11px; }

/* ---------- 剧本正文 / 纯净稿(编审单里的交付物) ---------- */
.hd-docbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
pre.hd-doc { margin: 0; max-height: 460px; overflow: auto; white-space: pre-wrap; word-break: break-word;
    font-family: var(--font-display-cn); font-size: 13.5px; line-height: 2.05; color: #ddd3bd;
    border: 1px solid var(--border); background: rgba(0, 0, 0, .22); border-radius: 12px; padding: 16px 18px; }
/* 运行视图里每张卡上的判定理由:一屏 94 集,不展开也要看得见为什么没过 */
.hd-eprsn { font-size: 11.5px; color: var(--text-secondary); max-width: 360px; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 窄屏 ---------- */
@media (max-width: 1100px) {
    .hd-pack-body { grid-template-columns: 1fr; }
    .hd-req-grid { grid-template-columns: 1fr; }
    .hd-cmp { grid-template-columns: 1fr; }
    .hd-wrap { padding: 4px 16px 40px; }
    .hd-eprsn { max-width: 100%; }
}
@media (max-width: 760px) {
    /* 史实清单窄屏放开高度(内层再套滚动条,手指滑不动);下拉与文本仍然竖着排,不横滚 */
    .hd-facts { max-height: none; overflow-y: visible; }
    .hd-fact-h { gap: 6px; }
    .hd-ctr-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hd-rowerr { max-width: 100%; }
    .hd-reqsum-i { flex-direction: column; gap: 2px; }
    .hd-reqsum-i span { flex: none; }
}

/* 追加集(系列页):与建系列的篇目表输入同一套视觉,只是收在一个可折叠的条里 */
.hd-catbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0 10px; }
.hd-catbox { border: 1px solid var(--line); border-radius: 10px; padding: 12px; margin: 6px 0 12px; background: rgba(255, 255, 255, .02); }
.hd-catbox > label { display: block; font-size: 13px; color: var(--dim); }
.hd-catbox .hd-ta { margin-top: 6px; }
.hd-catbox #hd-cat-prev { margin-top: 10px; }

/* ---------- 录入:一个粘贴框 → 确认表(2026-09-24) ----------
   三种来源三种颜色:你写的(素)/ 自动补全(青,已核底本)/ 待你确认(琥珀,整格描底)。
   待你确认的格子要一眼扫得到 —— 94 行的表,靠读字找要点的地方等于没有标。 */
.hd-ta-big { min-height: 190px; font-size: 13px; }
.hd-lab-em { font-style: normal; font-weight: 400; font-size: 11.5px; color: var(--text-hint); }
.hd-ikbar { margin-top: 0; }
.hd-ikstale { font-size: 12px; color: var(--accent); font-weight: 700; }
.hd-ikbox:empty { display: none; }
.hd-iksum { margin: 14px 0 10px; }
.hd-iklegend { display: inline-flex; gap: 4px; margin-left: auto; align-items: center; }
.hd-src { display: inline-block; font-size: 10.5px; font-weight: 700; line-height: 1; padding: 3px 6px; border-radius: 6px;
    white-space: nowrap; letter-spacing: .02em; cursor: help; }
.hd-src-mine { color: var(--text-secondary); background: rgba(255, 255, 255, .05); border: 1px solid var(--border); }
.hd-src-auto { color: #4dbfa8; background: rgba(77, 191, 168, .1); border: 1px solid rgba(77, 191, 168, .32); }
.hd-src-ask { color: var(--accent); background: rgba(232, 176, 75, .14); border: 1px solid rgba(232, 176, 75, .45); }
.hd-srcw { display: block; margin-top: 4px; }
.hd-srcw:empty { display: none; }
.hd-ikbulk { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.hd-iktbw { overflow-x: auto; border-radius: 12px; }
.hd-iktb { min-width: 900px; }
.hd-iktb td { vertical-align: top; }
.hd-ikc.ask { background: rgba(232, 176, 75, .075); box-shadow: inset 2px 0 0 rgba(232, 176, 75, .7); }
.hd-ikin { width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 12.5px; border-radius: 7px; }
.hd-ikin-ep { width: 52px; text-align: center; font-variant-numeric: tabular-nums; }
.hd-ikin-juan { width: 64px; text-align: center; font-variant-numeric: tabular-nums; }
.hd-ikin-idiom { min-width: 110px; font-family: var(--font-display-cn); font-weight: 700; font-size: 14px; color: var(--strong); }
.hd-ikin-era { min-width: 150px; }
.hd-ikin-event { min-width: 180px; }
.hd-ikv { display: inline-block; padding: 6px 2px; font-size: 12.5px; }
.hd-ikep { font-weight: 800; color: var(--strong); font-variant-numeric: tabular-nums; }
.hd-ikst { min-width: 260px; max-width: 420px; }
.hd-ikst .hd-pill { margin-bottom: 4px; }
.hd-ikwhy { margin: 4px 0 6px; font-size: 12px; line-height: 1.75; color: var(--text); }
.hd-ikacts, .hd-ikalts { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.hd-ikchk { font-size: 11.5px; color: #8fb0ff; margin-bottom: 4px; }
.hd-ikiss { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.hd-ikmore { margin-top: 6px; font-size: 11.5px; color: var(--text-hint); }
.hd-ikmore summary { cursor: pointer; }
.hd-ikmore .hd-btn { margin: 4px 6px 0 0; }
.hd-ikr-confirm td:first-child { box-shadow: inset 3px 0 0 rgba(232, 176, 75, .8); }
.hd-ikr-pending td:first-child, .hd-ikr-bad td:first-child { box-shadow: inset 3px 0 0 rgba(224, 123, 99, .85); }
.hd-ikr-rejected td { background: rgba(224, 123, 99, .04); }
.hd-ikr-rejected .hd-ikv, .hd-ikr-removed .hd-ikv { color: var(--text-hint); text-decoration: line-through; text-decoration-thickness: 1px; }
.hd-ikr-removed td { opacity: .6; }
.hd-ikwhy2 { font-size: 12px; color: var(--accent); }
.hd-btn.hd-ghost { background: transparent; border-color: transparent; color: var(--text-hint); padding-left: 4px; }
.hd-btn.hd-ghost:hover:not(:disabled) { border-color: var(--border); }
.hd-ikai { border: 1px dashed rgba(232, 176, 75, .45); border-radius: 12px; padding: 14px 16px; margin-top: 12px;
    background: rgba(232, 176, 75, .04); font-size: 12.5px; line-height: 1.8; }
.hd-ikai p { margin: 0 0 6px; }
.hd-ikai .hd-cost { flex: 1 1 320px; }
.hd-ikhow { text-align: left; }

/* ---------- 系列页批量:一键出稿 + 三颗批量按钮 + 起草进度 ---------- */
.hd-batch { border: 1px solid rgba(232, 176, 75, .32); background: rgba(232, 176, 75, .045); border-radius: 14px;
    padding: 14px 18px; margin: 14px 0 6px; }
.hd-batch-main { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.hd-btn-lg { padding: 10px 18px; font-size: 14px; }
.hd-batch-ops { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.hd-noauth { flex: 1 1 100%; }
.hd-batchprog { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; font-size: 12.5px;
    color: #8fb0ff; font-variant-numeric: tabular-nums; }
.hd-batchprog b { color: var(--danger); }
.hd-flow { border: 1px solid var(--border); background: var(--bg-white); border-radius: 14px; padding: 14px 18px; margin: 10px 0; }
.hd-flow-h { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.hd-flow-h b { font-size: 14px; color: var(--strong); }
.hd-flow-steps { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 0 auto; padding: 0; }
.hd-flow-steps li { font-size: 12px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); color: var(--text-hint); }
.hd-flow-steps li.hd-flow-done { color: #4dbfa8; border-color: rgba(77, 191, 168, .38); }
.hd-flow-steps li.hd-flow-now { color: #8fb0ff; border-color: rgba(120, 160, 255, .4); }
.hd-flow-steps li.hd-flow-stop { color: var(--accent); border-color: rgba(232, 176, 75, .5); background: rgba(232, 176, 75, .08); font-weight: 700; }
.hd-flow-msg { margin-top: 10px; font-size: 12.5px; color: var(--text-secondary); }
.hd-apres { border: 1px solid var(--border); background: var(--bg-white); border-radius: 14px; padding: 12px 16px; margin: 10px 0; font-size: 12.5px; }
.hd-apres-h { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--strong); margin-bottom: 6px; }
.hd-apfail { margin: 6px 0; padding-left: 18px; line-height: 1.8; }
.hd-apfail li { margin-bottom: 6px; color: var(--danger); }
.hd-apfail li .hd-dim { color: var(--text-hint); }
.hd-apacts { display: inline-flex; gap: 6px; margin-left: 8px; }

/* ---------- 平台管理员「待核定」与按规则修复 ---------- */
.hd-adminentry { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 14px 0 4px; }
.hd-warnbar.hd-fixbar { border-color: rgba(77, 191, 168, .4); background: rgba(77, 191, 168, .07); color: #4dbfa8; }
.hd-batch-ops .hd-sel { margin-left: 6px; }

/* ---------- 成语卡批量填写 ---------- */
.hd-cardtb { min-width: 980px; }
.hd-cardin { width: 100%; box-sizing: border-box; padding: 6px 8px; font-size: 12.5px; border-radius: 7px; min-width: 150px; }
.hd-cardf.bad .hd-cardin { border-color: rgba(224, 123, 99, .6); }
.hd-cardck { min-width: 190px; max-width: 280px; }
.hd-cardck .hd-btn { margin: 4px 6px 0 0; }

/* 窄屏:确认表与成语卡表改成一行一张卡(6~7 列的表在 375px 上只能横滚,待确认的格子会被挤到屏外) */
@media (max-width: 760px) {
    .hd-iklegend { margin-left: 0; }
    .hd-flow-steps { margin-left: 0; }
    .hd-iktb, .hd-cardtb { min-width: 0; display: block; }
    .hd-iktb thead, .hd-cardtb thead { display: none; }
    .hd-iktb tbody, .hd-cardtb tbody { display: block; }
    .hd-iktb tr { display: grid; grid-template-columns: 64px minmax(0, 1fr) 76px; gap: 8px; padding: 12px; }
    .hd-iktb td, .hd-cardtb td { display: block; padding: 0; border-bottom: none; }
    .hd-iktb td[data-hd-ikcell$=":era"], .hd-iktb td[data-hd-ikcell$=":event"], .hd-iktb .hd-ikst { grid-column: 1 / -1; }
    .hd-iktb .hd-ikst { min-width: 0; max-width: none; }
    .hd-iktb tr + tr, .hd-cardtb tr + tr { border-top: 1px solid var(--border); }
    .hd-ikr-confirm td:first-child, .hd-ikr-pending td:first-child, .hd-ikr-bad td:first-child { box-shadow: none; }
    .hd-iktb tr.hd-ikr-confirm { box-shadow: inset 3px 0 0 rgba(232, 176, 75, .8); }
    .hd-iktb tr.hd-ikr-pending, .hd-iktb tr.hd-ikr-bad { box-shadow: inset 3px 0 0 rgba(224, 123, 99, .85); }
    .hd-ikin-idiom, .hd-ikin-era, .hd-ikin-event { min-width: 0; }
    .hd-ikin-ep, .hd-ikin-juan { width: 100%; }
    .hd-cardtb tr { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 8px; padding: 12px; }
    .hd-cardtb td.hd-cardf, .hd-cardtb td.hd-cardck { grid-column: 1 / -1; min-width: 0; max-width: none; }
    .hd-cardin { min-width: 0; }
}

/* 2026-09-24 换缓存键:本次部署有约 1 分钟 index.html 先于资源上线,可能有浏览器把旧内容缓存在新版本号下 */
