/* ============================================================
   专业版工作区 · 统一设计系统（Work UI）
   ------------------------------------------------------------------
   2026-10-03 整体改造：五个版块（零件库/方案库/智能选配/收纳设计）
   此前各自注入 <style>，圆角 8/9/10/12/14/999px 混用、变量名两套
   （--line-2 vs --border）、硬编码 #fff/#c23a2b/#888 —— 暗色下直接瞎。
   本文件把这些收成**单一真源**：版块只允许按功能做布局差异，
   颜色/圆角/控件一律取这里的类，不再各自写变量。

   分层：
     ① 令牌别名层  —— 把历史私有变量名桥到家族令牌（tokens.css）
     ② 基础层      —— 归一化 reset、滚动条、焦点环
     ③ 组件层      —— 按钮/卡片/表格/弹窗/表单/标签/空态
     ④ 布局原语    —— 三栏工作台/侧栏/结果面板（各版块按需组合）

   铁律：新写样式只允许用本文件的类；确实需要新样式，加到对应区块并注明用途。
   ============================================================ */

/* ---------- ① 令牌别名层 ----------
   与 styles.css 同源，但补齐本页历史散落的别名，供五个版块共用。
   注意：同名变量不可写 var(--x, 兜底) 自引用，会让整条失效。 */
:root {
  /* 语义别名 → 家族令牌 */
  --w-text: var(--text);
  --w-text-2: var(--muted);
  --w-text-3: color-mix(in srgb, var(--muted) 78%, transparent);
  --w-line: var(--line);
  --w-line-2: var(--line-strong);
  --w-surface: var(--panel);
  --w-surface-2: var(--panel-2);
  --w-canvas: var(--bg);

  /* 分区立面图功能族配色（2026-10-03）。
     语义：挂衣=蓝、叠放=绿、抽屉/拉篮=粉、功能件=青、结构=中性灰。
     【为什么要变量】原先写死在 storage-view.js 里（FAMILY_COLOR 的 hex），
     暗色主题下整排立面图像贴了一块浅色补丁，底衬与周围格格不入。
     改成 CSS 变量后，明暗两套主题各配一次，JS 侧只管引语义名。 */
  --z-hang-bg:   #E6F1FB;  --z-hang-fg:   #185FA5;
  --z-stack-bg:  #EAF3DE;  --z-stack-fg:  #3B6D11;
  --z-pull-bg:   #FBEAF0;  --z-pull-fg:   #993556;
  --z-func-bg:   #E1F5EE;  --z-func-fg:   #0F6E56;
  --z-struct-bg: #F1EFE8;  --z-struct-fg: #6B675E;

  /* 历史私有名统一桥接（solutions.js 曾用 --border/--card，这里收口） */
  --border: var(--line);
  --card: var(--panel);

  /* 圆角阶梯：只允许用这四档，杜绝 9/10/14/999 乱象 */
  --w-r-xs: 6px;
  --w-r-sm: 8px;
  --w-r-md: 12px;
  --w-r-lg: 14px;
  --w-r-pill: 999px;

  /* 间距阶梯 */
  --w-gap-xs: 6px;
  --w-gap-sm: 10px;
  --w-gap: 14px;
  --w-gap-lg: 20px;
  --w-gap-xl: 28px;

  /* 层级：全站统一，避免各版块各写 z-index 打架 */
  --w-z-sticky: 20;
  --w-z-panel: 40;
  --w-z-header: 50;
  --w-z-modal: 200;
  --w-z-pop: 300;
}

/* ---------- ② 基础层 ---------- */
.work-root button,
.work-root input,
.work-root select,
.work-root textarea { font-family: inherit; }

/* 统一焦点环：键盘可达性（此前各版块 focus 样式各不相同） */
.work-root :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: var(--w-r-xs);
}

.work-root ::-webkit-scrollbar { width: 10px; height: 10px; }
.work-root ::-webkit-scrollbar-track { background: transparent; }
.work-root ::-webkit-scrollbar-thumb {
  background: var(--w-line-2);
  border-radius: var(--w-r-pill);
  border: 2px solid transparent;
  background-clip: padding-box;
}
.work-root ::-webkit-scrollbar-thumb:hover { background: var(--muted); background-clip: padding-box; }

/* ============================================================
   ③ 组件层
   ============================================================ */

/* ---------- 3.1 页内分区标题（① ② ③ 步骤式） ---------- */
.w-step {
  display: flex; align-items: baseline; gap: 10px;
  margin: 0 0 var(--w-gap-sm);
  font-size: 15px; font-weight: 700; color: var(--w-text);
}
.w-step .no {
  font-size: 11.5px; font-weight: 600; letter-spacing: .1em;
  color: var(--accent);
  background: var(--accent-soft);
  border-radius: var(--w-r-pill);
  padding: 2px 9px;
  flex: none;
}
.w-step .hint {
  margin-left: auto; font-size: 12px; font-weight: 400;
  color: var(--w-text-2);
}
.w-desc {
  margin: 0 0 var(--w-gap);
  font-size: 12.5px; line-height: 1.8; color: var(--w-text-2);
}

/* ---------- 3.2 按钮 ---------- */
.w-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--w-line-2);
  background: var(--w-surface);
  color: var(--w-text);
  padding: 7px 14px;
  border-radius: var(--w-r-sm);
  font-size: 13px; font-weight: 500;
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s, box-shadow .15s;
}
.w-btn:hover:not(:disabled) { border-color: var(--accent); color: var(--accent); }
.w-btn:disabled { opacity: .5; cursor: not-allowed; }
.w-btn.primary {
  background: var(--accent); border-color: var(--accent);
  color: #fff; font-weight: 600;
  box-shadow: 0 2px 8px var(--accent-ring);
}
.w-btn.primary:hover:not(:disabled) { background: var(--accent); color: #fff; filter: brightness(1.08); }
.w-btn.ghost { background: transparent; border-color: var(--w-line); }
.w-btn.danger { color: var(--danger); border-color: var(--danger-border); background: var(--danger-soft); }
.w-btn.danger:hover:not(:disabled) { border-color: var(--danger); background: var(--danger-soft); color: var(--danger); }
.w-btn.sm { padding: 5px 10px; font-size: 12px; }
.w-btn.lg { padding: 11px 22px; font-size: 14px; font-weight: 650; }
.w-btn.block { width: 100%; }

/* ---------- 3.3 卡片 / 面板 ---------- */
.w-card {
  background: var(--w-surface);
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-md);
  padding: var(--w-gap);
}
.w-card.tight { padding: var(--w-gap-sm) var(--w-gap); }
.w-card.flush { padding: 0; overflow: hidden; }
.w-card-title {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 var(--w-gap-sm);
  font-size: 14px; font-weight: 700; color: var(--w-text);
}
.w-card-title .tail { margin-left: auto; font-size: 12px; font-weight: 400; color: var(--w-text-2); }

/* ---------- 3.4 表单控件 ---------- */
.w-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.w-field > label {
  font-size: 12px; font-weight: 600; color: var(--w-text-2);
  display: flex; align-items: center; gap: 5px;
}
.w-field .hint { font-size: 11px; color: var(--w-text-3); font-weight: 400; }
.w-input, .w-select, .w-textarea {
  width: 100%; box-sizing: border-box;
  border: 1px solid var(--w-line-2);
  border-radius: var(--w-r-sm);
  padding: 7px 10px;
  font-size: 13px;
  background: var(--w-surface);
  color: var(--w-text);
  transition: border-color .15s, box-shadow .15s;
}
.w-textarea { resize: vertical; min-height: 62px; line-height: 1.7; }
.w-input:hover, .w-select:hover, .w-textarea:hover { border-color: var(--muted); }
.w-input:focus, .w-select:focus, .w-textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-ring);
}
.w-input::placeholder, .w-textarea::placeholder { color: var(--w-text-3); }
.w-select {
  appearance: none;
  padding-right: 28px;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
                    linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 15px) calc(50% + 1px), calc(100% - 10px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.w-check {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--w-text-2); cursor: pointer;
}
.w-check input { accent-color: var(--accent); margin: 0; }

/* 字段网格：按功能选列数，替代各版块自定 flex */
.w-grid { display: grid; gap: var(--w-gap-sm) var(--w-gap); }
.w-grid.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.w-grid.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.w-grid.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { .w-grid.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .w-grid.c2, .w-grid.c3, .w-grid.c4 { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 3.5 选项芯片（单选/多选通用） ---------- */
.w-chips { display: flex; flex-wrap: wrap; gap: var(--w-gap-xs); }
.w-chip {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid var(--w-line-2);
  background: transparent;
  color: var(--w-text-2);
  border-radius: var(--w-r-pill);
  padding: 6px 13px;
  font-size: 12.5px;
  cursor: pointer; user-select: none;
  transition: .15s;
}
.w-chip:hover { border-color: var(--accent); color: var(--accent); }
.w-chip.on {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--accent);
  font-weight: 600;
}
.w-chip .cnt {
  font-size: 10.5px; padding: 0 6px; border-radius: var(--w-r-pill);
  background: color-mix(in srgb, currentColor 14%, transparent);
}

/* ---------- 3.6 徽标 / 标签 ---------- */
.w-tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; line-height: 1.5;
  padding: 2px 8px;
  border-radius: var(--w-r-pill);
  background: var(--w-surface-2);
  color: var(--w-text-2);
  border: 1px solid var(--w-line);
}
.w-tag.accent { background: var(--accent-soft); color: var(--accent); border-color: var(--accent-ring); }
.w-tag.ok { background: var(--ok-soft); color: var(--ok); border-color: var(--ok-border); }
.w-tag.warn { background: var(--warn-soft); color: var(--warn); border-color: var(--warn-border); }
.w-tag.danger { background: var(--danger-soft); color: var(--danger); border-color: var(--danger-border); }
.w-tag.info { background: var(--info-soft); color: var(--info); border-color: var(--info); }

/* ---------- 3.7 三档切换器（此前 design.js / wardrobe.js 各定义一份且互相覆盖，
   选中态一个白底一个红底 —— 现收归此处，全站唯一实现） ---------- */
.w-tier {
  display: inline-flex; gap: 2px;
  background: var(--w-surface-2);
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-sm);
  padding: 3px;
  flex: none;
}
.w-tier button {
  display: inline-flex; align-items: center; gap: 5px;
  border: none; background: transparent;
  border-radius: var(--w-r-xs);
  padding: 6px 13px;
  font-size: 12.5px; font-weight: 600;
  color: var(--w-text-2);
  cursor: pointer;
  transition: .15s;
  white-space: nowrap;
}
.w-tier button:hover { color: var(--accent); }
.w-tier button.on {
  background: var(--w-surface);
  color: var(--accent);
  box-shadow: var(--shadow-card);
}

/* ---------- 3.8 表格 ---------- */
.w-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.w-table th, .w-table td {
  padding: 8px 10px;
  text-align: left;
  border-bottom: 1px solid var(--w-line);
  vertical-align: top;
}
.w-table thead th {
  position: sticky; top: 0; z-index: 1;
  background: var(--w-surface-2);
  color: var(--w-text-2);
  font-weight: 600; font-size: 11.5px;
  white-space: nowrap;
}
.w-table tbody tr:hover { background: var(--w-surface-2); }
.w-table tbody tr:last-child td { border-bottom: none; }
.w-table td.num, .w-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.w-table .key { color: var(--w-text-2); font-weight: 600; white-space: nowrap; }
.w-table-wrap {
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-md);
  overflow: auto;
  background: var(--w-surface);
  max-height: 46vh;
}

/* ---------- 3.9 弹窗（全站唯一一套，修 styles.css 双定义） ---------- */
.w-modal {
  position: fixed; inset: 0;
  z-index: var(--w-z-modal);
  display: flex; align-items: center; justify-content: center;
  padding: var(--w-gap-xl) var(--w-gap);
}
.w-modal[hidden] { display: none; }
.w-modal-mask {
  position: absolute; inset: 0;
  background: color-mix(in srgb, var(--w-canvas) 55%, transparent);
  backdrop-filter: blur(3px);
  animation: wFade .15s ease;
}
.w-modal-box {
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  width: min(92vw, 860px);
  max-height: 86vh;
  background: var(--w-surface);
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-lg);
  box-shadow: var(--shadow-elevate);
  animation: wPop .18s ease-out;
  overflow: hidden;
}
.w-modal-box.wide { width: min(94vw, 1080px); }
.w-modal-box.narrow { width: min(92vw, 520px); }
.w-modal-head {
  display: flex; align-items: center; gap: var(--w-gap-sm);
  padding: var(--w-gap) var(--w-gap-lg);
  border-bottom: 1px solid var(--w-line);
  flex: none;
}
.w-modal-head h3 { margin: 0; font-size: 15.5px; font-weight: 700; flex: 1; }
.w-modal-body {
  padding: var(--w-gap-lg);
  overflow-y: auto; flex: 1;
  font-size: 13px; line-height: 1.75;
}
.w-modal-foot {
  display: flex; align-items: center; gap: var(--w-gap-sm);
  padding: var(--w-gap) var(--w-gap-lg);
  border-top: 1px solid var(--w-line);
  flex: none;
}
.w-modal-foot .tail { margin-left: auto; }
@keyframes wFade { from { opacity: 0 } to { opacity: 1 } }
@keyframes wPop { from { opacity: 0; transform: translateY(10px) scale(.985) } to { opacity: 1; transform: none } }

/* ---------- 3.10 提示条 ---------- */
.w-note {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 10px 13px;
  border-radius: var(--w-r-sm);
  border: 1px solid var(--w-line);
  border-left: 3px solid var(--accent);
  background: var(--w-surface-2);
  font-size: 12.5px; line-height: 1.75;
  color: var(--w-text-2);
}
.w-note.ok { border-left-color: var(--ok); background: var(--ok-soft); color: var(--ok); }
.w-note.warn { border-left-color: var(--warn); background: var(--warn-soft); color: var(--warn); }
.w-note.danger { border-left-color: var(--danger); background: var(--danger-soft); color: var(--danger); }
.w-note b { color: var(--w-text); }

/* ---------- 3.11 空状态 ---------- */
.w-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: var(--w-gap-sm);
  padding: 56px var(--w-gap);
  text-align: center;
  color: var(--w-text-2);
  font-size: 13px; line-height: 1.8;
}
.w-empty .big { font-size: 40px; opacity: .55; }
.w-empty .go { margin-top: var(--w-gap-sm); }

/* ---------- 3.12 吐司 ---------- */
.w-toast {
  position: fixed; left: 50%; bottom: 26px;
  transform: translate(-50%, 8px);
  z-index: var(--w-z-pop);
  padding: 10px 18px;
  border-radius: var(--w-r-sm);
  background: var(--w-text);
  color: var(--w-surface);
  font-size: 13px;
  box-shadow: var(--shadow-elevate);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.w-toast.show { opacity: 1; transform: translate(-50%, 0); }
.w-toast.err { background: var(--danger); color: #fff; }
.w-toast.ok { background: var(--ok); color: #fff; }

/* ============================================================
   ④ 布局原语
   ============================================================ */

/* 三栏工作台：左参数 / 中画布 / 右结果（智能选配、收纳设计共用骨架） */
.w-bench {
  display: flex;
  flex: 1; min-height: 0;
  overflow: hidden;
}
.w-bench-side {
  flex: none; width: 320px;
  border-right: 1px solid var(--w-line);
  background: var(--w-surface);
  padding: var(--w-gap-lg) var(--w-gap);
  overflow-y: auto;
}
.w-bench-main {
  flex: 1.15; min-width: 0;
  padding: var(--w-gap-lg) var(--w-gap-xl);
  overflow: auto;
  display: flex; flex-direction: column;
}
.w-bench-result {
  flex: 1; min-width: 360px; max-width: 520px;
  border-left: 1px solid var(--w-line);
  background: var(--w-surface);
  display: flex; flex-direction: column;
  min-height: 0;
}
@media (max-width: 1280px) {
  .w-bench { flex-direction: column; overflow-y: auto; }
  .w-bench-side, .w-bench-result {
    width: auto; max-width: none; min-width: 0;
    border: none; border-bottom: 1px solid var(--w-line);
  }
  .w-bench-main { padding: var(--w-gap); }
}

/* 结果面板的头/体/脚（右侧栏或卡片内复用） */
.w-panel-head {
  display: flex; align-items: center; gap: var(--w-gap-sm);
  flex-wrap: wrap;
  padding: var(--w-gap) var(--w-gap-lg);
  border-bottom: 1px solid var(--w-line);
  flex: none;
}
.w-panel-body { flex: 1; overflow-y: auto; padding: var(--w-gap) var(--w-gap-lg) var(--w-gap-xl); }
.w-panel-foot {
  flex: none;
  padding: var(--w-gap-sm) var(--w-gap-lg);
  border-top: 1px solid var(--w-line);
  font-size: 12px; line-height: 1.8;
  color: var(--w-text-2);
  background: var(--w-surface-2);
}

/* 金额：全站统一 tabular-nums，避免各版块数字跳动 */
.w-amount {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  color: var(--accent);
}
.w-amount.big { font-size: 19px; }
.w-amount.mid { font-size: 15px; }

/* 分组条目（清单/五金行） */
.w-item {
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-sm);
  background: var(--w-surface-2);
  overflow: hidden;
}
.w-item + .w-item { margin-top: var(--w-gap-xs); }
.w-item-head {
  display: flex; align-items: center; gap: var(--w-gap-sm);
  padding: 9px 12px;
  background: var(--w-surface);
  border-bottom: 1px solid var(--w-line);
  font-size: 12.5px;
}
.w-item-head b { font-weight: 600; }
.w-item-head .tail { margin-left: auto; font-size: 11.5px; color: var(--w-text-2); }
.w-item-body { padding: 10px 12px; font-size: 12.5px; }
.w-item-body .nm { font-weight: 600; color: var(--w-text); }
.w-item-body .meta { font-size: 11.5px; color: var(--w-text-2); margin-top: 3px; }
.w-item-body .price { font-size: 12.5px; font-weight: 700; color: var(--accent); font-variant-numeric: tabular-nums; }

/* 子视图切换（收纳：整空间 / 单柜） */
.w-subtabs {
  display: flex; gap: 2px;
  padding: 3px;
  background: var(--w-surface-2);
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-sm);
  flex: none;
}
.w-subtabs button {
  display: inline-flex; align-items: center; gap: 6px;
  border: none; background: transparent;
  border-radius: var(--w-r-xs);
  padding: 6px 14px;
  font-size: 12.5px; font-weight: 600;
  color: var(--w-text-2);
  cursor: pointer;
  transition: .15s;
  white-space: nowrap;
}
.w-subtabs button:hover { color: var(--accent); }
.w-subtabs button.on {
  background: var(--w-surface);
  color: var(--accent);
  box-shadow: var(--shadow-card);
}

/* ============================================================
   3.13 整空间立面图（2026-10-03 新增）
   ------------------------------------------------------------
   立面图是收纳方案的核心信息载体，所以给它「独立卡片 + 统一比例尺」的待遇：
   柜数多时自动两列排布（单列会把每张图压到不可读），
   标题与图分离，尺寸/角色用轻量标签补足信息，不占图的横向空间。
   ============================================================ */
.w-space-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--w-gap); margin-bottom: var(--w-gap-sm);
}
.w-space-head .sh-title { display: flex; align-items: baseline; gap: var(--w-gap-sm); min-width: 0; }
.w-space-head .sh-title b { font-size: 16px; color: var(--w-text); }

.w-elev-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: var(--w-gap);
  align-items: start;
}
.w-elev {
  margin: 0;
  background: var(--w-surface);
  border: 1px solid var(--w-line);
  border-radius: var(--w-r-md);
  padding: 10px 12px 12px;
  min-width: 0;
}
.w-elev figcaption {
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap;
  margin-bottom: 8px;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--w-line);
}
.w-elev figcaption b { font-size: 13.5px; color: var(--w-text); }
.w-elev figcaption .w-tag { font-size: 10.5px; }
.w-elev svg { display: block; max-width: 100%; height: auto; }

.w-space-actions {
  display: flex; gap: var(--w-gap-xs); align-items: center; flex-wrap: wrap;
  margin-top: var(--w-gap-lg);
  padding-top: var(--w-gap);
  border-top: 1px solid var(--w-line);
}

/* 拖拽把手悬停提示：光标变化之外给个视觉锚点，方便用户发现可拖 */
.w-elev .zdiv:hover { fill: var(--accent-soft); }

/* ============================================================
   3.14 分区立面图 · 暗色主题配色
   ------------------------------------------------------------
   亮色版的 --z-*-bg 是很浅的 pastel，直接拿到暗色下会变成一块块刺眼的浅色补丁
   （实测：整排立面图像贴了 8 张便签）。这里把底衬压到与面板同量级的深色，
   前景色提亮到仍能读 —— 语义（蓝/绿/粉/青/灰）保持不变，只是换了明度。
   ============================================================ */
[data-theme="dark"] {
  --z-hang-bg:   #16293A;  --z-hang-fg:   #7FB4E8;
  --z-stack-bg:  #1E2C15;  --z-stack-fg:  #96C87A;
  --z-pull-bg:   #33202A;  --z-pull-fg:   #E39BB4;
  --z-func-bg:   #14302A;  --z-func-fg:   #63C7AB;
  --z-struct-bg: #26262A;  --z-struct-fg: #9A968E;
}

/* ============================================================
   3.15 画像假设提示条
   ------------------------------------------------------------
   后端在缺参数时按「典型家庭」补全画像（这是「缺资料≠放弃定制」的落地方式），
   但补全是替用户做的决定，必须显式摊开可查 —— 否则就成了黑箱默认值。
   用 details 折叠：默认只占一行，不增加信息密度；点开看逐项说明。
   ============================================================ */
.w-assume {
  margin: 0 0 var(--w-gap-sm);
  padding: 7px 10px;
  border: 1px dashed var(--w-line-2);
  border-radius: var(--w-r-sm);
  background: var(--w-surface-2);
}
.w-assume summary {
  cursor: pointer;
  font-size: 12px;
  color: var(--w-text-2);
  list-style: none;
  display: flex; align-items: center; gap: 5px;
}
.w-assume summary::-webkit-details-marker { display: none; }
.w-assume summary::before { content: '◇'; color: var(--w-accent, var(--accent)); font-size: 11px; }
.w-assume[open] summary::before { content: '◆'; }
.w-assume summary:hover { color: var(--w-text); }
.w-assume ul {
  margin: 8px 0 6px;
  padding-left: 16px;
  font-size: 12px;
  line-height: 1.7;
  color: var(--w-text);
}
.w-assume p { margin: 0; }
