/* ═══════════════════════════════════════════════════════════════════
   末日后的大学城 (builtInCss) v3.0 —— 视觉身份「灰烬封校日」
   焦黑底 #0E0F12 · 废墟纸 #26251F · 骨白字 #E4DED0 · 次字 #B7B0A2
   血锈红 #A33A2A · 警报黄 #E8B04B · 病绿 #6E8B6A · 灰烬 #9A9A8E
   装饰母题：撕裂纸边 / 干血污 / 涂鸦划痕 / 歪斜封条 / 幸存者手记
   气质：封校第一天的恐怖荒芜，秩序烂透，纸面还留着最后一点笔迹
   组件专属造型：
     局势面板 = 封校通告（血锈左缘 · 混乱度血条 · 今夜威胁撕纸）
     小队面板 = 幸存名单（焦黑底 · 成员一行行 · 边缘烧痕）
     仓库面板 = 物资清点（警报黄页头 · 分仓网格）
     身体状态 = 体检卡（病绿 · 四行体征条 · 重伤变血红）
     状态栏   = 碎纸格（2×2 · 灰烬分隔线）
     自身档案 = 幸存者档案（装订孔 · 血指纹封签）
     在场人员 = 撕边索引卡（在场几人出几张 · 六行复用行样式）
     行动选项 = 逃亡便条（编号贴纸 · 歪斜胶带）
     系统提示 = 警报条（血锈左缘 · 干血标签）
     判定面板 = 裁定单（血字标题 · label/value平铺）
     记忆卡   = 幸存者手记（烧痕线圈本 · 四段）
     思维链   = 自查单（灰烬纸 · 折叠）
   纯CSS无JS · 交互只用 details/summary + :has() + 兄弟选择器
   零事件绑定 · 零链接跳转 · 零表单控件 · 零内联脚本
   ═══════════════════════════════════════════════════════════════════ */

/* ══════════ 0. 设计令牌 ══════════ */
.status-bar,
.dl-self,
.dl-cast,
.dl-cast,
.dl-quest-bar,
.dl-sys-note,
.dl-actions,
.dl-memory,
.dl-chain,
.dl-situation,
.dl-crew,
.dl-warehouse,
.dl-body,
.dl-verdict{
  --bg:#0E0F12;
  --panel:#1B1C1A;
  --paper:#26251F;
  --paper-2:#2E2C25;
  --ink:#E4DED0;
  --ink-2:#B7B0A2;
  --ink-3:#7E7A70;
  --ink-4:#4C4A44;
  --blood:#A33A2A;
  --blood-deep:#6E241C;
  --blood-soft:rgba(163,58,42,.16);
  --amber:#E8B04B;
  --amber-soft:rgba(232,176,75,.16);
  --green:#6E8B6A;
  --green-soft:rgba(110,139,106,.16);
  --ash:#9A9A8E;
  --tape:rgba(232,176,75,.16);
  --line:rgba(228,222,208,.16);
  --line-soft:rgba(228,222,208,.08);
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --shadow:0 3px 12px rgba(0,0,0,.65);
  --shadow-raised:0 8px 26px rgba(0,0,0,.8),0 0 0 1px rgba(163,58,42,.14);
  --font:'Microsoft YaHei','PingFang SC','Segoe UI',sans-serif;
}

/* ══════════ 1. 状态栏 .status-bar —— 碎纸格 ══════════ */
.status-bar{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  width:100%;max-width:none;margin:10px auto 0;box-sizing:border-box;
  padding:0;background:var(--line);
  border:1px solid rgba(228,222,208,.14);border-radius:var(--radius-md);
  overflow:hidden;font-family:var(--font);font-size:14px;line-height:1.45;
  color:var(--ink);box-shadow:var(--shadow);position:relative;
}
.status-bar::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 6px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.008) 0 1px,transparent 1px 11px);
}
.st-cell{
  display:flex;flex-direction:column;gap:4px;min-width:0;position:relative;z-index:1;
  padding:10px 12px;background:var(--paper);
}
.st-cell::after{
  content:'';position:absolute;right:-1px;top:-1px;bottom:-1px;width:2px;
  background:linear-gradient(180deg,transparent 0 8px,rgba(163,58,42,.35) 8px 14px,transparent 14px 30px,rgba(228,222,208,.08) 30px 32px,transparent 32px);
}
.st-cell.st-up{background:linear-gradient(180deg,rgba(232,176,75,.10),var(--paper));}
.st-cell.st-down{background:linear-gradient(180deg,rgba(163,58,42,.14),var(--paper));}
.st-label{font-size:11px;color:var(--ink-3);letter-spacing:1px;font-weight:700;}
.st-content{
  font-size:14px;color:var(--ink);font-weight:700;line-height:1.4;
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;word-break:break-word;
}
.st-tag{
  display:inline-block;padding:1px 9px;border-radius:12px;font-size:11px;font-weight:800;
  background:var(--amber-soft);color:var(--amber);border:1px solid rgba(232,176,75,.45);
}
.st-tag.is-night{background:rgba(154,154,142,.14);color:var(--ash);border-color:rgba(154,154,142,.35);}
.st-tag.is-late{background:var(--blood-soft);color:#E59A8B;border-color:rgba(163,58,42,.45);}
.st-progress{
  display:inline-block;width:62px;height:6px;flex-shrink:0;vertical-align:middle;
  background:rgba(0,0,0,.55);border-radius:3px;overflow:hidden;
}
.st-progress > .st-progress-bar{
  display:block;height:100%;background:linear-gradient(90deg,var(--blood),#C75A45);border-radius:3px;transition:width .3s;
}
.st-cell.st-up .st-content{animation:flash-up 1.2s ease;}
.st-cell.st-down .st-content{animation:flash-down 1.2s ease;}

/* ══════════ 1.5 自身状态栏 .dl-self —— 幸存者档案 ══════════ */
.dl-self{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);position:relative;
}
.dl-self::before{
  content:'';position:absolute;left:5px;top:14px;bottom:14px;width:9px;pointer-events:none;
  background-image:radial-gradient(circle at 4px 6px,rgba(0,0,0,.8) 0 2px,transparent 2.5px);
  background-size:9px 22px;background-repeat:repeat-y;z-index:0;
}
.dl-self::after{
  content:'';position:absolute;right:0;bottom:0;width:42px;height:36px;pointer-events:none;
  background:
    radial-gradient(ellipse 12px 10px at 28px 24px,rgba(163,58,42,.45),transparent 70%),
    linear-gradient(135deg,transparent 55%,rgba(0,0,0,.55) 56%,transparent 62%);
  filter:blur(.3px);opacity:.7;z-index:0;
}
.dl-self>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px 11px 18px;font-size:14px;font-weight:800;color:var(--ink);
  letter-spacing:1px;background:linear-gradient(90deg,rgba(163,58,42,.18),var(--paper));
  border-bottom:1px dashed var(--line);user-select:none;position:relative;z-index:1;
}
.dl-self>summary::after{
  content:'';position:absolute;right:12px;top:8px;width:34px;height:5px;opacity:.55;
  background:repeating-linear-gradient(90deg,rgba(232,176,75,.5) 0 5px,transparent 5px 9px);
  transform:rotate(-3deg);
}
.dl-self>summary::-webkit-details-marker{display:none;}
.dl-self>summary::-moz-list-marker{display:none;}
.dl-self>summary .dl-self-ic{font-size:16px;}
.dl-self:not([open])>summary{border-bottom:none;}

/* ══════════ 2. 登记卡行样式（在场人员复用） ══════════ */
.self-row{
  display:flex;align-items:flex-start;gap:10px;padding:7px 14px 7px 17px;
  border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
  position:relative;z-index:1;
}
.self-row:last-child{border-bottom:none;}
.self-row::before{
  content:'';position:absolute;left:0;top:6px;bottom:6px;width:3px;border-radius:0 2px 2px 0;
  background:var(--line-soft);
}
.self-row:nth-of-type(1)::before{background:var(--blood);}
.self-row:nth-of-type(2)::before{background:var(--green);}
.self-row:nth-of-type(3)::before{background:var(--amber);}
.self-row:nth-of-type(4)::before{background:var(--blood);}
.self-row:nth-of-type(5)::before{background:var(--ash);}
.self-row:nth-of-type(6)::before{background:var(--blood);}
.self-row:nth-of-type(7)::before{background:var(--amber);}
.self-row:nth-of-type(8)::before{background:var(--green);}
.self-row:nth-of-type(9)::before{background:var(--ash);}
.self-row.changed{background:var(--amber-soft);animation:flash-up 1.2s ease;}
.self-label{
  color:var(--ink-3);flex-shrink:0;font-weight:800;font-size:11px;
  min-width:44px;white-space:nowrap;letter-spacing:1px;padding-top:2px;
}
.self-value{color:var(--ink);flex:1;word-break:break-word;font-size:13px;line-height:1.55;}
.self-value em{font-style:normal;color:#E59A8B;font-weight:700;}
.dl-self-rank{
  display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:5px;font-size:12px;font-weight:900;border:1px solid;vertical-align:middle;
  margin-right:5px;
}
.dl-self-rank.rk-s{color:#fff;background:var(--blood);border-color:var(--blood);}
.dl-self-rank.rk-a{color:#0E0F12;background:var(--amber);border-color:var(--amber);}
.dl-self-rank.rk-b{color:var(--green);background:var(--green-soft);border-color:rgba(110,139,106,.5);}
.dl-self-rank.rk-c{color:var(--amber);background:var(--amber-soft);border-color:rgba(232,176,75,.5);}
.dl-self-rank.rk-d{color:#E59A8B;background:var(--blood-soft);border-color:rgba(163,58,42,.5);}
.self-value .neg-clean{color:var(--green);font-weight:700;}
.self-value .neg-minor{color:var(--amber);font-weight:700;}
.self-value .neg-major{color:#E59A8B;font-weight:800;animation:blink 1.5s ease-in-out infinite;}
.self-value .rep-tag{
  display:inline-block;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:800;letter-spacing:.3px;
}
.rep-tag.rp-new{color:var(--ash);background:rgba(154,154,142,.12);border:1px solid rgba(154,154,142,.3);}
.rep-tag.rp-known{color:var(--green);background:var(--green-soft);border:1px solid rgba(110,139,106,.3);}
.rep-tag.rp-backed{color:var(--amber);background:var(--amber-soft);border:1px solid rgba(232,176,75,.45);}
.rep-tag.rp-suspect{color:#E59A8B;background:var(--blood-soft);border:1px solid rgba(163,58,42,.4);}
.rep-tag.rp-banned{color:#0E0F12;background:var(--blood);border-color:var(--blood);}
/* ══════════ 3. 局势面板 .dl-situation —— 封校通告 ══════════ */
.dl-situation{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-left:4px solid var(--blood);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);position:relative;
}
.dl-situation::before{
  content:'';position:absolute;right:0;top:0;width:58px;height:100%;pointer-events:none;
  background:
    linear-gradient(115deg,transparent 46%,rgba(0,0,0,.34) 47%,transparent 54%),
    linear-gradient(70deg,transparent 56%,rgba(0,0,0,.22) 57%,transparent 64%);
  opacity:.55;
}
.dl-situation>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(163,58,42,.22),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;position:relative;z-index:1;
}
.dl-situation>summary::-webkit-details-marker{display:none;}
.dl-situation>summary::-moz-list-marker{display:none;}
.dl-situation>summary .sit-ic{font-size:16px;}
.dl-situation>summary .sit-mode{
  margin-left:auto;flex-shrink:0;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:800;
  color:#E59A8B;background:var(--blood-soft);border:1px solid rgba(163,58,42,.45);
}
.dl-situation:not([open])>summary{border-bottom:none;}
.sit-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px 2px;}
.sit-title{font-size:16px;font-weight:800;color:var(--ink);letter-spacing:1px;}
.sit-day{font-size:11px;color:var(--ink-3);margin-left:auto;white-space:nowrap;}
.sit-row{
  display:grid;grid-template-columns:auto 1fr auto 1fr;gap:3px 10px;align-items:center;
  padding:6px 14px;border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
}
.sit-row:last-of-type{border-bottom:1px dashed var(--line-soft);}
.sit-label{font-size:11px;color:var(--ink-3);font-weight:800;letter-spacing:1px;white-space:nowrap;}
.sit-value{font-size:13px;color:var(--ink);font-weight:700;word-break:break-word;}
.sit-progress{
  display:inline-block;width:56px;height:6px;flex-shrink:0;vertical-align:middle;
  background:rgba(0,0,0,.55);border-radius:3px;overflow:hidden;margin-right:5px;
}
.sit-progress > .sit-progress-bar{display:block;height:100%;background:linear-gradient(90deg,#6E241C,var(--blood),#C75A45);border-radius:3px;}
.sit-warn{
  display:flex;align-items:flex-start;gap:7px;margin:8px 10px 10px;padding:8px 10px;
  font-size:12.5px;line-height:1.5;color:var(--ink-2);background:rgba(0,0,0,.28);
  border:1px dashed rgba(163,58,42,.5);border-radius:var(--radius-sm);
}
.sit-warn em{font-style:normal;color:#E59A8B;font-weight:800;}
.sit-warn-ic{font-size:12px;flex-shrink:0;}

/* ══════════ 4. 小队面板 .dl-crew —— 幸存名单 ══════════ */
.dl-crew{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-left:4px solid var(--amber);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);position:relative;
}
.dl-crew::before{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:22px;pointer-events:none;
  background:
    linear-gradient(115deg,transparent 42%,rgba(0,0,0,.30) 43%,transparent 50%),
    linear-gradient(70deg,transparent 58%,rgba(0,0,0,.20) 59%,transparent 66%);
  opacity:.5;
}
.dl-crew>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(232,176,75,.16),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;position:relative;z-index:1;
}
.dl-crew>summary::-webkit-details-marker{display:none;}
.dl-crew>summary::-moz-list-marker{display:none;}
.dl-crew>summary .cr-ic{font-size:16px;}
.dl-crew>summary .cr-mode{
  margin-left:auto;flex-shrink:0;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:800;
  color:var(--amber);background:var(--amber-soft);border:1px solid rgba(232,176,75,.45);
}
.dl-crew:not([open])>summary{border-bottom:none;}
.cr-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px 2px;}
.cr-title{font-size:16px;font-weight:800;color:var(--ink);}
.cr-day{font-size:11px;color:var(--ink-3);margin-left:auto;white-space:nowrap;}
.cr-row{
  display:grid;grid-template-columns:70px 70px 1fr 1fr;gap:3px 10px;align-items:center;
  padding:6px 14px;border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
}
.cr-name{font-weight:800;color:var(--ink);}
.cr-job{font-size:12px;color:var(--amber);font-weight:700;}
.cr-trust{font-size:12px;color:var(--ink-3);}
.cr-status{font-size:12px;color:var(--ink-2);}
.cr-note{
  display:flex;align-items:flex-start;gap:7px;margin:8px 10px 10px;padding:8px 10px;
  font-size:12.5px;line-height:1.5;color:var(--ink-2);background:rgba(0,0,0,.28);
  border:1px dashed rgba(232,176,75,.45);border-radius:var(--radius-sm);
}
.cr-note-ic{font-size:12px;flex-shrink:0;}

/* ══════════ 5. 仓库面板 .dl-warehouse —— 物资清点 ══════════ */
.dl-warehouse{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-top:3px solid var(--amber);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-warehouse>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(232,176,75,.18),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;
}
.dl-warehouse>summary::-webkit-details-marker{display:none;}
.dl-warehouse>summary::-moz-list-marker{display:none;}
.dl-warehouse>summary .wh-ic{font-size:16px;}
.dl-warehouse>summary .wh-mode{
  margin-left:auto;flex-shrink:0;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:800;
  color:var(--green);background:var(--green-soft);border:1px solid rgba(110,139,106,.45);
}
.dl-warehouse>summary .wh-mode.is-mismatch{color:var(--amber);background:var(--amber-soft);border-color:rgba(232,176,75,.5);}
.dl-warehouse>summary .wh-mode.is-theft{color:#E59A8B;background:var(--blood-soft);border-color:rgba(163,58,42,.5);animation:blink 1.6s ease-in-out infinite;}
.dl-warehouse:not([open])>summary{border-bottom:none;}
.wh-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px 2px;}
.wh-title{font-size:16px;font-weight:800;color:var(--ink);}
.wh-day{font-size:11px;color:var(--ink-3);margin-left:auto;white-space:nowrap;}
.wh-row{
  display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:3px 10px;align-items:center;
  padding:6px 14px;border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
}
.wh-label{font-size:11px;color:var(--ink-3);font-weight:800;letter-spacing:1px;white-space:nowrap;}
.wh-value{font-size:13px;color:var(--ink);font-weight:700;word-break:break-word;}
.wh-note{
  display:flex;align-items:flex-start;gap:7px;margin:8px 10px 10px;padding:8px 10px;
  font-size:12.5px;line-height:1.5;color:var(--ink-2);background:rgba(0,0,0,.28);
  border:1px dashed var(--line);border-radius:var(--radius-sm);
}
.wh-note em{font-style:normal;color:#E59A8B;font-weight:800;}
.wh-note-ic{font-size:12px;flex-shrink:0;}

/* ══════════ 6. 身体状态 .dl-body —— 体检卡 ══════════ */
.dl-body{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-top:3px solid var(--green);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-body>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(110,139,106,.18),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;
}
.dl-body>summary::-webkit-details-marker{display:none;}
.dl-body>summary::-moz-list-marker{display:none;}
.dl-body>summary .bd-ic{font-size:16px;}
.dl-body>summary .bd-mode{
  margin-left:auto;flex-shrink:0;padding:1px 9px;border-radius:10px;font-size:11px;font-weight:800;
  color:var(--green);background:var(--green-soft);border:1px solid rgba(110,139,106,.45);
}
.dl-body>summary .bd-mode.is-bad{color:var(--amber);background:var(--amber-soft);border-color:rgba(232,176,75,.5);}
.dl-body>summary .bd-mode.is-critical{color:#E59A8B;background:var(--blood-soft);border-color:rgba(163,58,42,.5);animation:blink 1.6s ease-in-out infinite;}
.dl-body:not([open])>summary{border-bottom:none;}
.bd-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px 2px;}
.bd-title{font-size:16px;font-weight:800;color:var(--ink);}
.bd-day{font-size:11px;color:var(--ink-3);margin-left:auto;white-space:nowrap;}
.bd-bar-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:3px 12px;align-items:center;
  padding:5px 14px;border-bottom:1px dashed var(--line-soft);font-size:13px;
}
.bd-label{font-size:11px;color:var(--ink-3);font-weight:800;letter-spacing:1px;white-space:nowrap;}
.bd-progress{display:block;height:7px;background:rgba(0,0,0,.55);border-radius:4px;overflow:hidden;}
.bd-bar{display:block;height:100%;background:linear-gradient(90deg,#4E6B4B,var(--green));border-radius:4px;transition:width .3s;}
.bd-bar-row.is-low .bd-bar{background:linear-gradient(90deg,#8A641E,var(--amber));}
.bd-bar-row.is-critical .bd-bar{background:linear-gradient(90deg,#6E241C,var(--blood));}
.bd-num{font-size:12px;font-weight:800;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;}
.bd-row{
  display:flex;align-items:flex-start;gap:10px;padding:6px 14px;
  border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
}
.bd-row:last-child{border-bottom:none;}
.bd-row .bd-value{flex:1;word-break:break-word;}
.bd-row .bd-value em{font-style:normal;color:#E59A8B;font-weight:700;}
.bd-row.changed{background:var(--green-soft);animation:flash-up 1.2s ease;}
.bd-value .neg-clean{color:var(--green);font-weight:700;}
.bd-value .neg-minor{color:var(--amber);font-weight:700;}
.bd-value .neg-major{color:#E59A8B;font-weight:800;animation:blink 1.5s ease-in-out infinite;}

/* ══════════ 7. 在场人员 .dl-cast —— 撕边索引卡 ══════════ */
.dl-cast{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper-2);
  border:1px solid rgba(228,222,208,.14);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-cast>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:10px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:var(--paper);border-bottom:1px dashed var(--line);user-select:none;
}
.dl-cast>summary::-webkit-details-marker{display:none;}
.dl-cast>summary::-moz-list-marker{display:none;}
.dl-cast>summary .dl-cast-ic{font-size:15px;}
.dl-cast:not([open])>summary{border-bottom:none;}
.dl-cast .self-row{background:transparent;}
.dl-cast .self-row::before{background:var(--amber);}
.dl-cast .self-row.changed{background:var(--amber-soft);}
.dl-cast .self-value em{color:var(--amber);}

/* ══════════ 9. 主线 .dl-quest-bar —— 广播残响 ══════════ */
.dl-quest-bar{
  width:100%;max-width:none;margin:8px auto 4px;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);border:1px solid rgba(228,222,208,.14);
  border-left:4px solid var(--blood);border-radius:var(--radius-sm);
  padding:12px 16px;display:flex;align-items:center;gap:12px;font-size:13px;
  box-shadow:var(--shadow);position:relative;
}
.dl-quest-bar::after{
  content:'';position:absolute;right:10px;top:8px;width:44px;height:4px;opacity:.5;
  background:repeating-linear-gradient(90deg,rgba(163,58,42,.7) 0 4px,transparent 4px 8px);
  transform:rotate(-2deg);
}
.dl-quest-bar .qb-ic{font-size:22px;flex-shrink:0;}
.dl-quest-bar .qb-c{flex:1;min-width:0;}
.dl-quest-bar .qb-title{font-size:15px;font-weight:900;color:#E59A8B;margin-bottom:3px;letter-spacing:1px;}
.dl-quest-bar .qb-stage{font-size:11px;color:var(--ink-3);margin-bottom:5px;font-weight:700;letter-spacing:.5px;}
.dl-quest-bar .qb-next{font-size:12.5px;color:var(--ink-2);line-height:1.5;}
.dl-quest-bar .qb-next .qb-hint{color:var(--amber);font-weight:800;}
.dl-quest-bar .qb-pbar{width:60px;height:6px;flex-shrink:0;background:rgba(0,0,0,.55);border-radius:3px;overflow:hidden;}
.dl-quest-bar .qb-pbar i{display:block;height:100%;background:linear-gradient(90deg,#6E241C,var(--blood));border-radius:3px;}
.dl-quest-bar.qb-hidden{display:none;}

/* ══════════ 10. 行动选项 .dl-actions —— 逃亡便条 ══════════ */
.dl-actions{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-actions>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(232,176,75,.18),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;
}
.dl-actions>summary::-webkit-details-marker{display:none;}
.dl-actions>summary::-moz-list-marker{display:none;}
.dl-actions>summary .dl-act-ic{font-size:16px;}
.dl-actions:not([open])>summary{border-bottom:none;}
.act-item{
  display:flex;align-items:center;gap:10px;margin:6px 10px 0;
  padding:10px 12px;background:var(--paper-2);
  border:1px solid rgba(228,222,208,.10);border-radius:var(--radius-sm);
  transition:transform .15s,border-color .15s;position:relative;
}
.act-item::before{
  content:'';position:absolute;top:-3px;left:14px;width:30px;height:7px;
  background:var(--tape);opacity:.65;transform:rotate(-2deg);
}
.act-item:last-of-type{margin-bottom:10px;}
.act-item:hover{border-color:rgba(232,176,75,.45);transform:translateY(1px);}
.act-n{
  width:26px;height:26px;flex-shrink:0;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:var(--ink);background:var(--amber-soft);
  border:1px solid rgba(232,176,75,.55);font-family:var(--font);
}
.act-item:nth-of-type(1) .act-n{background:var(--blood-soft);border-color:rgba(163,58,42,.6);}
.act-item:nth-of-type(2) .act-n{background:var(--amber-soft);border-color:rgba(232,176,75,.6);}
.act-item:nth-of-type(3) .act-n{background:var(--green-soft);border-color:rgba(110,139,106,.6);}
.act-item:nth-of-type(4) .act-n{background:rgba(154,154,142,.14);border-color:rgba(154,154,142,.55);}
.act-t{flex:1;font-size:13.5px;color:var(--ink);line-height:1.5;}

/* ══════════ 11. 系统提示 .dl-sys-note —— 警报条 ══════════ */
.dl-sys-note{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper-2);
  border:1px solid rgba(163,58,42,.4);border-left:3px solid var(--blood);border-radius:var(--radius-sm);
  overflow:hidden;box-shadow:var(--shadow);
}
.dl-sys-note>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:8px 14px;user-select:none;
}
.dl-sys-note>summary::-webkit-details-marker{display:none;}
.dl-sys-note>summary::-moz-list-marker{display:none;}
.dl-sys-note>summary .dl-sn-ic{
  width:20px;height:20px;border-radius:5px;flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;
  color:#0E0F12;background:var(--blood);
}
.dl-sys-note>summary .dl-sn-tag{
  padding:1px 8px;border-radius:9px;font-size:11px;font-weight:800;letter-spacing:1px;
  color:#E59A8B;background:var(--blood-soft);border:1px solid rgba(163,58,42,.4);
}
.dl-sys-note>summary .dl-sn-arrow{font-size:10px;color:var(--ink-3);margin-left:auto;transition:transform .2s;}
.dl-sys-note[open]>summary .dl-sn-arrow{transform:rotate(180deg);}
.dl-sys-note[open]>summary{border-bottom:1px dashed rgba(163,58,42,.3);}
.dl-sys-note .dl-sn-body{padding:3px 14px 10px;font-size:13px;line-height:1.6;color:var(--ink-2);word-break:break-word;}
.dl-sys-note .dl-sn-body em{font-style:normal;color:#E59A8B;font-weight:700;}

/* ══════════ 12. 判定面板 .dl-verdict —— 裁定单 ══════════ */
.dl-verdict{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-left:4px solid var(--blood);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-verdict>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:9px 16px;font-size:13.5px;font-weight:900;color:#E59A8B;letter-spacing:1px;
  background:rgba(163,58,42,.22);border-bottom:1px dashed rgba(163,58,42,.4);user-select:none;
}
.dl-verdict>summary::-webkit-details-marker{display:none;}
.dl-verdict>summary::-moz-list-marker{display:none;}
.dl-verdict>summary .dl-vd-ic{font-size:15px;}
.dl-verdict>summary .dl-vd-tag{
  margin-left:auto;padding:1px 8px;border-radius:9px;font-size:10px;font-weight:900;letter-spacing:1px;
  color:#E59A8B;background:var(--paper);border:1px solid rgba(163,58,42,.4);
}
.dl-verdict>summary .dl-vd-arrow{font-size:10px;color:var(--ink-3);transition:transform .2s;}
.dl-verdict[open]>summary .dl-vd-arrow{transform:rotate(180deg);}
.dl-verdict .vd-row{
  display:flex;align-items:flex-start;gap:10px;padding:6px 14px;
  border-bottom:1px dashed var(--line-soft);font-size:13px;line-height:1.5;
}
.dl-verdict .vd-row:last-child{border-bottom:none;}
.dl-verdict .vd-label{color:var(--ink-3);flex-shrink:0;font-weight:800;font-size:11px;min-width:58px;white-space:nowrap;letter-spacing:1px;padding-top:1px;}
.dl-verdict .vd-value{color:var(--ink);flex:1;word-break:break-word;font-size:13px;line-height:1.55;}
.dl-verdict .vd-value em{font-style:normal;color:#E59A8B;font-weight:700;}
.dl-verdict .vd-value .vd-win{color:var(--green);font-weight:800;}
.dl-verdict .vd-value .vd-lose{color:#E59A8B;font-weight:800;}
.dl-verdict .vd-value .vd-tie{color:var(--amber);font-weight:800;}

/* ══════════ 13. 记忆卡 .dl-memory —— 幸存者手记 ══════════ */
.dl-memory{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper);
  border:1px solid rgba(228,222,208,.14);border-top:3px solid var(--blood);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-memory>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
  padding:11px 16px 11px 22px;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px;
  background:linear-gradient(90deg,rgba(163,58,42,.20),var(--paper));border-bottom:1px dashed var(--line);
  user-select:none;position:relative;
}
.dl-memory>summary::-webkit-details-marker{display:none;}
.dl-memory>summary::-moz-list-marker{display:none;}
.dl-memory>summary::before{
  content:'';position:absolute;left:6px;top:50%;transform:translateY(-50%);
  width:8px;height:20px;pointer-events:none;
  background-image:radial-gradient(circle at 4px 5px,rgba(0,0,0,.9) 0 1.8px,transparent 2.3px);
  background-size:8px 11px;background-repeat:repeat-y;
}
.dl-memory>summary .dl-mem-ic{font-size:16px;}
.dl-memory:not([open])>summary{border-bottom:none;}
.dl-mem-body{padding:6px;display:flex;flex-direction:column;gap:0;}
.dl-mem-sec{
  display:flex;flex-direction:column;gap:3px;padding:7px 14px;
  border-bottom:1px dashed var(--line-soft);
}
.dl-mem-sec:last-child{border-bottom:none;}
.dl-mem-tag{font-size:11px;font-weight:900;letter-spacing:1px;color:var(--amber);display:flex;align-items:center;gap:5px;}
.dl-mem-tag::before{content:'▍';color:var(--blood);}
.dl-mem-txt{font-size:12.5px;line-height:1.6;color:var(--ink);word-break:break-word;}
.dl-mem-txt em{font-style:normal;color:#E59A8B;font-weight:700;}
.dl-mem-txt strong{color:var(--green);font-weight:800;}
.dl-mem-sec.changed{background:var(--amber-soft);animation:flash-up 1.2s ease;}

/* ══════════ 14. 思维链 .dl-chain —— 灰烬自查单 ══════════ */
.dl-chain{
  width:100%;max-width:none;margin:8px auto 0;box-sizing:border-box;
  font-family:var(--font);background:var(--paper-2);
  border:1px solid rgba(228,222,208,.14);border-radius:var(--radius-md);
  overflow:hidden;box-shadow:var(--shadow);color:var(--ink);
}
.dl-chain>summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px;font-size:13px;font-weight:800;color:var(--ink-2);letter-spacing:1px;
  background:var(--paper);border-bottom:1px dashed var(--line);user-select:none;
}
.dl-chain>summary::-webkit-details-marker{display:none;}
.dl-chain>summary::-moz-list-marker{display:none;}
.dl-chain>summary>span:first-child{display:inline-flex;align-items:center;gap:8px;}
.dl-chain .dl-chain-ic{font-size:15px;}
.dl-chain .dl-chain-arrow{font-size:10px;color:var(--ink-3);transition:transform .2s;}
.dl-chain[open]>summary .dl-chain-arrow{transform:rotate(180deg);}
.dl-chain:not([open])>summary{border-bottom:none;}
.dl-chain-body{
  padding:12px 16px;font-size:12.5px;line-height:1.75;color:var(--ink-2);
  font-family:var(--font);white-space:pre-wrap;word-break:break-word;
  border-top:1px dashed var(--line);max-height:56vh;overflow-y:auto;scrollbar-width:thin;
}
.dl-chain-body::-webkit-scrollbar{width:4px;}
.dl-chain-body::-webkit-scrollbar-thumb{background:rgba(228,222,208,.22);border-radius:2px;}

@keyframes flash-up{0%{text-shadow:0 0 8px rgba(232,176,75,.9);transform:scale(1.03)}100%{text-shadow:none;transform:scale(1)}}
@keyframes flash-down{0%{text-shadow:0 0 8px rgba(163,58,42,.8);transform:scale(1.03)}100%{text-shadow:none;transform:scale(1)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}

/* ══════════ 15. 响应式 ══════════ */
@media (max-width:480px){
  .status-bar{grid-template-columns:1fr 1fr;}
  .st-cell{padding:9px 11px;}
  .st-content{font-size:13px;}
  .st-progress{width:48px;}
  .self-row{padding:6px 11px 6px 14px;gap:8px;font-size:12.5px;}
  .self-label{font-size:10.5px;min-width:38px;}
  .self-value{font-size:12.5px;}
  .npc-row{padding:6px 11px;gap:6px;font-size:12.5px;}
  .npc-name{min-width:44px;font-size:12.5px;}
  .npc-job{font-size:11px;}
  .npc-hp{width:42px;}
  .npc-status{font-size:11px;max-width:34%;}
  .sit-row,.wh-row,.bd-bar-row{grid-template-columns:auto 1fr auto;gap:2px 7px;}
  .sit-row{grid-template-columns:auto 1fr;}
  .cr-row{grid-template-columns:64px 58px 1fr;}
  .sit-row,.wh-row,.cr-row{padding:5px 11px;}
  .sit-value,.wh-value{font-size:12.5px;}
  .act-item{padding:9px 11px;font-size:12.5px;}
  .act-t{font-size:13px;}
  .dl-chain-body{padding:11px 13px;font-size:12px;}
  .dl-mem-sec{padding:6px 10px;}
  .dl-mem-txt{font-size:12px;}
  .dl-quest-bar{padding:10px 12px;gap:9px;}
}

/* ══════════ 16. 无障碍 ══════════ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
}
