@layer views {

.project-filters {
  display: inline-flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}
/* 批量管理入口 chip 靠右分组：与筛选 chip 明确分隔（margin-left:auto 把它推到筛选组末端） */
.project-filters #batchModeBtn { margin-left: auto; }
#batchBar:empty { display: none; }
.batch-bar {
  position: sticky;
  bottom: 12px;
  margin-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--primary) 22%, transparent);
  background: color-mix(in srgb, var(--primary) 6%, var(--surface, #fff));
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}
.batch-bar-count { font-size: 13px; color: color-mix(in srgb, var(--primary) 80%, #000); }
.batch-bar-actions { display: flex; gap: 8px; }
.batch-bar-actions .button[disabled] { opacity: 0.5; cursor: not-allowed; }

/* ============================================================
   2026-07-09 · 统一样式落地（T5）
   三页查找/筛选/卡片组件补样式 —— 全部复用 tokens、无 !important、
   靠「类作用域」而非提高特异性来压默认（.chip/.pill 语言与既有一致）。
   ------------------------------------------------------------
   为什么放文件尾:项目铁律「新组件类写在文件尾部带日期注释块」,
   源头值的调整已就地改在上方对应旧规则里(见 project-search-toolbar/
   card-meta/#batchModeBtn 三处),此处只承载全新类。
   ============================================================ */

/* ---- 项目主页:筛选 chips 行(#projectFilters,来自 T2) ---- */
.project-filters { align-items: center; }
/* 药丸小 chip:纸感描边 + 透明底 + 次要字;比既有 .project-filters button 更克制 */
.project-filters .chip {
  min-height: var(--control-md);
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  transition: background var(--motion-fast) var(--ease-out), color var(--motion-fast) var(--ease-out), border-color var(--motion-fast) var(--ease-out), transform var(--motion-fast) var(--ease-out);
}
.project-filters .chip:hover {
  background: color-mix(in oklch, var(--primary-soft) 55%, transparent);
  color: var(--primary-text);
  border-color: color-mix(in oklch, var(--primary) 22%, var(--line));
}
.project-filters .chip.active {
  background: var(--primary-soft);
  color: var(--primary-text);
  border-color: color-mix(in oklch, var(--primary) 40%, var(--line));
}
.project-filters .chip:active { transform: scale(0.96); }
/* 批量模式开关:虚线描边把它和「筛选项」区分开(它是模式而非过滤);靠右由 #batchModeBtn margin-left:auto 负责 */
.project-filters .batch-mode-chip { border-style: dashed; }
.project-filters .batch-mode-chip.active {
  background: var(--primary-soft);
  color: var(--primary-text);
  border-style: solid;
  border-color: color-mix(in oklch, var(--primary) 45%, var(--line));
}

/* ---- 项目卡:元信息行(N 镜 · 模型 logo · 时间,来自 T2) ---- */
.card-meta .pm-line {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  overflow: hidden;
}
.pm-shots,
.pm-time {
  color: var(--muted);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
/* 卡内模型 logo 约束到 15px 高,不撑行高;object-fit 防变形 */
.pm-line .model-logo {
  height: 15px;
  width: auto;
  max-width: 46px;
  border-radius: 3px;
  object-fit: contain;
  vertical-align: middle;
  flex: 0 0 auto;
}

/* —— 项目主页 · 最近打开横条（交互方案第 5 项）——
   工具条下方、卡片墙上方；无记录/搜索中/筛选非 all/批量管理时由 renderProjects 加 .hidden 整条隐藏（全局 .hidden 特异性够）。 */
.recent-opens {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: var(--space-2) 0 var(--space-3);
  min-width: 0;
}
.recent-open-label {
  flex: none;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.recent-open-track {
  display: flex;
  gap: var(--space-2);
  overflow-x: auto;
  padding-bottom: 2px;
  min-width: 0;
  scrollbar-width: thin;
}
.recent-open-card {
  flex: 0 0 auto;
  max-width: 200px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
  cursor: pointer;
  transition: border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);
}
.recent-open-card:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--line)); background: var(--surface-2); }
.recent-open-card .ro-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  max-width: 176px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.recent-open-card .ro-meta { display: flex; align-items: center; gap: 6px; }
.ro-kind {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--primary) 12%, transparent);
  color: var(--primary);
}
.ro-kind.batch { background: color-mix(in srgb, var(--accent) 14%, transparent); color: var(--accent); }
.ro-time { font-size: 11px; color: var(--muted); }

/* 平铺/列表双态按钮：与排序下拉同排、复用工具条节奏 */
.proj-view-toggle {
  flex: none;
  min-height: var(--control-md);
  padding: 5px 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--ink);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: border-color var(--motion-fast) var(--ease-out), background var(--motion-fast) var(--ease-out);
}
.proj-view-toggle:hover { border-color: color-mix(in srgb, var(--primary) 45%, var(--line)); background: var(--surface-2); }
/* 批次状态小角标（列表行专用：inline，不复用卡片角标的 absolute 定位） */
.pr-batch-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--primary-soft);
  color: var(--primary-text);
  white-space: nowrap;
}

.project-filters {
  justify-content: flex-start;
}

.project-filters #batchModeBtn {
  margin-left: 0;
}
}
