/* 受法条约束：L-8(颜色/间距/圆角只许 var(--g-*)，字号 rem，间距只取 4/8/12/16/24)
   法典/01_宪法_六条铁律.md · 04_UI风格规范.md 的『U-9』 · 05_设计系统底座.md 的『S-4』
   本文件：hall + publish 任务大厅与发布表单（类名前缀 hall-，禁与 base.css 重名）
   任务卡/展开详情/搜索条复用 base.css 的 .q-card/.q-exp/.it-search-bar，不重复定义 */

/* ── 页面骨架：与 .wb-page 同理，冲掉 #app 内边距铺满整屏 ── */
.hall-page {
  margin: calc(var(--g-pad) * -1);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  padding: var(--g-pad);
  box-sizing: border-box;
}

/* ── 顶栏：← 返回 ＋ 页名 ── */
.hall-top { display: flex; align-items: center; gap: var(--g-gap); padding: var(--g-pad-sm) 0; }
.hall-back {
  border: 0; background: none; padding: var(--g-pad-xs) 0;
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm);
  color: var(--g-text-sub); cursor: pointer;
}
.hall-title { font-size: var(--g-font-size-lg); font-weight: 700; }

/* 刷新按钮（任务大厅与工作台完善方案 §七） */
.hall-refresh {
  border: 0; background: none; padding: var(--g-pad-xs);
  font-size: var(--g-font-size); cursor: pointer;
  color: var(--g-text-sub);
}
.hall-refresh:hover { color: var(--g-accent); }

/* 大厅分段标题 */
.hall-section { margin-bottom: var(--g-gap-lg); }
.hall-section-title {
  display: flex; align-items: center; justify-content: space-between;
  padding: var(--g-pad-xs) 0;
  font-size: var(--g-font-size-sm); font-weight: 700; color: var(--g-text);
}
.hall-section-count {
  font-size: var(--g-font-size-xs); color: var(--g-text-sub); /* t48：tiny→xs */
  background: var(--g-card-hover); padding: 2px var(--g-pad-xs);
  border-radius: var(--g-radius-sm);
}
/* 折叠指示器 ▾/▸ */
.hall-fold-icon {
  font-size: var(--g-font-size-xs); color: var(--g-text-dim);
  margin-left: var(--g-pad-xs);
  transition: transform .15s ease;
}

/* 大厅统计概览条 */
.hall-summary {
  display: flex; gap: var(--g-gap); padding: var(--g-pad-xs) 0;
}
.hall-sum-chip {
  flex: 1; text-align: center;
  padding: 6px var(--g-pad-xs);
  border-radius: var(--g-radius-sm);
  font-size: var(--g-font-size-xs); font-weight: 600;
  background: var(--g-card); border: 1px solid var(--g-card-border);
  color: var(--g-text-sub);
}
.hall-sum-chip--accent { color: var(--g-accent); background: var(--g-accent-bg); border-color: var(--g-accent); }
.hall-sum-chip--blue   { color: var(--g-blue);   background: var(--g-blue-bg);   border-color: var(--g-blue); }
.hall-sum-chip--green  { color: var(--g-green);  background: var(--g-green-bg);  border-color: var(--g-green); }

/* 审核人搜索下拉 */
.hall-reviewer-wrap { position: relative; }
.hall-reviewer-dropdown {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 100;
  max-height: 200px; overflow-y: auto;
  background: var(--g-card); border: 1px solid var(--g-card-border);
  border-radius: var(--g-radius-sm); margin-top: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.hall-reviewer-item {
  padding: var(--g-pad-sm); cursor: pointer;
  font-size: var(--g-font-size-sm); color: var(--g-text);
  border-bottom: 1px solid var(--g-card-border);
}
.hall-reviewer-item:last-child { border-bottom: 0; }
.hall-reviewer-item:hover { background: var(--g-card-hover); }

/* ── NPC 问候：头像＋气泡（U-9 一屏一主角，气泡用近白卡） ── */
.hall-npc { display: flex; align-items: flex-start; gap: var(--g-gap-lg); margin: var(--g-gap) 0; }
.hall-npc-av {
  width: 44px; height: 44px; flex-shrink: 0; overflow: hidden;
  border-radius: 50%; border: 1px solid var(--g-card-border);
  background: var(--g-card-hover);
}
.hall-npc-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hall-npc-bubble {
  flex: 1; padding: var(--g-pad-sm) var(--g-pad);
  background: var(--g-card); border: 1px solid var(--g-card-border);
  border-radius: var(--g-radius);
  font-size: var(--g-font-size-sm); color: var(--g-text-sub); line-height: 1.5;
}

/* ── 两级筛选 chips：选中态高亮（accent=能点能拿钱，U-9 第1条） ── */
.hall-fgroup { margin-bottom: var(--g-gap); }
.hall-fgroup-label { font-size: var(--g-font-size-xs); color: var(--g-text-sub); margin-bottom: 4px; } /* t48：tiny→xs */
.hall-fchips { display: flex; flex-wrap: wrap; gap: var(--g-gap); }
.hall-chip {
  padding: 4px var(--g-pad-sm);
  border: 1px solid var(--g-card-border); border-radius: var(--g-radius-sm);
  background: var(--g-card); color: var(--g-text-sub);
  font-family: var(--g-font-family); font-size: var(--g-font-size-xs); /* t48：tiny→xs */
  cursor: pointer;
}
.hall-chip.is-on {
  background: var(--g-accent-bg); color: var(--g-accent);
  border-color: var(--g-accent); font-weight: 600;
}

/* ── C-52 卡片图标自选格（2026-10-01）：发布表单与换图标弹层共用；图标芯片等宽紧凑排 ── */
.hall-icon-grid { gap: var(--g-pad-xs); }
.hall-icon-chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px var(--g-pad-xs);
}
.hall-icon-chip i { font-size: var(--g-font-size); }

/* ── 卡上「我发的」标（my_rel==='posted'，见 法典/03_数据字典.md 的『D-43』） ── */
/* 2026-10-01 问题五终版：徽章 shrink:0 永不碎——挤时由 js/ui-fit.js 按 data-fit 优先级整枚藏掉，
   不再压成「我」「待」半个字（flex 压碎实测比叠字更像坏件） */
.hall-mine {
  flex-shrink: 0;
  padding: 0 var(--g-pad-xs);
  border-radius: var(--g-radius-sm);
  background: var(--g-accent-bg); color: var(--g-accent);
  font-size: var(--g-font-size-micro); font-weight: 600;
}
/* ── 关系标「待我审」（is_reviewer）：与「我发的」可同存，同规矩整枚让位 ── */
.q-rel {
  flex-shrink: 0;
  padding: 0 var(--g-pad-xs);
  border-radius: var(--g-radius-sm);
  background: var(--g-blue-bg); color: var(--g-blue);
  font-size: var(--g-font-size-micro); font-weight: 600;
}

/* ── 任务状态标签（U-28 刀1：进行中/已满/已结） ── */
.q-status {
  flex-shrink: 0; padding: 0 var(--g-pad-xs);
  border-radius: var(--g-radius-sm);
  font-size: var(--g-font-size-micro); font-weight: 600;
  background: var(--g-card-hover); color: var(--g-text-sub);
}
.q-status--active { background: var(--g-blue-bg); color: var(--g-blue); }
.q-status--settled { background: var(--g-green-bg); color: var(--g-green); }
.q-status--cancelled { background: var(--g-red-bg); color: var(--g-red); }
.q-status--disputed { background: var(--g-warn-bg); color: var(--g-warn); }
.q-status--approved { background: var(--g-warn-bg); color: var(--g-warn); }   /* 待结算：等我点结算，warn 色调 */

/* ── 认领键：能点能拿钱 = accent（U-9 第1条） ── */
.hall-claim {
  flex-shrink: 0; border: 0; padding: 4px var(--g-pad-sm);
  border-radius: var(--g-radius-sm);
  background: var(--g-accent); color: var(--g-text-on-dark);
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm); font-weight: 700;
  line-height: 1.2; cursor: pointer;
}

/* ── 列表区 ── */
.hall-list { flex: 1; padding-bottom: var(--g-gap); }

/* ── 底部发布条：吸底，别让「+ 发布委托」滚没影 ── */
.hall-foot {
  position: sticky; bottom: 0; margin-top: auto;
  display: flex; align-items: stretch; gap: var(--g-gap-lg);
  padding: var(--g-pad-sm) 0;
  background: var(--g-topbar-bg);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--g-card-border);
  /* 2026-10-16 砚仁报：展开时间线的点状装饰（.q-tl-dot z-index:1）滚到底栏上方露馅——
     底栏抬到 z-index:2 盖住它；筛选下拉 z-index:100 不受影响（不同叠放上下文）。 */
  z-index: 2;
}

/* ── O-28 底栏「我的」白胶囊：左头像 28px 墨绿描边圆＋名字，点进工作台 ── */
.hall-me {
  flex-shrink: 0; display: flex; align-items: center; gap: var(--g-pad-xs);
  padding: 4px var(--g-pad-sm) 4px 4px;
  background: var(--g-card); border: 1px solid var(--g-card-border);
  border-radius: var(--g-radius-xl); cursor: pointer;
  font-family: var(--g-font-family);
}
.hall-me-av {
  width: 28px; height: 28px; flex-shrink: 0; overflow: hidden;
  border-radius: 50%; border: var(--g-avatar-ring) solid var(--g-accent);
  background: var(--g-card-hover);
}
.hall-me-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hall-me-name {
  max-width: 5em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  font-size: var(--g-font-size-sm); font-weight: 600; color: var(--g-text);
}
.hall-pub {
  flex: 1; min-width: 0; min-height: 44px; border: 0;
  border-radius: var(--g-radius-sm);
  background: var(--g-accent); color: var(--g-text-on-dark);
  font-family: var(--g-font-family); font-size: var(--g-font-size);
  font-weight: 700; cursor: pointer;
}

/* ── O-5 任务卡类型配色：tone 来自 DICT.TASK_TYPE_COLORS（system 蓝/community 橙/main 墨绿/side 绿/daily 灰/personal 蓝）── */
.hall-left--blue   { background: var(--g-blue-bg); }
.hall-left--warn   { background: var(--g-warn-bg); }
.hall-left--accent { background: var(--g-accent-bg); }
.hall-left--green  { background: var(--g-green-bg); }
.hall-left--dim    { background: var(--g-card-hover); }
.hall-tag--blue   { color: var(--g-blue);   background: var(--g-blue-bg); }
.hall-tag--warn   { color: var(--g-warn);   background: var(--g-warn-bg); }
.hall-tag--accent { color: var(--g-accent); background: var(--g-accent-bg); }
.hall-tag--green  { color: var(--g-green);  background: var(--g-green-bg); }
.hall-tag--dim    { color: var(--g-text-sub); background: var(--g-card-hover); }

/* ═══ publish 草稿箱（O-6）═══ */
.hall-drafts { margin-top: var(--g-gap-lg); padding-top: var(--g-gap); border-top: 1px dashed var(--g-card-border); }
.hall-drafts-title { font-size: var(--g-font-size-sm); font-weight: 700; color: var(--g-warn); margin-bottom: var(--g-gap); }
.hall-draft-row { display: flex; align-items: center; gap: var(--g-pad-xs); padding: var(--g-pad-xs) 0; cursor: pointer; }
.hall-draft-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--g-font-size-sm); color: var(--g-text); }
.hall-draft-time { flex-shrink: 0; font-size: var(--g-font-size-xs); color: var(--g-text-dim); }
.hall-draft-del { flex-shrink: 0; border: 0; background: none; cursor: pointer; font-family: var(--g-font-family); font-size: var(--g-font-size-sm); color: var(--g-text-sub); padding: 0 var(--g-pad-xs); }
.hall-drafts-empty { padding: var(--g-pad-sm) 0; font-size: var(--g-font-size-sm); color: var(--g-text-dim); }

/* ═══ publish 发布表单 ═══ */
.hall-form { display: flex; flex-direction: column; gap: var(--g-gap-lg); padding-bottom: var(--g-pad); }
.hall-row { display: flex; gap: var(--g-gap-lg); }
.hall-row .hall-field { flex: 1; min-width: 0; }
.hall-label {
  display: block; margin-bottom: 4px;
  font-size: var(--g-font-size-xs); font-weight: 600; color: var(--g-text-sub); /* t48：tiny→xs */
}
.hall-input, .hall-select, .hall-textarea {
  width: 100%; padding: var(--g-pad-sm);
  border: 1px solid var(--g-card-border); border-radius: var(--g-radius-sm);
  background: var(--g-card); color: var(--g-text);
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm);
  outline: none; box-sizing: border-box;
}
.hall-input:focus, .hall-select:focus, .hall-textarea:focus { border-color: var(--g-accent); }
.hall-select { min-height: 40px; }
.hall-textarea { resize: vertical; line-height: 1.5; }

.hall-checks { display: flex; flex-wrap: wrap; gap: var(--g-gap); align-items: center; }
.hall-check {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: var(--g-font-size-sm); color: var(--g-text);
  cursor: pointer; padding: var(--g-pad-xs) 0;
}
.hall-count {
  width: 44px; padding: 0 4px; box-sizing: border-box;
  border: 1px solid var(--g-card-border); border-radius: var(--g-radius-sm);
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm);
  text-align: center; color: var(--g-text);
}

.hall-acts { display: flex; gap: var(--g-gap-lg); }
.hall-btn {
  flex: 1; min-height: 44px; cursor: pointer;
  border: 1px solid var(--g-card-border); border-radius: var(--g-radius-sm);
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm); font-weight: 700;
}
.hall-btn--sec { background: var(--g-card); color: var(--g-text-sub); }
.hall-btn--pri { background: var(--g-accent); color: var(--g-text-on-dark); border-color: var(--g-accent); }

/* ── 大厅紧凑筛选 ── */
.hall-filters { display:flex; gap:8px; padding:8px 12px; align-items:center; flex-wrap:wrap; }
.hall-fselect { position:relative; }
.hall-fselect-btn { padding:4px 10px; border:1px solid var(--g-card-border); border-radius:var(--g-radius-sm); background:var(--g-card); color:var(--g-text); font-size:var(--g-font-size-xs); cursor:pointer; white-space:nowrap; }
.hall-fselect-btn:hover { border-color:var(--g-accent); color:var(--g-accent); }
.hall-fselect-menu { display:none; position:absolute; top:calc(100% + 4px); left:0; min-width:100px; background:var(--g-card); border:1px solid var(--g-card-border); border-radius:var(--g-radius-sm); box-shadow:var(--g-shadow); z-index:10; overflow:hidden; }
.hall-fselect-item { padding:6px 12px; font-size:var(--g-font-size-xs); color:var(--g-text); cursor:pointer; white-space:nowrap; }
.hall-fselect-item:hover { background:var(--g-card-hover); }
.hall-fselect-item.is-on { background:var(--g-accent-bg); color:var(--g-accent); }


/* ══════════ 浅色精修（2026 底回浅 · 原 t3 沉浸深色段翻浅版）══════════
   tokens.css 沉浸深色覆盖段已回滚（面/字/分隔/状态/阴影恢复原浅色值），
   本段把 t3 精修同步翻为「浅玻璃/浅卡 + 深字」，精修动作逐条保留：
   毛玻璃 backdrop、hover 抬升金环、active / focus-visible / disabled、
   圆角与过渡。颜色一律走 --g-* token（回浅后的原值）；玻璃面走
   --g-glass-*（已转浅：半透明白 + 墨绿细描边 + 浅影）；金只保留在主 CTA
   渐变（#e8c87c/#c9a24e 底 + #2a2413 深字——护栏 15 就地 hex 登记，不引
   gold token），hover 描边为金 tint（rgba(201,162,78,…) 就地登记）。 */

/* ── 页面壳：浅底 + 顶栏 hover/focus 全态 ── */
.hall-page { min-height: 100dvh; }
.hall-top { padding-top: calc(env(safe-area-inset-top, 0px) + 8px); }
.hall-back:hover { color: var(--g-accent); }
.hall-title { letter-spacing: 0.04em; color: var(--g-text); }
.hall-refresh {
  color: var(--g-text-sub); font-size: var(--g-font-size-sm);
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: var(--g-radius-sm);
  transition: color .22s, background .22s;
}
.hall-refresh:hover { color: var(--g-accent); background: var(--g-accent-bg); }
.hall-refresh:active { transform: scale(.92); }
.hall-refresh:focus-visible { outline: 2px solid var(--g-accent-light); outline-offset: 1px; }
.hall-refresh i { pointer-events: none; }

/* ── NPC 问候：头像兜底 FA + 浅玻璃气泡（深字）── */
.hall-npc-av, .hall-me-av { display: flex; align-items: center; justify-content: center; }
.hall-npc-av.is-fallback, .hall-me-av.is-fallback { color: var(--g-text-dim); }
.hall-npc-av.is-fallback i, .hall-me-av.is-fallback i { font-size: var(--g-font-size-lg); }
.hall-me-av.is-fallback i { font-size: var(--g-font-size); }
.hall-npc-bubble {
  background: linear-gradient(168deg, var(--g-glass-bg), var(--g-glass-bg-deep));
  border: 1px solid var(--g-glass-border);
  box-shadow: var(--g-shadow), inset 0 1px 0 var(--g-glass-highlight);
  backdrop-filter: blur(14px) saturate(1.05); -webkit-backdrop-filter: blur(14px) saturate(1.05);
  color: var(--g-text-sub);
}

/* ── 搜索条：白卡输入（AA：深字 14.7:1）+ accent focus ── */
.hall-page .it-search-input {
  background: var(--g-card);
  border: 1px solid var(--g-card-border);
  color: var(--g-text);
  transition: border-color .22s, box-shadow .22s;
}
.hall-page .it-search-input:focus {
  border-color: var(--g-accent);
  box-shadow: 0 0 0 3px var(--g-accent-light-alpha);
  outline: none;
}
.hall-page .it-search-input::placeholder { color: var(--g-text-muted); }
.hall-page .it-search-clear {
  background: var(--g-card-hover); color: var(--g-text-sub);
  border: 1px solid var(--g-card-border);
}
.hall-page .it-search-clear:active { transform: scale(.92); }

/* ── 筛选下拉：浅玻璃菜单 + accent 选中 ── */
.hall-fselect-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--g-card);
  border-color: var(--g-card-border);
  color: var(--g-text);
  transition: border-color .22s, color .22s, background .22s;
}
.hall-fselect-btn:hover { border-color: var(--g-accent); color: var(--g-accent); background: var(--g-accent-bg); }
.hall-fselect-btn:focus-visible { outline: 2px solid var(--g-accent-light); outline-offset: 1px; }
.hall-fselect-menu {
  background: rgba(255, 255, 255, 0.97);
  border-color: var(--g-card-border);
  box-shadow: var(--g-shadow-lg);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.hall-fselect-item { color: var(--g-text); }
.hall-fselect-item:hover { background: var(--g-card-hover); color: var(--g-accent); }
.hall-fselect-item.is-on { background: var(--g-accent-bg); color: var(--g-accent); }

/* ── 任务卡（.hall-page 作用域）：浅玻璃面 + hover 抬升金环 ──
   边框/左竖带仍走 base 的 .q-card（warn/red/posted 语义色不覆盖），
   本段只给面：白玻璃 + 细影；hover 抬升 + 金 tint 描边（就地登记）。 */
.hall-page .q-card, .arc-room .q-card {
  background: linear-gradient(168deg, var(--g-glass-bg), var(--g-glass-bg-deep));
  box-shadow: var(--g-shadow-sm), inset 0 1px 0 var(--g-glass-highlight);
  backdrop-filter: blur(12px) saturate(1.06); -webkit-backdrop-filter: blur(12px) saturate(1.06);
  transition: transform .22s ease, box-shadow .22s ease;
}
.hall-page .q-card:hover, .arc-room .q-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--g-shadow), 0 0 0 1px rgba(201, 162, 78, 0.55), 0 0 12px rgba(201, 162, 78, 0.10);
}
.hall-page .q-card:focus-within, .arc-room .q-card:focus-within { box-shadow: 0 0 0 2px var(--g-accent-light); }
/* 急迫卡：浅玻璃退场改回原浅 tint 面（左竖带继续走 base 语义色） */
.hall-page .q-card--warn { background: var(--g-tint-warn); }
.hall-page .q-card--red  { background: var(--g-tint-red); }
.hall-page .q-left i, .arc-room .q-left i { font-size: var(--g-font-size-lg); color: var(--g-text-sub); }
.hall-page .q-title, .arc-room .q-title { color: var(--g-text); }
.hall-page .q-nt, .arc-room .q-nt { color: var(--g-accent); }   /* 赏金回 accent 绿（浅底可读） */
.hall-page .q-poster, .hall-page .q-due, .hall-page .hall-mine, .hall-page .q-status, .hall-page .q-rel,
.arc-room .q-poster, .arc-room .q-due, .arc-room .hall-mine, .arc-room .q-status, .arc-room .q-rel {
  display: inline-flex; align-items: center; gap: 4px;
}
.hall-page .q-poster i, .hall-page .q-due i, .hall-page .hall-mine i, .hall-page .q-rel i,
.arc-room .q-poster i, .arc-room .q-due i, .arc-room .hall-mine i, .arc-room .q-rel i { font-size: var(--g-font-size-xs); color: inherit; }
.hall-page .q-due i { margin-right: 1px; }

/* 段标题：accent 前缀图标 */
.hall-page .hall-sec-name { display: inline-flex; align-items: center; gap: 6px; }
.hall-page .hall-sec-name i { color: var(--g-accent); font-size: var(--g-font-size-sm); }

/* ── 认领键：accent 主键 + hover/active/focus-visible/disabled ── */
.hall-page .hall-claim {
  display: inline-flex; align-items: center; justify-content: center; gap: 5px;
  background: linear-gradient(135deg, var(--g-accent), var(--g-accent-dark));
  color: #fff;
  border: 1px solid var(--g-accent-dark);
  transition: transform .22s ease, filter .22s ease, box-shadow .22s ease;
}
.hall-page .hall-claim:not(:disabled):hover { transform: translateY(-1px); filter: brightness(1.08); }
.hall-page .hall-claim:active { transform: scale(.96); }
.hall-page .hall-claim:focus-visible { outline: 2px solid var(--g-accent-light-alpha); outline-offset: 1px; }
.hall-page .hall-claim:disabled { opacity: .55; cursor: default; }

/* ── 底部条：浅磨砂吸底 + 金主键「发布委托」── */
.hall-foot { background: var(--g-topbar-bg); }
.hall-page .hall-me { background: var(--g-card); border-color: var(--g-card-border); }
.hall-page .hall-me:active { transform: scale(.97); }
.hall-page .hall-me-name { color: var(--g-text); }
.hall-page .hall-pub {
  background: linear-gradient(135deg, #e8c87c, #c9a24e);  /* 金 CTA 就地登记 */
  color: #2a2413;                                          /* 金底深字（AA 可读） */
  border: 0;
  box-shadow: 0 6px 16px rgba(201, 162, 78, 0.35);
  letter-spacing: 0.06em;
  transition: transform .22s ease, filter .22s ease, box-shadow .22s ease;
}
.hall-page .hall-pub:hover { transform: translateY(-2px); filter: brightness(1.05); }
.hall-page .hall-pub:active { transform: scale(.97); }
.hall-page .hall-pub:focus-visible { outline: 2px solid rgba(232, 200, 124, 0.8); outline-offset: 2px; }

/* ═══ publish 发布表单：白卡输入 + accent focus，文字全走 token ─── */
.hall-page .hall-form { padding-top: var(--g-pad-xs); }
.hall-page .hall-label { color: var(--g-text-sub); letter-spacing: .02em; }
.hall-page .hall-input, .hall-page .hall-select, .hall-page .hall-textarea {
  background: var(--g-card);
  border-color: var(--g-card-border);
  color: var(--g-text);
  transition: border-color .22s, box-shadow .22s;
}
.hall-page .hall-input:focus, .hall-page .hall-select:focus, .hall-page .hall-textarea:focus {
  border-color: var(--g-accent);
  box-shadow: 0 0 0 3px var(--g-accent-light-alpha);
}
.hall-page .hall-input::placeholder, .hall-page .hall-textarea::placeholder { color: var(--g-text-muted); }

/* chips（角色/人数/类型/范围）：白卡胶囊 + is-on accent（原浅 UI 语义） */
.hall-page .hall-chip {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--g-card);
  border-color: var(--g-card-border);
  color: var(--g-text-sub);
  padding: 6px var(--g-pad-sm);
  transition: border-color .22s, color .22s, background .22s, transform .22s;
}
.hall-page .hall-chip i { font-size: var(--g-font-size-sm); color: var(--g-text-dim); }
.hall-page .hall-chip:hover { border-color: var(--g-accent-light); color: var(--g-accent); background: var(--g-accent-bg); }
.hall-page .hall-chip.is-on {
  background: var(--g-accent-bg);
  border-color: var(--g-accent);
  color: var(--g-accent);
  font-weight: 600;
}
.hall-page .hall-chip.is-on i { color: var(--g-accent); }
.hall-page .hall-chip:active { transform: scale(.96); }
.hall-page .hall-chip:focus-visible { outline: 2px solid var(--g-accent-light); outline-offset: 1px; }
.hall-page .hall-chip:disabled { opacity: .5; cursor: default; }

/* 交付要求勾选：深字 + accent 图标 */
.hall-page .hall-check { color: var(--g-text); }
.hall-page .hall-check i { color: var(--g-accent); margin-right: 2px; }

/* 表单按钮：主键金（发布）/ 次级白卡（取消、存草稿） */
.hall-page .hall-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; transition: transform .22s ease, filter .22s ease, border-color .22s ease, box-shadow .22s ease; }
.hall-page .hall-btn i { font-size: var(--g-font-size-sm); }
.hall-page .hall-btn--sec {
  background: var(--g-card);
  border-color: var(--g-card-border);
  color: var(--g-text-sub);
}
.hall-page .hall-btn--sec:not(:disabled):hover { border-color: var(--g-accent-light); color: var(--g-accent); background: var(--g-card-hover); }
.hall-page .hall-btn--sec:not(:disabled):active { transform: scale(.97); }
.hall-page .hall-btn--sec:focus-visible { outline: 2px solid var(--g-accent-light); outline-offset: 1px; }
.hall-page .hall-btn--sec:disabled { opacity: .5; cursor: default; }
.hall-page .hall-btn--pri {
  background: linear-gradient(135deg, #e8c87c, #c9a24e);  /* 金 CTA 就地登记 */
  color: #2a2413;
  border: 0;
  box-shadow: 0 6px 16px rgba(201, 162, 78, 0.3);
  letter-spacing: 0.04em;
}
.hall-page .hall-btn--pri:not(:disabled):hover { transform: translateY(-2px); filter: brightness(1.05); }
.hall-page .hall-btn--pri:not(:disabled):active { transform: scale(.97); }
.hall-page .hall-btn--pri:focus-visible { outline: 2px solid rgba(232, 200, 124, 0.8); outline-offset: 2px; }
/* busy 沿 opacity（金渐变保留） */
.hall-page .hall-btn:disabled { opacity: .6; cursor: default; }

/* 审核人下拉：浅玻璃 */
.hall-page .hall-reviewer-dropdown {
  background: rgba(255, 255, 255, 0.97);
  border-color: var(--g-card-border);
  box-shadow: var(--g-shadow-lg);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.hall-page .hall-reviewer-item { color: var(--g-text); border-bottom-color: var(--g-sep); }
.hall-page .hall-reviewer-item:hover { background: var(--g-card-hover); color: var(--g-accent); }

/* 草稿箱：行 hover accent tint + 图标色 */
.hall-page .hall-draft-ico { color: var(--g-accent); display: inline-flex; flex: none; font-size: var(--g-font-size-sm); }
.hall-page .hall-draft-row:hover { background: var(--g-accent-bg); border-radius: var(--g-radius-sm); }
.hall-page .hall-draft-name { color: var(--g-text); }
.hall-page .hall-draft-time { color: var(--g-text-dim); }
.hall-page .hall-drafts-title { color: var(--g-warn); letter-spacing: .04em; }
.hall-page .hall-drafts-title i { margin-right: 4px; }
.hall-page .hall-draft-del { color: var(--g-text-sub); border-radius: var(--g-radius-sm); padding: 4px 6px; }
.hall-page .hall-draft-del:hover { color: var(--g-red); background: var(--g-red-bg); }
.hall-page .hall-drafts-empty { color: var(--g-text-dim); }

/* 附件行图标位 */
.hall-page .hall-checks .u-flex-row-xs > i, .hall-page .u-flex-row-xs > i { color: var(--g-text-dim); font-size: var(--g-font-size-sm); flex: none; }

/* 发布页照片缩略图：可点开看大图 + 上传进度条 */
.hall-page .hall-att-photo { cursor: pointer; }
.hall-page .hall-att-photo:hover { opacity: .85; }
.hall-page .hall-upload-bar { height: 4px; background: var(--g-sep); border-radius: 2px; margin-top: 3px; overflow: hidden; }
.hall-page .hall-upload-fill { height: 100%; background: var(--g-accent); border-radius: 2px; transition: width .15s ease; }

/* 展开详情：回 base 浅卡（白卡 + accent 左竖带），此处不需覆写 */

/* 弱透明偏好降级（回浅后同值走浅卡） */
@media (prefers-reduced-transparency: reduce) {
  .hall-page .q-card, .hall-page .q-exp, .hall-page .hall-npc-bubble,
  .hall-page .hall-fselect-menu, .hall-page .hall-reviewer-dropdown {
    background: var(--g-card); backdrop-filter: none;
  }
}
/* 详情占位 / 任务编号行：原内联 cssText 归位为类（L-8：样式只走 css/，pages 不写 var(--g-*)） */
.hall-detail-ph { padding: 14px 10px; color: var(--g-text-muted); font-size: var(--g-font-size-sm); }
.hall-detail-ph i { margin-right: 6px; }
.q-no-line { display: inline-flex; align-items: center; gap: 3px; padding: 4px 10px 0; font-size: var(--g-font-size-micro); color: var(--g-text-muted); }
.q-no-line i { font-size: var(--g-font-size-xs); }

/* 刀G 余额条（publish.js 顶部）：与村口豆子/顶栏同一个数——花钱前见真数（L-8：token 只活在样式表） */
/* 2026-09-27：与工作台豆子键同款呈现（图标＋数字）；字号/圆角全走 token（法典/04 档位，禁写死 rem） */
.publish-balance-bar { display:flex; align-items:center; gap:4px; padding:6px 10px; background:var(--g-card); border:1px solid var(--g-sep); border-radius:var(--g-radius-sm); font-size:var(--g-font-size); margin-top:10px; }
.publish-balance-bar .pb-label { color:var(--g-text-sub); font-size:var(--g-font-size-xs); }
.publish-balance-bar .pb-bean { width:18px; height:18px; vertical-align:middle; }
.publish-balance-bar .pb-num { color:var(--g-accent); font-size:var(--g-font-size-lg); font-weight:700; }
.publish-balance-bar .pb-hint { color:var(--g-text-dim); font-size:var(--g-font-size-xs); margin-left:auto; }

/* ── 列表模式（2026-09-30 大厅第三视图）：一行一条紧凑清单，高信息密度挑活 ── */
.hall-lr { display:flex; align-items:baseline; gap:var(--g-gap); padding:8px var(--g-pad-sm);
  border-bottom:1px solid var(--g-sep); background:var(--g-card); cursor:pointer; }
.hall-lr:active { background:var(--g-card-hover); }
.hall-lr-sec { margin-top:var(--g-gap); }
.hall-lr-title { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:var(--g-font-size-sm); color:var(--g-text); }
.hall-lr-nt { flex:none; font-size:var(--g-font-size-xs); font-weight:700; color:var(--g-accent); }
.hall-lr-meta { flex:none; font-size:var(--g-font-size-xs); color:var(--g-text-dim); }
.hall-lr-due { flex:none; font-size:var(--g-font-size-xs); }
.hall-lr-due--warn { color:var(--g-warn); }
.hall-lr-due--red { color:var(--g-red); }
.hall-lr-due--dim { color:var(--g-text-dim); }
.hall-lr-poster { flex:none; max-width:5em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:var(--g-font-size-micro); color:var(--g-text-muted); }

/* ── 大厅管家（方案：仓根 大厅管家-NPC有用化-方案-v4.0.md）：气泡可点＋圆点＋短面板＋FAQ 抽屉 ── */
.hall-npc { cursor: pointer; user-select: none; }
.hall-npc:active .hall-npc-bubble { background: var(--g-card-hover); }
.hall-npc-av { position: relative; }
.hall-npc-dot {
  position: absolute; top: -1px; right: -1px; width: 9px; height: 9px;
  border-radius: 50%; background: var(--g-accent); border: 1px solid var(--g-card);
}
.hall-npc-caret { float: right; margin-left: var(--g-gap); color: var(--g-text-dim); font-size: var(--g-font-size-xs); }
.hall-npc.is-open .hall-npc-bubble { border-color: var(--g-accent-light); }

/* 面板：与气泡同语言（近白卡＋细边＋圆角）——看上去就是气泡「长大」出来的 */
.hall-guide {
  margin: calc(-1 * var(--g-gap)) 0 var(--g-gap);
  padding: var(--g-pad-sm) var(--g-pad);
  background: var(--g-card); border: 1px solid var(--g-card-border); border-radius: var(--g-radius);
  box-shadow: var(--g-shadow-sm);
}
.hall-guide-h {
  font-size: var(--g-font-size-xs); font-weight: 700; color: var(--g-text-sub);
  letter-spacing: .02em; margin: var(--g-gap) 0 var(--g-pad-xs);
}
.hall-guide-h:first-child { margin-top: 0; }
.hall-guide-intent { display: flex; align-items: center; gap: var(--g-gap); padding: var(--g-pad-xs) 0; }
.hall-guide-ico { color: var(--g-accent); flex-shrink: 0; width: 16px; text-align: center; font-size: var(--g-font-size-sm); }
.hall-guide-intent-text { flex: 1; font-size: var(--g-font-size-sm); color: var(--g-text); }
.hall-guide-btn {
  flex-shrink: 0; padding: 4px var(--g-pad-sm); border: 1px solid var(--g-accent-light);
  border-radius: var(--g-radius-sm); background: var(--g-card); color: var(--g-accent);
  font-family: var(--g-font-family); font-size: var(--g-font-size-xs); font-weight: 600; cursor: pointer;
}
.hall-guide-btn:active { transform: scale(.96); background: var(--g-accent-bg); }
.hall-guide-dim { font-size: var(--g-font-size-xs); color: var(--g-text-dim); padding: var(--g-pad-xs) 0; }

/* FAQ 行：细线分隔（手感参照 hall-reviewer-item） */
.hall-guide-faq { padding: var(--g-pad-xs) 0; border-top: 1px solid var(--g-sep); }
.hall-guide-faq-q { display: flex; align-items: center; gap: var(--g-gap); }
.hall-guide-faq-qt { flex: 1; font-size: var(--g-font-size-sm); font-weight: 600; color: var(--g-text); }
.hall-guide-faq-go { color: var(--g-text-dim); flex-shrink: 0; }
.hall-guide-faq-a { font-size: var(--g-font-size-xs); color: var(--g-text-sub); margin-top: 2px; line-height: 1.5; }
.hall-guide-faq.is-openable { cursor: pointer; }
.hall-guide-faq.is-openable:active .hall-guide-faq-qt { color: var(--g-accent); }
.hall-guide-more {
  display: block; width: 100%; text-align: left; padding: var(--g-pad-xs) 0; margin-top: var(--g-pad-xs);
  border: none; border-top: 1px solid var(--g-sep); background: transparent;
  font-family: var(--g-font-family); font-size: var(--g-font-size-xs); font-weight: 600; color: var(--g-text-sub); cursor: pointer;
}
.hall-guide-minibtn {
  margin-top: var(--g-pad-xs); padding: 3px var(--g-pad-sm); border: 1px solid var(--g-card-border);
  border-radius: var(--g-radius-sm); background: var(--g-card); color: var(--g-accent);
  font-family: var(--g-font-family); font-size: var(--g-font-size-xs); cursor: pointer;
}

/* FAQ 抽屉正文（挂 #overlay-root，不在 hall-page 作用域内，样式自带完整定义） */
.hall-guide-ans { display: flex; flex-direction: column; gap: var(--g-gap-lg); }
.hall-guide-ans-lead { font-size: var(--g-font-size-sm); font-weight: 600; color: var(--g-text); line-height: 1.6; }
.hall-guide-ans-steps { display: flex; flex-direction: column; gap: var(--g-gap); }
.hall-guide-ans-step { display: flex; gap: var(--g-gap); align-items: flex-start; }
.hall-guide-ans-no {
  flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%;
  background: var(--g-accent-bg); color: var(--g-accent);
  font-size: var(--g-font-size-xs); font-weight: 700; text-align: center; line-height: 18px;
}
.hall-guide-ans-st { flex: 1; font-size: var(--g-font-size-sm); color: var(--g-text); line-height: 1.6; }
.hall-guide-ans-note {
  font-size: var(--g-font-size-xs); color: var(--g-text-sub); line-height: 1.6;
  background: var(--g-card-hover); border-radius: var(--g-radius-sm); padding: var(--g-pad-xs) var(--g-pad-sm);
}
.hall-guide-ans-tag { font-weight: 700; color: var(--g-accent-dark); }
.hall-guide-ans-btn {
  padding: 10px; border: none; border-radius: var(--g-radius-sm);
  background: var(--g-accent); color: #fff;
  font-family: var(--g-font-family); font-size: var(--g-font-size-sm); font-weight: 700; cursor: pointer;
}
.hall-guide-ans-btn:active { transform: scale(.97); }

@media (prefers-reduced-motion: reduce) {
  .hall-guide-btn, .hall-guide-minibtn, .hall-guide-ans-btn { transition: none; }
}
