/* ============================================================
 * 苹果调性 · 黑白简约 UI
 * 作用域：首页（顶栏 / 页签 / 项目库）、任务管理面板、小瑜助手侧栏、
 *         系统弹窗（设置 / 新建方案页 / 编辑信息 / 登录 / 任务编辑）、
 *         方案编辑器（顶栏毛玻璃 / 弹窗遮罩）、Toast
 * 创建：2026-10-03
 * ============================================================ */

/* ------------------------------------------------------------
 * 1. 设计变量（首页作用域内覆盖全局变量，编辑器不受影响）
 * ------------------------------------------------------------ */
#homePage {
  --bg-primary: #f5f5f7;
  --bg-secondary: #ffffff;
  --bg-tertiary: #e8e8ed;
  --bg-card: #ffffff;
  --bg-card-hover: #f5f5f7;
  --text-primary: #1d1d1f;
  --text-secondary: #6e6e73;
  --text-muted: #aeaeb2;
  --accent: #1d1d1f;
  --accent-hover: #000000;
  --accent-glow: rgba(0, 0, 0, 0.08);
  --border: rgba(0, 0, 0, 0.08);
  --border-hover: rgba(0, 0, 0, 0.18);
  --success: #248a3d;
  --error: #d70015;
  --warning: #b25000;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  --transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  --font-display: 'YS Title Hei', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-mono: 'WQY Mono', -apple-system, BlinkMacSystemFont, 'PingFang SC', monospace;
  font-family: 'YS Body', -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* ------------------------------------------------------------
 * 2. 首页骨架：内容区改为分栏滚动，任务面板自适应剩余高度
 * ------------------------------------------------------------ */
#homePage .home-content {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 28px 32px 32px;
}

#homePage .home-tab-panel.active {
  flex: 1;
  min-height: 0;
}

#homePage .home-tab-panel#homeTabProjects.active {
  overflow-y: auto;
}

#homePage .home-tab-panel#homeTabTasks.active {
  height: auto;
}

/* ------------------------------------------------------------
 * 3. 原首页顶栏按钮区（2026-10-03 顶栏已删除，登录/设置/用户信息
 *    迁入左侧导航底部，以下作用域样式保留给迁移后的元素）
 * ------------------------------------------------------------ */
#homePage .btn-home-action {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: #1d1d1f;
  border-radius: 999px;
  padding: 7px 16px;
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

#homePage .btn-home-action:hover {
  background: #f5f5f7;
  border-color: rgba(0, 0, 0, 0.2);
  color: #1d1d1f;
}

/* 登录按钮：苹果式黑底白字主按钮 */
#homePage .btn-login-entry {
  background: #1d1d1f !important;
  color: #ffffff !important;
  border-color: #1d1d1f !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

#homePage .btn-login-entry:hover {
  background: #000000 !important;
  border-color: #000000 !important;
  opacity: 1 !important;
}

/* 用户信息栏 */
#homePage .user-info-bar {
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 999px;
}

#homePage .user-avatar {
  background: #1d1d1f;
  color: #ffffff;
}

#homePage .user-name { color: #1d1d1f; }

#homePage .btn-user-logout { color: #6e6e73; }

#homePage .btn-user-logout:hover {
  color: #d70015;
  background: rgba(215, 0, 21, 0.06);
}

/* 额度徽章：中性灰胶囊 */
#quotaBadge {
  background: rgba(0, 0, 0, 0.04) !important;
  border: 1px solid rgba(0, 0, 0, 0.08) !important;
  color: #6e6e73 !important;
  border-radius: 999px !important;
}

/* 本地目录状态徽章：语义绿（浅色版） */
#fsStatusBadge {
  background: rgba(52, 199, 89, 0.1) !important;
  border: 1px solid rgba(52, 199, 89, 0.22) !important;
  color: #248a3d !important;
  border-radius: 999px !important;
}

#fsStatusBadge button { color: #248a3d !important; }

/* ------------------------------------------------------------
 * 4. 页签：苹果分段控制器
 * ------------------------------------------------------------ */
#homePage .home-tabs {
  display: inline-flex;
  align-self: flex-start;
  gap: 2px;
  padding: 3px;
  background: #e8e8ed;
  border-radius: 12px;
  border-bottom: none;
  margin-bottom: 20px;
}

#homePage .home-tab-btn {
  border-bottom: none;
  margin-bottom: 0;
  padding: 7px 24px;
  font-size: 13px;
  font-weight: 500;
  color: #6e6e73;
  border-radius: 9px;
}

#homePage .home-tab-btn:hover {
  color: #1d1d1f;
  background: rgba(0, 0, 0, 0.04);
}

#homePage .home-tab-btn.active {
  background: #ffffff;
  color: #1d1d1f;
  border-bottom-color: transparent;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* ------------------------------------------------------------
 * 5. 项目库：卡片 / 文件夹 / 添加位 / 面包屑 / 下拉菜单
 * ------------------------------------------------------------ */
#homePage .projects-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

#homePage .project-card {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

#homePage .project-card:hover {
  border-color: rgba(0, 0, 0, 0.14);
  background: #ffffff;
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

#homePage .project-card-gradient { height: 96px; }

/* 文件夹卡：石墨灰渐变（黑白简约） */
#homePage .folder-card .folder-gradient {
  background: linear-gradient(135deg, #48484a, #1d1d1f);
}

#homePage .folder-card:hover .folder-gradient {
  background: linear-gradient(135deg, #5c5c5e, #2c2c2e);
}

/* 添加卡片 */
#homePage .project-card-add {
  border: 1.5px dashed rgba(0, 0, 0, 0.18);
  border-radius: 16px;
  min-height: 200px;
  gap: 12px;
}

#homePage .project-card-add:hover {
  border-color: #1d1d1f;
  background: rgba(0, 0, 0, 0.03);
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
}

#homePage .project-card-add .add-icon {
  background: #f5f5f7;
  border: 2px solid rgba(0, 0, 0, 0.1);
  color: #1d1d1f;
}

#homePage .project-card-add:hover .add-icon {
  background: #1d1d1f;
  border-color: #1d1d1f;
  color: #ffffff;
}

#homePage .project-card-add .add-text {
  color: #6e6e73;
  font-weight: 500;
}

#homePage .project-card-add:hover .add-text { color: #1d1d1f; }

/* 三点菜单 */
#homePage .project-card-menu-btn {
  color: #aeaeb2;
  border-radius: 8px;
}

#homePage .project-card-menu-btn:hover {
  background: #f5f5f7;
  color: #1d1d1f;
}

/* 下拉菜单：毛玻璃白 */
#homePage .project-card-dropdown {
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.14);
}

#homePage .dropdown-item { color: #3a3a3c; }

#homePage .dropdown-item:hover {
  background: #f5f5f7;
  color: #1d1d1f;
}

#homePage .dropdown-divider { background: rgba(0, 0, 0, 0.06); }

/* 面包屑 */
#homePage .folder-breadcrumb { color: #6e6e73; }

#homePage .breadcrumb-back { color: #1d1d1f; }

#homePage .breadcrumb-back:hover { background: #f5f5f7; }

#homePage .breadcrumb-sep { color: #aeaeb2; }

#homePage .breadcrumb-current { color: #1d1d1f; }

#homePage .breadcrumb-count { color: #aeaeb2; }

/* ------------------------------------------------------------
 * 6. 任务管理面板：--gs-* 变量浅色化 + 暗色痕迹修正
 * ------------------------------------------------------------ */
.task-mgmt-container {
  --gs-primary: #1d1d1f;
  --gs-primary-light: #48484a;
  --gs-primary-active: #000000;
  --gs-primary-glow: rgba(0, 0, 0, 0.12);
  --gs-gradient: linear-gradient(135deg, #1d1d1f 0%, #48484a 100%);
  --gs-primary-a4: rgba(0, 0, 0, 0.04);
  --gs-primary-a6: rgba(0, 0, 0, 0.05);
  --gs-primary-a8: rgba(0, 0, 0, 0.06);
  --gs-primary-a10: rgba(0, 0, 0, 0.07);
  --gs-primary-a12: rgba(0, 0, 0, 0.08);
  --gs-primary-a15: rgba(0, 0, 0, 0.1);
  --gs-primary-a20: rgba(0, 0, 0, 0.12);
  --gs-primary-a25: rgba(0, 0, 0, 0.16);
  --gs-primary-a30: rgba(0, 0, 0, 0.2);
  --gs-surface: #ffffff;
  --gs-surface-elevated: #f5f5f7;
  --gs-canvas: #f5f5f7;
  --gs-glass-bg: #ffffff;
  --gs-glass-border: rgba(0, 0, 0, 0.08);
  --gs-glass-border-hover: rgba(0, 0, 0, 0.18);
  --gs-hairline: rgba(0, 0, 0, 0.08);
  --gs-hairline-strong: rgba(0, 0, 0, 0.14);
  --gs-ink: #1d1d1f;
  --gs-body: #6e6e73;
  --gs-body-strong: #1d1d1f;
  --gs-muted: #aeaeb2;
  --gs-muted-soft: rgba(110, 110, 115, 0.6);
  --gs-text-quaternary: rgba(110, 110, 115, 0.6);
  --gs-text-accent: #1d1d1f;
  --gs-text-on-primary: #ffffff;
  --gs-accent-emerald: #059669;
  --gs-accent-amber: #b45309;
  --gs-accent-rose: #e11d48;
  --gs-accent-blue: #2563eb;
  --gs-accent-indigo: #4f46e5;
  --gs-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  --gs-card-shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.08);
  --gs-glow-border: 0 0 0 2px rgba(0, 0, 0, 0.12);
  --gs-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --gs-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.1);
  --gs-error: #d70015;
  --gs-warning: #b25000;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

/* 面板内硬编码暗色痕迹修正 */
.task-mgmt-container .task-children { background: rgba(0, 0, 0, 0.03); }

.task-mgmt-container .task-child-row button,
.task-mgmt-container .task-history-actions button {
  background: rgba(0, 0, 0, 0.04);
  border-color: rgba(0, 0, 0, 0.1);
  color: #6e6e73;
}

.task-mgmt-container .task-copy-btn {
  background: rgba(0, 0, 0, 0.05);
  color: #6e6e73;
}

.task-mgmt-container .ts-action-btn:hover { background: rgba(0, 0, 0, 0.06); }

/* 通用 pill 按钮（展开 / 路线图 / 日历导航） */
.task-mgmt-container .task-expand-all-btn,
.task-mgmt-container .roadmap-mini-btn,
.task-mgmt-container .calendar-nav .nav-btn,
.task-mgmt-container .calendar-nav .today-btn {
  background: rgba(0, 0, 0, 0.045);
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: #3a3a3c;
}

.task-mgmt-container .task-expand-all-btn:hover,
.task-mgmt-container .roadmap-mini-btn:hover,
.task-mgmt-container .calendar-nav .nav-btn:hover,
.task-mgmt-container .calendar-nav .today-btn:hover {
  background: rgba(0, 0, 0, 0.08);
  border-color: rgba(0, 0, 0, 0.2);
  color: #1d1d1f;
  box-shadow: none;
}

/* 主按钮（添加任务）：苹果式黑底白字，位于面板右上角 */
.task-mgmt-container .task-header-btn.primary {
  margin-left: 6px;
  padding: 0 14px;
  border-color: #1d1d1f;
  background: #1d1d1f;
  color: #ffffff;
  font-weight: 600;
}

.task-mgmt-container .task-header-btn.primary:hover {
  background: #000000;
  border-color: #000000;
  color: #ffffff;
  transform: none;
}

/* 危险按钮（清空） */
.task-mgmt-container .task-header-btn.danger {
  border: 1px solid rgba(0, 0, 0, 0.12);
  color: #d70015;
}

.task-mgmt-container .task-header-btn.danger:hover {
  background: rgba(215, 0, 21, 0.07);
  border-color: rgba(215, 0, 21, 0.3);
  color: #d70015;
}

.task-mgmt-container .day-future .task-count-text { color: #8e8e93 !important; }

.task-mgmt-container .day-past .day-number { color: #8e8e93; }

.task-mgmt-container .day-past .task-count-text { color: #aeaeb2 !important; }

.task-mgmt-container .day-past:hover:not(.day-selected):not(.day-event-range) {
  background: rgba(0, 0, 0, 0.05) !important;
}

/* 选中日：黑底白字（最高优先级，覆盖原蓝色渐变） */
.task-mgmt-container .calendar-day.day-selected {
  background: linear-gradient(135deg, #1d1d1f, #48484a) !important;
  border-color: #1d1d1f !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.22);
}

/* 拖拽悬停日 */
.task-mgmt-container .calendar-day.day-drop-hover {
  background: #1d1d1f !important;
  border-color: #48484a !important;
}

/* 日期筛选条 */
.task-mgmt-container .filter-date-label { color: #3a3a3c; }

.task-mgmt-container .filter-date-label strong { color: #1d1d1f; }

/* ------------------------------------------------------------
 * 7. 小瑜助手面板（2026-10-03 起内嵌于任务区域右栏，此处仅覆盖内部变量与配色；
 *    定位/显隐/拖拽见第 13.2 节）
 * ------------------------------------------------------------ */
.fish-sidebar {
  --bg-secondary: #ffffff;
  --bg-primary: #f5f5f7;
  --bg-card: #f5f5f7;
  --bg-card-hover: #ececef;
  --text-primary: #1d1d1f;
  --text-secondary: #6e6e73;
  --accent: #1d1d1f;
  --accent-hover: #000000;
  --border: rgba(0, 0, 0, 0.08);
  background: #ffffff;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: -12px 0 40px rgba(0, 0, 0, 0.12);
}

.fish-quick-row button {
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.1);
  color: #3a3a3c;
}

/* 侧栏标题用显示字体 */
#homeTabTasks .fish-sidebar-header h3 { font-family: var(--font-display); letter-spacing: 0.5px; }

/* 头部右侧操作区：报表入口 + 收起按钮（2026-10-03 第六轮新增报表入口） */
#homeTabTasks .fish-header-actions { display: flex; align-items: center; gap: 8px; }

#homeTabTasks .fish-report-btn {
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #f5f5f7;
  color: #3a3a3c;
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

#homeTabTasks .fish-report-btn:hover {
  background: #1d1d1f;
  border-color: #1d1d1f;
  color: #ffffff;
}

/* 语音开关按钮（2026-10-05 第四十五轮）：🔊 语音回复 / ⚡ 自动发送 */
#homeTabTasks .fish-toggle-btn {
  width: 28px;
  height: 28px;
  min-width: 28px;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #f5f5f7;
  border-radius: 8px;
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
  opacity: 0.5;
}
#homeTabTasks .fish-toggle-btn:hover { background: #ececef; opacity: 0.8; }
#homeTabTasks .fish-toggle-btn.on {
  background: #1d1d1f;
  border-color: #1d1d1f;
  opacity: 1;
}

/* TTS 设置面板（2026-10-06 第五十四轮：Web Speech 单引擎，零模型下载） */
#homeTabTasks .fish-tts-settings {
  padding: 12px 14px;
  background: #fafafa;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
#homeTabTasks .fish-tts-setting-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #6e6e73;
}
#homeTabTasks .fish-tts-setting-row label {
  min-width: 72px;
  flex-shrink: 0;
  color: #1d1d1f;
  font-weight: 500;
}
#homeTabTasks .fish-tts-setting-row select {
  flex: 1;
  min-width: 0;
  padding: 5px 8px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 6px;
  background: #fff;
  color: #1d1d1f;
  font-size: 12px;
  outline: none;
  cursor: pointer;
}
#homeTabTasks .fish-tts-setting-row select:focus {
  border-color: #007aff;
}
#homeTabTasks .fish-tts-setting-row input[type="range"] {
  flex: 1;
  min-width: 0;
  accent-color: #007aff;
}
#homeTabTasks .fish-tts-test-btn {
  padding: 4px 12px;
  border: 1px solid #007aff;
  background: #007aff;
  color: #fff;
  border-radius: 6px;
  font-size: 12px;
  cursor: pointer;
  white-space: nowrap;
}
#homeTabTasks .fish-tts-test-btn:hover { background: #0066d6; }

.fish-quick-row button:hover {
  color: #1d1d1f;
  border-color: rgba(0, 0, 0, 0.25);
  background: #ececef;
}

.fish-chat { background: #f5f5f7; }

.fish-msg.user {
  background: #e8e8ed;
  color: #1d1d1f;
}

.fish-msg.assistant {
  background: #f5f5f7;
  color: #1d1d1f;
}

/* ------------------------------------------------------------
 * 8. 系统弹窗（设置 / 新建方案页 / 编辑信息 / 连接引导 / 任务编辑）
 * ------------------------------------------------------------ */
#settingsModal,
#createProjectModal,
#editProjectInfoModal,
#fsConnectGuideModal,
#taskEditModal {
  --bg-primary: #f5f5f7;
  --bg-secondary: #ffffff;
  --bg-tertiary: #e8e8ed;
  --bg-card: #f5f5f7;
  --bg-card-hover: #ececef;
  --text-primary: #1d1d1f;
  --text-secondary: #6e6e73;
  --text-muted: #aeaeb2;
  --accent: #1d1d1f;
  --accent-hover: #000000;
  --accent-glow: rgba(0, 0, 0, 0.08);
  --border: rgba(0, 0, 0, 0.08);
  --border-hover: rgba(0, 0, 0, 0.18);
  --success: #248a3d;
  --error: #d70015;
  --warning: #b25000;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

#settingsModal .modal,
#createProjectModal .modal,
#editProjectInfoModal .modal,
#fsConnectGuideModal .modal,
#taskEditModal .task-edit-modal-content {
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 18px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.18);
}

#settingsModal .modal h2,
#createProjectModal .modal h2,
#editProjectInfoModal .modal h2,
#fsConnectGuideModal .modal h2 { color: #1d1d1f; }

/* 表单聚焦：黑色描边 */
#settingsModal .form-group input:focus,
#settingsModal .form-group select:focus,
#createProjectModal .form-group input:focus,
#editProjectInfoModal .form-group input:focus,
#editProjectInfoModal .form-group textarea:focus,
#taskEditModal .task-edit-form-group input:focus,
#taskEditModal .task-edit-form-group select:focus,
#taskEditModal .task-edit-form-group textarea:focus {
  border-color: #1d1d1f;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}

/* 模板选择卡：选中态黑描边 */
#createProjectModal .tpl-card.selected {
  border-color: #1d1d1f;
  box-shadow: 0 0 0 1px #1d1d1f;
}

/* ------------------------------------------------------------
 * 9. 登录弹窗：纯白 + 黑色主按钮
 * ------------------------------------------------------------ */
.login-overlay {
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.login-modal {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.18);
}

.login-logo { color: #1d1d1f; }

.login-close-btn { color: #aeaeb2; }

.login-close-btn:hover { color: #1d1d1f; }

.login-tabs {
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
}

.login-tab { color: #6e6e73; }

.login-tab.active {
  background: #ffffff;
  color: #1d1d1f;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}

.login-tab:hover:not(.active) { color: #1d1d1f; }

.login-field label { color: #6e6e73; }

.login-field input {
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  color: #1d1d1f;
}

.login-field input:focus {
  border-color: #1d1d1f;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}

.login-field input::placeholder { color: #aeaeb2; }

.login-send-code-btn {
  background: #1d1d1f;
  color: #ffffff;
  border-radius: 10px;
}

.login-submit-btn {
  background: #1d1d1f;
  color: #ffffff;
  border-radius: 10px;
}

.login-submit-btn:hover:not(:disabled) { background: #000000; opacity: 1; }

/* ------------------------------------------------------------
 * 10. Toast：白底毛玻璃 + 语义色圆点
 * ------------------------------------------------------------ */

/* 方案页加载遮罩：spinner 黑白化 */
.project-loading-overlay .spinner-lg {
  border: 3px solid #e8e8ed;
  border-top-color: #1d1d1f;
}

.toast {
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  color: #1d1d1f;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.16);
  font-weight: 500;
}

.toast::before {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #6e6e73;
}

.toast.success { color: #1d1d1f; }
.toast.success::before { background: #248a3d; }
.toast.error { color: #1d1d1f; }
.toast.error::before { background: #d70015; }
.toast.warning { color: #1d1d1f; }
.toast.warning::before { background: #b25000; }

/* ------------------------------------------------------------
 * 11. 方案编辑器：浅色化细节打磨（2026-10-03 黑白改造）
 * 编辑器骨架已通过 :root 变量自动浅色化，此处仅补两处细节：
 * 顶栏毛玻璃（与首页顶栏一致）+ 弹窗遮罩改浅（与系统弹窗一致）。
 * 紫色选中态已在 style.css 内逐条改为黑色，无需在此兜底。
 * ------------------------------------------------------------ */
.app-header,
.step2-header {
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-family: 'YS Body', -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* 编辑器弹窗遮罩：由 rgba(0,0,0,0.6)+blur(4px) 统一为系统弹窗同款浅遮罩 */
.modal-overlay {
  background: rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* ------------------------------------------------------------
 * 12. 左侧导航栏与任务面板重构（2026-10-03）
 * App Shell：左侧固定导航（项目库 / 任务管理，可折叠）
 * 任务面板：左栏日历 / 时间线双页签 + 右栏简化任务列表（Apple 提醒事项风）
 * ------------------------------------------------------------ */

/* ===== 12.1 应用外壳：左导航 + 右主体 ===== */
#homePage { flex-direction: row; }

#homePage .home-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

/* 导航栏本体：白底 + 右侧发丝线，宽度过渡 */
#homePage .home-rail {
  width: 210px;
  flex-shrink: 0;
  background: #ffffff;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  display: flex;
  flex-direction: column;
  padding: 16px 12px;
  transition: width 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

#homePage .home-rail.collapsed { width: 56px; padding: 16px 8px; }

/* 品牌区：logo + 产品名 */
#homePage .home-rail-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 6px 14px;
  margin-bottom: 12px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  min-width: 0;
}

#homePage .home-rail-logo { color: #1d1d1f; display: flex; flex-shrink: 0; }
#homePage .home-rail-logo svg { width: 26px; height: 26px; display: block; }

#homePage .home-rail-brand-name {
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 700;
  color: #1d1d1f;
  letter-spacing: 0.5px;
  white-space: nowrap;
  overflow: hidden;
}

/* 导航项：40px 高、圆角 10px */
#homePage .home-rail-nav { display: flex; flex-direction: column; gap: 4px; }

#homePage .rail-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border: none;
  border-radius: 10px;
  background: none;
  color: #6e6e73;
  font-size: 14px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  min-width: 0;
  transition: background 0.15s ease, color 0.15s ease;
}

#homePage .rail-item svg { width: 20px; height: 20px; flex-shrink: 0; }
#homePage .rail-item:hover { background: #f5f5f7; color: #1d1d1f; }

#homePage .rail-item.active {
  background: rgba(0, 0, 0, 0.08);
  color: #1d1d1f;
  font-weight: 600;
}

#homePage .rail-item .rail-item-label { white-space: nowrap; overflow: hidden; }

/* 底部折叠按钮：箭头随状态旋转 */
#homePage .home-rail-footer {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}

#homePage .rail-collapse-btn { color: #aeaeb2; }
#homePage .rail-collapse-icon { transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1); }
#homePage .home-rail.collapsed .rail-collapse-icon { transform: rotate(180deg); }

/* 收起态：只显图标且 item 居中，文字隐藏 */
#homePage .home-rail.collapsed .home-rail-brand-name,
#homePage .home-rail.collapsed .rail-item-label { display: none; }

#homePage .home-rail.collapsed .home-rail-brand { justify-content: center; padding: 4px 0 14px; }
#homePage .home-rail.collapsed .rail-item { justify-content: center; padding: 0; }

/* ===== 12.2 任务面板：左栏日历 / 时间线双页签 ===== */
#homePage .task-left-pane {
  width: 320px;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  min-height: 0;
}

/* 分段控件风格子页签（日历 / 时间线） */
#homePage .task-left-sub-tabs {
  display: flex;
  gap: 2px;
  padding: 8px 10px;
  flex-shrink: 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

#homePage .task-left-sub-tab {
  flex: 1;
  border: none;
  border-radius: 8px;
  padding: 6px 0;
  background: none;
  color: #6e6e73;
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

#homePage .task-left-sub-tab:hover { background: #f5f5f7; color: #1d1d1f; }

#homePage .task-left-sub-tab.active {
  background: rgba(0, 0, 0, 0.08);
  color: #1d1d1f;
  font-weight: 600;
}

#homePage .task-left-sub-page { display: none; flex: 1; min-height: 0; flex-direction: column; }
#homePage .task-left-sub-page.active { display: flex; }

/* 日历视图：铺满左栏，右边线由左栏容器提供 */
#homePage .task-left-pane .calendar-wrapper {
  width: 100%;
  flex: 1;
  min-height: 0;
  border-right: none;
}

/* 时间线视图（版本路线图）：暗色痕迹浅色化 */
#homePage .task-roadmap-panel {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  margin: 10px 12px 12px;
}

#homePage .roadmap-folder-bind-bar { color: #6e6e73; padding: 12px 12px 0; }

#homePage .roadmap-folder-bind-bar select {
  background: #ffffff;
  color: #1d1d1f;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  padding: 6px 10px;
}

#homePage .roadmap-unit { background: #f5f5f7; border-color: rgba(0, 0, 0, 0.06); }
#homePage .roadmap-unit.selected { border-color: rgba(0, 0, 0, 0.25); box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1); }
#homePage .roadmap-head strong { color: #1d1d1f; }
#homePage .roadmap-head span { color: #6e6e73; }
#homePage .roadmap-empty { color: #aeaeb2; }
#homePage .roadmap-actions button { background: rgba(0, 0, 0, 0.06); color: #1d1d1f; }
#homePage .roadmap-actions button:hover { background: rgba(0, 0, 0, 0.12); }
/* 版本编辑 / 添加节点：图标小按钮（2026-10-03 第九轮：去文字仅图标，title 提供悬浮提示） */
#homePage .roadmap-actions .roadmap-icon-btn {
  width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  line-height: 1;
  border-radius: 8px;
}
/* 图标按钮内的 SVG（2026-10-05 第四十二轮：✏️/＋ emoji 换线性 SVG，需去基线间隙） */
#homePage .roadmap-actions .roadmap-icon-btn svg { display: block; flex-shrink: 0; }
#homePage .node-dot { background: #e8e8ed; color: #6e6e73; }
#homePage .node-card { background: #ffffff; border-color: rgba(0, 0, 0, 0.08); }
#homePage .node-title { color: #1d1d1f; }
#homePage .node-title em { color: #b25000; }
#homePage .node-meta { color: #6e6e73; }
#homePage .node-desc { color: #aeaeb2; }
#homePage .node-connector { background: rgba(0, 0, 0, 0.12); }
/* 路线图单元：头部点击选中 + 折叠箭头按钮（2026-10-04 第十轮） */
#homePage .roadmap-unit .roadmap-head { cursor: pointer; border-radius: 10px; }
#homePage .roadmap-unit .roadmap-head:hover { background: rgba(0, 0, 0, 0.03); }
#homePage .roadmap-collapse-btn { background: rgba(0, 0, 0, 0.06); color: #6e6e73; }
#homePage .roadmap-collapse-btn:hover { background: rgba(0, 0, 0, 0.12); color: #1d1d1f; }
#homePage .status-reached .node-dot { background: #248a3d; color: #ffffff; }
#homePage .status-missed .node-dot { background: #d70015; color: #ffffff; }
#homePage .status-in_progress .node-dot { background: #1d1d1f; color: #ffffff; }
#homePage .status-pending .node-dot { background: #e8e8ed; color: #6e6e73; }

/* ===== 12.3 任务列表简化：Apple 提醒事项风行卡 ===== */
#homePage .task-list-page { display: flex; flex-direction: column; flex: 1; min-height: 0; }

/* 筛选栏：紧凑一行，低视觉噪音 */
#homePage .task-filter-bar { padding: 10px 16px 6px; gap: 6px; flex-wrap: wrap; }

#homePage .task-filter-bar select {
  background: #ffffff;
  color: #6e6e73;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  padding: 5px 8px;
  font-size: 12px;
  font-family: inherit;
}

#homePage .task-filter-bar select:hover { border-color: rgba(0, 0, 0, 0.25); }

/* 统计栏：轻量化，数字用等宽字体保证跳动时不抖动 */
#homePage .ts-stats-inline { font-size: 12px; gap: 6px; }
#homePage .ts-stats-inline strong { font-size: 13px; color: #1d1d1f; font-family: var(--font-mono); font-weight: 600; }
#homePage .task-header-title { font-family: var(--font-display); font-size: 15px; letter-spacing: 0.5px; }

/* 任务卡片：白底圆角行卡（优先级保留左侧 3px 色条），替代原重卡片 */
#homePage .task-item {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-left-width: 3px;
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 12px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

#homePage .task-item:hover {
  border-color: rgba(0, 0, 0, 0.12);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

#homePage .task-item.selected { border-color: rgba(0, 0, 0, 0.12); box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.12); }
#homePage .task-item.completed { opacity: 0.62; }
#homePage .task-item.on-hold { opacity: 0.55; }
#homePage .task-item.abandoned { opacity: 0.4; }
#homePage .task-top-bar { align-items: center; gap: 10px; }
#homePage .task-item.dragging { border-color: rgba(0, 0, 0, 0.2); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12); }

/* 左侧圆形完成钮：点击完成 / 取消完成 */
#homePage .task-check-btn {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid #aeaeb2;
  background: #ffffff;
  color: #ffffff;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: border-color 0.15s ease, background 0.15s ease;
}

#homePage .task-check-btn:hover { border-color: #1d1d1f; }
#homePage .task-check-btn.done { background: #1d1d1f; border-color: #1d1d1f; }
#homePage .task-check-btn svg { width: 13px; height: 13px; display: block; }

/* 标题行：类型圆点 + 标题（最多两行，保证长标题内容可读）
 * 右侧安全区 150px：收缩态图标组最坏 5 个 26px 钮（删除+流转2+子任务+编辑）+ 间隙 + 右偏移 */
#homePage .task-main-info { flex: 1; gap: 3px; padding: 0 150px 0 0; min-width: 0; }
#homePage .task-main-info:hover { background: none; }

#homePage .task-title-line { display: flex; align-items: flex-start; gap: 7px; min-width: 0; }

#homePage .task-title-inline {
  font-size: 14px;
  font-weight: 500;
  color: #1d1d1f;
  letter-spacing: 0;
  margin-bottom: 0;
  /* 标题完整换行显示，不限制行数——长标题全部展示，行高自适应 */
  word-break: break-word;
  /* 覆盖 tasks.css 基础样式的 nowrap/ellipsis 截断三件套（第十八轮只删了 clamp，漏掉基础层这三个属性，导致标题仍被截断） */
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

#homePage .task-item.completed .task-title-inline { color: #8e8e93; }

#homePage .task-meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 12px;
  line-height: 1.5;
  color: #8e8e93;
}

#homePage .task-meta-row > span { display: inline-flex; align-items: center; white-space: nowrap; }
#homePage .task-meta-row > span + span::before { content: '·'; margin: 0 6px; color: #aeaeb2; }
#homePage .task-meta-project { color: #6e6e73; max-width: 148px; overflow: hidden; text-overflow: ellipsis; }

/* 异常/完成状态：小 pill（待定棕 / 废置灰 / 已完成绿） */
#homePage .task-meta-status {
  padding: 1px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  font-size: 11px;
  color: #6e6e73;
}

#homePage .task-meta-status.done { background: rgba(36, 138, 61, 0.1); color: #248a3d; }
#homePage .task-item.on-hold .task-meta-status { background: rgba(178, 80, 0, 0.1); color: #b25000; }

/* 折叠态描述：meta 行下两行 clamp，展开详情区仍有完整「原始需求」 */
#homePage .task-desc-inline {
  font-size: 12px;
  line-height: 1.5;
  color: #6e6e73;
  margin-top: 1px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
  cursor: default;
}

/* 类型小圆点（6px，语义色；位于标题行首，与首行文字对齐） */
#homePage .task-type-dot { width: 6px; height: 6px; border-radius: 50%; margin-right: 0; margin-top: 6px; flex-shrink: 0; }
#homePage .task-type-dot.type-feature { background: #248a3d; }
#homePage .task-type-dot.type-optimize { background: #b25000; }
#homePage .task-type-dot.type-bug { background: #d70015; }
#homePage .task-type-dot.type-art { background: #6e6e73; }
#homePage .task-type-dot.type-music { background: #6e6e73; }
#homePage .task-type-dot.type-doc { background: #6e6e73; }
#homePage .task-type-dot.type-story { background: #6e6e73; }
#homePage .task-type-dot.type-promo { background: #6e6e73; }
#homePage .task-type-dot.type-other { background: #aeaeb2; }

/* 日期：可点击改期（等宽字体防抖动）；逾期红 */
#homePage .task-date-editable { border: 1px solid transparent; padding: 1px 4px; font-family: var(--font-mono); font-size: 11px; }
#homePage .task-date-editable:hover { background: #f5f5f7; border-color: rgba(0, 0, 0, 0.12); transform: none; }
#homePage .task-item.overdue .task-date-editable { color: #d70015; }

/* 子任务进度：通栏进度条 + 「3/5」小字（第二十一轮：进度条延长至与卡片内容同宽，文字居右） */
#homePage .task-child-progress {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
  padding: 0;
  background: none;
  border: none;
  width: 100%;
}

#homePage .task-child-progress-bar { flex: 1; width: auto; min-width: 0; height: 4px; border-radius: 2px; background: #e8e8ed; overflow: hidden; }
#homePage .task-child-progress-bar i { display: block; height: 100%; background: #1d1d1f; border-radius: 2px; }
#homePage .task-child-progress-text { font-size: 11px; color: #8e8e93; font-family: var(--font-mono); }

/* 右上角操作图标组（流转/历史/删除）样式见 14.2 节：绝对定位不占标题宽度 */
#homePage .task-top-bar { position: relative; }

#homePage .task-btn {
  background: #f5f5f7;
  border: none;
  color: #6e6e73;
  border-radius: 8px;
  padding: 5px 8px;
  font-size: 12px;
  opacity: 1;
}

#homePage .task-btn:hover { background: #e8e8ed; color: #1d1d1f; transform: none; }
#homePage .task-btn.onhold:hover,
#homePage .task-btn.abandon:hover,
#homePage .task-btn.restore:hover { background: #e8e8ed; color: #1d1d1f; border-color: transparent; }
#homePage .task-btn.delete:hover { background: rgba(215, 0, 21, 0.08); color: #d70015; }

/* 展开详情区：轻量化 */
#homePage .task-details-section { border-top: 1px solid rgba(0, 0, 0, 0.06); margin-top: 10px; }
#homePage .task-children { background: #f5f5f7; border-color: rgba(0, 0, 0, 0.06); display: flex; flex-direction: column; gap: 6px; }
/* 子任务行：独立白色圆角小卡 + 左侧优先级色条（高=红/中=琥珀/低=绿，与任务卡片同色系），底色按优先级淡染更突出 */
#homePage .task-child-row { background: #ffffff; border: 1px solid rgba(0, 0, 0, 0.08); border-left: 3px solid #d1d1d6; border-radius: 8px; padding: 7px 10px; color: #1d1d1f; }
#homePage .task-child-row:nth-child(even) { background: #fafafc; }
#homePage .task-child-row.pr-high { background: #fef2f2; border-left-color: #ef4444; }
#homePage .task-child-row.pr-medium { background: #fffbeb; border-left-color: #f59e0b; }
#homePage .task-child-row.pr-low { background: #ecfdf5; border-left-color: #10b981; }
/* 勾选钮：浅灰小方块（覆盖 .task-mgmt-container .task-child-row button 的描边 pill 样式） */
#homePage .task-child-row .child-check { background: rgba(0, 0, 0, 0.04); border: 1px solid rgba(0, 0, 0, 0.1); color: #6e6e73; border-radius: 6px; padding: 2px 6px; font-size: 12px; line-height: 1.4; cursor: pointer; }
#homePage .task-child-row .child-check:hover { background: rgba(0, 0, 0, 0.08); color: #1d1d1f; }
/* 编辑子任务：干净图标钮（覆盖 .task-mgmt-container .task-child-row button 的描边 pill 样式） */
#homePage .task-child-row .child-edit-btn { border: none; background: transparent; color: #8e8e93; border-radius: 6px; padding: 4px; line-height: 0; cursor: pointer; }
#homePage .task-child-row .child-edit-btn:hover { background: rgba(0, 0, 0, 0.05); color: #1d1d1f; }
#homePage .task-child-row .child-edit-btn svg { width: 14px; height: 14px; display: block; }
#homePage .task-steps { background: rgba(0, 0, 0, 0.03); border-color: rgba(0, 0, 0, 0.06); max-height: 240px; overflow-y: auto; }
#homePage .task-steps-title { color: #6e6e73; }
#homePage .task-step-row span { background: rgba(0, 0, 0, 0.08); color: #6e6e73; }
/* 展开态底部主按钮排：靠右；编辑任务=次级 pill（白底灰边），添加子任务=主 pill（黑底白字） */
#homePage .task-history-actions { justify-content: flex-end; align-items: center; gap: 8px; margin: 12px 0 4px; }
/* order:0 覆盖 tasks.css 的 .task-btn.edit{order:2}，恢复 DOM 顺序（编辑任务在前、添加子任务在后） */
#homePage .task-history-actions .task-btn { order: 0; padding: 7px 14px; font-size: 12px; border-radius: 999px; display: inline-flex; align-items: center; gap: 5px; }
#homePage .task-history-actions .task-btn svg { width: 13px; height: 13px; display: block; flex-shrink: 0; }
#homePage .task-history-actions .task-btn.edit { background: #f5f5f7; color: #1d1d1f; border: 1px solid rgba(0, 0, 0, 0.12); font-weight: 600; }
#homePage .task-history-actions .task-btn.edit:hover { background: #e8e8ed; color: #1d1d1f; transform: none; }
#homePage .task-history-actions .task-btn.child.primary { background: #1d1d1f; color: #ffffff; border: 1px solid #1d1d1f; font-weight: 600; }
#homePage .task-history-actions .task-btn.child.primary:hover { background: #000000; color: #ffffff; transform: none; }
#homePage .task-copy-btn { background: rgba(0, 0, 0, 0.05); color: #6e6e73; }

/* 空状态：居中图标 + 一句文案 */
#homePage .task-list-empty { min-height: 220px; padding: 48px 20px; }
#homePage .empty-illustration { font-size: 44px; opacity: 0.22; }
#homePage .empty-title { color: #6e6e73; font-size: 15px; font-weight: 600; font-family: var(--font-display); }
#homePage .empty-desc { color: #aeaeb2; }

/* ------------------------------------------------------------
 * 13. 顶栏信息下沉 + 小瑜助手内嵌右栏 + 任务流式双排（2026-10-03）
 * 顶栏已删除：用户信息/额度徽章/fs徽章/登录/设置迁入 rail 底部；
 * 小瑜助手由 body 级 fixed 浮层改为任务区域内可拖拽右栏（第三列）；
 * 任务列表改流式双排网格；时间线页签重构为按月分组的任务时间线。
 * ------------------------------------------------------------ */

/* ===== 13.1 左导航底部：用户区 / 徽章区 / 操作区 ===== */
/* 小屏防溢出：rail 内容超高时可内部滚动 */
#homePage .home-rail { overflow-y: auto; }

/* 底部整体：与导航发丝线分隔，三个区域紧凑分组（间距 8px，不再层层堆叠） */
#homePage .home-rail-footer {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* 用户区：紧凑信息卡（头像 + 昵称 + 退出），未登录时只剩登录按钮 */
#homePage .rail-user-zone { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

#homePage .user-info-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 10px;
  min-width: 0;
}

#homePage .user-info-bar .user-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

#homePage .user-info-bar .user-avatar svg { width: 15px; height: 15px; display: block; }

#homePage .user-info-bar .user-name {
  flex: 1;
  min-width: 0;
  max-width: none;
  font-size: 13px;
  font-weight: 600;
  color: #1d1d1f;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#homePage .user-info-bar .btn-user-logout {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: #6e6e73;
  padding: 3px 6px;
  border-radius: 6px;
}

#homePage .user-info-bar .btn-user-logout:hover { color: #d70015; background: rgba(215, 0, 21, 0.08); }

/* 登录入口：rail-item 风格整宽按钮（保留黑底主按钮配色） */
#homePage .rail-user-zone #btnLoginEntry {
  width: 100%;
  height: 38px;
  padding: 0 10px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  gap: 10px;
  box-shadow: none;
}

/* 徽章区：两个 pill 单行横排（空间不足自动换行），仅展开态可见 */
#homePage .rail-badges-zone { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
#homePage .rail-badges-zone > div { line-height: 1.4; }
#homePage .rail-badges-zone #fsStatusText { max-width: 96px; }

/* 底部操作区：设置 + 收起 单行等分（收起态恢复竖排图标） */
#homePage .rail-footer-actions { display: flex; flex-direction: row; gap: 6px; }

#homePage .rail-footer-actions .btn-home-action,
#homePage .rail-footer-actions .rail-collapse-btn {
  flex: 1;
  height: 34px;
  min-width: 0;
  padding: 0 8px;
  border: none;
  border-radius: 8px;
  background: none;
  color: #6e6e73;
  font-size: 13px;
  font-weight: 500;
  gap: 8px;
  box-shadow: none;
  justify-content: center;
}

#homePage .rail-footer-actions .btn-home-action:hover,
#homePage .rail-footer-actions .rail-collapse-btn:hover { background: #f5f5f7; color: #1d1d1f; }

#homePage .rail-footer-actions .rail-item-label { font-size: 13px; }

/* 收起态（56px）：用户区只留头像/登录图标（居中），徽章区隐藏，操作恢复竖排图标按钮 */
#homePage .home-rail.collapsed .rail-user-zone { align-items: center; }
#homePage .home-rail.collapsed .user-info-bar { padding: 0; background: none; border-color: transparent; }
#homePage .home-rail.collapsed .user-info-bar .user-name,
#homePage .home-rail.collapsed .user-info-bar .btn-user-logout { display: none; }
#homePage .home-rail.collapsed .rail-badges-zone { display: none; }
#homePage .home-rail.collapsed .rail-user-zone #btnLoginEntry { width: 40px; padding: 0; justify-content: center; }
#homePage .home-rail.collapsed .rail-footer-actions { flex-direction: column; }
#homePage .home-rail.collapsed .rail-footer-actions .btn-home-action,
#homePage .home-rail.collapsed .rail-footer-actions .rail-collapse-btn { flex: none; width: 40px; height: 40px; margin: 0 auto; padding: 0; }

/* ===== 13.1b 版本号徽章 + 公告按钮/公告弹窗（2026-10-07 新增） ===== */
/* 版本号徽章：显示后台 /api/senyu-version 发布的最新版本（version-check.js 更新），
   位于徽章区下方、操作区上方；与当前页面版本不一致时 .outdated 琥珀色，点击直接刷新 */
#homePage .rail-version-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 4px;
  padding: 3px 8px;
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
  font-size: 10px;
  line-height: 1.4;
  color: #6e6e73;
  cursor: pointer;
  font-family: inherit;
}
#homePage .rail-version-badge:hover { border-color: rgba(0, 0, 0, 0.15); color: #1d1d1f; }
#homePage .rail-version-badge.outdated {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.35);
  color: #b45309;
  font-weight: 600;
}
#homePage .rail-version-badge.outdated:hover { background: rgba(245, 158, 11, 0.18); color: #92400e; }
/* 收起态隐藏（与徽章区一致，展开态才看得到） */
#homePage .home-rail.collapsed .rail-version-badge { display: none; }

/* 公告按钮未读红点（有 localStorage 未见过的公告 id 时显示，announcement.js 控制） */
#homePage .rail-announce-btn { position: relative; }
#homePage .rail-announce-dot {
  position: absolute;
  top: 5px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff3b30;
  border: 1.5px solid #fff;
}

/* 公告弹窗：内容来自后台 /api/announcements（announcement.js 渲染），限高内部滚动 */
#announcementModal .announce-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 60vh;
  overflow-y: auto;
  margin-top: 4px;
}
#announcementModal .announce-item {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 12px 14px;
  background: #fff;
}
#announcementModal .announce-item-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}
#announcementModal .announce-item-title { font-size: 14px; font-weight: 600; color: #1d1d1f; line-height: 1.4; }
#announcementModal .announce-item-date { flex-shrink: 0; font-size: 11px; color: #aeaeb2; }
#announcementModal .announce-item-content { font-size: 13px; line-height: 1.7; color: #3a3a3c; word-break: break-word; }
#announcementModal .announce-item-content p { margin: 0 0 6px; }
#announcementModal .announce-item-content p:last-child { margin-bottom: 0; }
#announcementModal .announce-item-content ul,
#announcementModal .announce-item-content ol { margin: 4px 0 6px; padding-left: 20px; }
#announcementModal .announce-item-content strong { color: #1d1d1f; }
#announcementModal .announce-empty,
#announcementModal .announce-loading { padding: 32px 0; text-align: center; font-size: 13px; color: #aeaeb2; }

/* ===== 13.2 小瑜助手：任务区域内右栏（原 body 级 fixed 浮层改为内嵌） ===== */
/* 拖拽手柄：位于任务列表与面板之间，宽 4px，hover / 拖拽中变深 */
#homeTabTasks .fish-resize-handle {
  display: none;
  width: 4px;
  flex-shrink: 0;
  cursor: col-resize;
  background: transparent;
  transition: background 0.15s ease;
}

#homeTabTasks .fish-resize-handle:hover,
#homeTabTasks .fish-resize-handle.dragging { background: rgba(0, 0, 0, 0.25); }

/* 面板本体：fixed 浮层 → 静态内嵌第三列；默认隐藏，.open 时撑满任务面板高度 */
#homeTabTasks .fish-sidebar,
#homeTabTasks .fish-sidebar.open {
  position: static;
  width: 360px;
  height: 100%;
  flex-shrink: 0;
  flex-direction: column;
  background: #ffffff;
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  transform: none;
  box-shadow: none;
  z-index: auto;
}

#homeTabTasks .fish-sidebar { display: none; }
#homeTabTasks .fish-sidebar.open { display: flex; }

/* 收起态展开杠：面板右侧 28px 竖条，提示「在这里打开小瑜助手」 */
#homeTabTasks .fish-edge-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 28px;
  flex-shrink: 0;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.035);
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  color: #8e8e93;
  transition: background 0.15s ease, color 0.15s ease;
}

#homeTabTasks .fish-edge-bar:hover {
  background: rgba(0, 0, 0, 0.09);
  color: #1d1d1f;
}

#homeTabTasks .fish-edge-arrow { font-size: 13px; font-weight: 700; line-height: 1; }
#homeTabTasks .fish-edge-text { writing-mode: vertical-rl; font-size: 12px; letter-spacing: 2px; }

/* ===== 13.3 任务列表：多列瀑布流（列数按列表区实际宽度动态 1~4，单卡最小宽度约 400px） ===== */
/* 结构：外层 #taskListScroll（flex:1 + overflow-y:auto，唯一上下滚动容器）> 内层 #taskList（auto 高度多列容器）。
 * 多列容器绝不能再兼任滚动容器——高度被约束的多列容器在超高卡片（如展开态长任务）时会把内容挤进右侧溢出列，
 * 导致列表向右延长、中间区无法上下滚动（2026-10-04 第二十轮修复，参考 senyustudiowork 的 columns + 滚动容器结构） */
#homePage #taskList {
  list-style: none;
  width: 100%;
  margin: 0;
  column-gap: 12px;
}

/* 双排卡片视图（第二十一轮，类小红书等宽双列）：grid 布局，同行卡片底部对齐；
 * 窄屏（<720px，JS 加 .view-narrow）降级单列。margin-bottom 清零，间距由 grid gap 统一控制
 * （第二十二轮修复：漏设 row-gap 时上下两排底边贴顶边无间距） */
#homePage #taskList.view-double { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#homePage #taskList.view-double.view-narrow { grid-template-columns: minmax(0, 1fr); }
#homePage #taskList.view-double .task-item { margin-bottom: 0; }
#homePage #taskList.view-double .task-list-empty { grid-column: 1 / -1; }

/* 列表视图切换按钮（今日/全部开关右侧，循环：多列瀑布流 → 单列通栏 → 双排卡片） */
#homePage .task-view-mode-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  border: none;
  border-radius: 8px;
  padding: 0;
  background: #f5f5f7;
  color: #6e6e73;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
#homePage .task-view-mode-btn:hover { background: #1d1d1f; color: #fff; }
#homePage .task-view-mode-btn svg { width: 15px; height: 15px; }

/* ===== 已完成任务显隐开关（2026-10-05 第二十七轮，筛选栏最右端） ===== */
/* 复选框 pill：☑=显示已完成 / ☐=隐藏（默认），激活态黑底白字与主按钮视觉一致 */
#homePage .task-completed-toggle {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 30px;
  flex-shrink: 0;
  margin-left: 8px;
  padding: 0 12px;
  border: 1px solid #d2d2d7;
  border-radius: 999px;
  background: #ffffff;
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  color: #6e6e73;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
#homePage .task-completed-toggle:hover { border-color: #1d1d1f; color: #1d1d1f; }
#homePage .task-completed-toggle.active { background: #1d1d1f; border-color: #1d1d1f; color: #ffffff; }
#homePage .task-completed-toggle .task-completed-toggle-box { font-size: 12px; line-height: 1; }

/* 卡片撑满列宽、列间 12px 间距；break-inside 防止卡片跨列断裂；列数由 JS updateTaskListColumns() 按容器宽度设置 */
#homePage #taskList .task-item { margin-bottom: 12px; width: 100%; box-sizing: border-box; break-inside: avoid; }
/* 空状态横跨所有列 */
#homePage #taskList .task-list-empty { column-span: all; }

/* ===== 13.6 日历视图任务开关：今日任务 / 全部任务（分段控件，仅日历子页签显示，筛选栏内靠右） ===== */
#homePage .task-view-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: #e8e8ed;
  border-radius: 10px;
  flex-shrink: 0;
  margin-left: auto;
}

#homePage .task-view-switch-btn {
  border: none;
  background: none;
  border-radius: 8px;
  padding: 5px 14px;
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  color: #6e6e73;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.15s ease, color 0.15s ease;
}

#homePage .task-view-switch-btn:hover { color: #1d1d1f; }

#homePage .task-view-switch-btn.active {
  background: #ffffff;
  color: #1d1d1f;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

/* ===== 13.4 时间线视觉：参考 TaskTimeline 的圆点 + 连接线 + hover 提示 ===== */
/* 版本路线图竖排（2026-10-03 第八轮）：roadmap-line 改纵向列排（去掉 overflow-x 横滚），
   节点行为「圆点居左 + 卡片在右」，node-connector 由横线改为圆点下方的竖线
   （left:13px 对齐 28px 圆点中心；结构几何在 tasks.css，此处只管浅色配色） */
/* 路线图节点：待定圆点改灰，hover 时卡片描边加深 */
#homePage .status-pending .node-dot { background: #aeaeb2; color: #ffffff; }
#homePage .node-card { transition: border-color 0.15s ease, box-shadow 0.15s ease; }
#homePage .roadmap-node:hover .node-card { border-color: rgba(0, 0, 0, 0.22); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08); }
#homePage .node-connector { background: rgba(0, 0, 0, 0.12); }

/* ===== 13.5 任务时间线：日期分组 + 三大分区 + 月份切换（2026-10-05 重设计，参考协作平台 TaskTimeline） ===== */
#homePage .task-timeline {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 2px 10px 16px;
}

/* 月份切换 pills：近期 + 近5个月（带计数），选中态黑底白字 */
#homePage .timeline-months {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px 2px 8px;
  position: sticky;
  top: 0;
  z-index: 6;
  background: #ffffff;
}

#homePage .timeline-month-btn {
  border: none;
  border-radius: 6px;
  background: #f5f5f7;
  color: #6e6e73;
  font-size: 12px;
  font-family: inherit;
  padding: 3px 9px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

#homePage .timeline-month-btn:hover { background: #e8e8ed; color: #1d1d1f; }
#homePage .timeline-month-btn.active { background: #1d1d1f; color: #ffffff; }

/* 分区折叠态：隐藏该分区下所有日期组 */
#homePage .timeline-section.collapsed .timeline-group { display: none; }

/* 分区头（挂起/已完成才有；未完成段不显示头，省空间） */
#homePage .timeline-section-head {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 6px;
  padding: 7px 4px 4px;
  border-top: 1px solid #e8e8ed;
  font-size: 12px;
  font-weight: 600;
  color: #6e6e73;
  cursor: pointer;
  user-select: none;
}

#homePage .timeline-section-head:hover { color: #1d1d1f; }

#homePage .timeline-section-arrow { font-size: 9px; width: 10px; flex-shrink: 0; }

#homePage .timeline-section-count {
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  font-size: 10px;
  font-weight: 500;
  color: #8e8e93;
}

/* 日期分组头：吸顶 + 按紧急度着色（过期红 / 今天黑 / 3天内琥珀 / 其他灰） */
#homePage .timeline-group-header {
  position: sticky;
  top: 34px;
  z-index: 5;
  padding: 6px 4px 4px;
  background: #ffffff;
  font-size: 11px;
  font-weight: 500;
  color: #8e8e93;
}

#homePage .timeline-group-header.overdue { color: #d70015; font-weight: 600; }
#homePage .timeline-group-header.today { color: #1d1d1f; font-weight: 700; }
#homePage .timeline-group-header.soon { color: #b25000; }

/* 组内节点容器：左侧竖线 */
#homePage .timeline-nodes { position: relative; padding-left: 16px; }

#homePage .timeline-nodes::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 2px;
  bottom: 2px;
  width: 1px;
  background: #e8e8ed;
}

/* 节点行：展开箭头 + 项目色块 + 状态圆点 + 标题 + 子任务数 + 优先级点（无按钮，点击打开编辑） */
#homePage .timeline-node {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 4px;
  border-radius: 8px;
  min-width: 0;
  cursor: pointer;
}

#homePage .timeline-node:hover { background: #f5f5f7; }

#homePage .timeline-dot {
  position: absolute;
  left: -15px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* 展开箭头（无子任务的节点用占位保持对齐） */
#homePage .timeline-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 4px;
  font-size: 9px;
  line-height: 1;
  color: #8e8e93;
  flex-shrink: 0;
  cursor: pointer;
}

#homePage .timeline-chevron:hover { background: rgba(0, 0, 0, 0.06); color: #1d1d1f; }
#homePage .timeline-chevron.is-placeholder { cursor: default; }
#homePage .timeline-chevron.is-placeholder:hover { background: none; }

/* 项目色块：稳定色底 + 白字首字符 */
#homePage .timeline-project-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 16px;
  border-radius: 4px;
  color: #ffffff;
  font-size: 10px;
  font-weight: 600;
  flex-shrink: 0;
}

#homePage .timeline-node-title {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  color: #1d1d1f;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#homePage .timeline-node.done .timeline-node-title { color: #8e8e93; text-decoration: line-through; }
#homePage .timeline-node.suspended .timeline-node-title { color: #8e8e93; }

/* 子任务数小徽标 */
#homePage .timeline-child-badge {
  padding: 0 5px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.05);
  font-size: 10px;
  color: #8e8e93;
  flex-shrink: 0;
}

#homePage .timeline-priority-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
#homePage .timeline-priority-dot.high { background: #d70015; }
#homePage .timeline-priority-dot.medium { background: #b25000; }
#homePage .timeline-priority-dot.low { background: #aeaeb2; }

/* 第一个未完成任务扫光提示 */
#homePage .timeline-shimmer {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.05), transparent);
  background-size: 200% 100%;
  animation: timeline-shimmer 2.4s ease-in-out infinite;
}

@keyframes timeline-shimmer {
  0% { background-position: -100% 0; }
  100% { background-position: 200% 0; }
}

/* 子任务列表：默认折叠，展开后紧凑缩进文本行（无按钮，点击打开编辑） */
#homePage .timeline-children { display: none; margin: 0 0 4px; }
#homePage .timeline-children.expanded { display: block; }

#homePage .timeline-child-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: 22px;
  padding: 3px 4px;
  border-radius: 6px;
  font-size: 12px;
  color: #3a3a3c;
  cursor: pointer;
}

#homePage .timeline-child-row:hover { background: #f5f5f7; }
#homePage .timeline-child-row.done { color: #8e8e93; }
#homePage .timeline-child-row.done .timeline-child-title { text-decoration: line-through; }

#homePage .timeline-child-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c7c7cc;
  flex-shrink: 0;
}

#homePage .timeline-child-dot.done { background: #34c759; }

#homePage .timeline-child-title {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ------------------------------------------------------------
 * 14. 任务卡片交互升级 + 日期弹窗 + 轻量子任务弹窗 + 日报周报月报（2026-10-03）
 * ① hover 任务信息浮窗（点击卡片仍为展开/收起详情）
 * ② 状态流转按钮移至卡片右下角并弱化，展开态隐藏
 * ③ 日期修改弹窗重做为苹果风（复用任务编辑弹窗结构）
 * ④ 轻量子任务弹窗（仅类型 + 描述）
 * ⑤ 日报 / 周报 / 月报弹窗（Tabs + 统计卡 + Markdown 预览 + 历史记录）
 * ------------------------------------------------------------ */

/* ===== 14.1 任务卡片 hover 信息浮窗 ===== */
.task-hover-card {
  position: fixed;
  z-index: 1200;
  display: none;
  width: 300px;
  max-width: calc(100vw - 16px);
  max-height: calc(100vh - 16px);
  overflow-y: auto;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.16);
  padding: 14px 16px;
  font-family: 'YS Body', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
}

.task-hover-card.show { display: block; animation: taskHoverCardIn 0.16s cubic-bezier(0.4, 0, 0.2, 1); }

@keyframes taskHoverCardIn {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

.task-hover-card-title {
  font-size: 14px;
  font-weight: 600;
  color: #1d1d1f;
  line-height: 1.45;
  margin-bottom: 8px;
  word-break: break-word;
}

.task-hover-card-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }

.task-hover-tag {
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.045);
  font-size: 11px;
  color: #6e6e73;
  line-height: 1.5;
}

.task-hover-tag.status { font-weight: 600; }
.task-hover-tag.status.pending { background: rgba(0, 0, 0, 0.07); color: #3a3a3c; }
.task-hover-tag.status.done { background: rgba(36, 138, 61, 0.1); color: #248a3d; }
.task-hover-tag.status.onhold { background: rgba(178, 80, 0, 0.1); color: #b25000; }
.task-hover-tag.status.abandoned { background: rgba(0, 0, 0, 0.06); color: #8e8e93; }
.task-hover-tag.project { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.task-hover-tag.date { font-family: var(--font-mono); }

.task-hover-card-desc {
  font-size: 12px;
  line-height: 1.6;
  color: #3a3a3c;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 168px;
  overflow-y: auto;
  padding: 8px 10px;
  background: #f5f5f7;
  border-radius: 8px;
}

.task-hover-card-desc.empty { color: #aeaeb2; }

.task-hover-card-children { margin-top: 8px; }
.task-hover-card-children ul { margin: 4px 0 0; padding-left: 4px; list-style: none; }
.task-hover-card-children li { font-size: 12px; line-height: 1.7; color: #3a3a3c; }
.task-hover-card-children li.done { color: #8e8e93; text-decoration: line-through; }
.task-hover-card-children li.more { color: #aeaeb2; }

.task-hover-card-subtitle {
  margin-top: 8px;
  font-size: 11px;
  font-weight: 600;
  color: #8e8e93;
}

.task-hover-card-foot {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 11px;
  color: #aeaeb2;
}

/* ===== 14.2 右上角操作图标组（删除/流转/添加子任务/编辑）=====
 * 定位：.task-content 右上角绝对定位，不占标题宽度（标题右侧留 150px 安全区）
 * 顺序（从左到右）：🗑 删除 → 状态流转（按状态 0~2 个）→ ＋ 添加子任务 → ✏️ 编辑，全部 SVG 线性图标
 * 显隐：未展开淡显（opacity .4）不扰阅读；hover 卡片或展开态清晰常显
 * 展开态：流转按钮（.flow 标记）收进左下角时间左侧，此处 display:none；流转历史同理仅展开态可见 */
#homePage .task-content { position: relative; }

#homePage .task-actions {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0.4;
  transition: opacity 0.15s ease;
  z-index: 2;
}

#homePage .task-item:hover .task-actions,
#homePage .task-item.detail-expanded .task-actions { opacity: 1; }

/* 图标钮：26×26 无边框小图标，hover 浅灰圆底；覆盖 tasks.css 的 order/scale 基础样式
 * order:0 保证 DOM 顺序即视觉顺序（tasks.css 对 delete/onhold/restore/edit 设了 order 抢占） */
#homePage .task-actions .task-btn,
#homePage .task-actions .task-btn.onhold,
#homePage .task-actions .task-btn.abandon,
#homePage .task-actions .task-btn.restore,
#homePage .task-actions .task-btn.history,
#homePage .task-actions .task-btn.delete,
#homePage .task-actions .task-btn.child,
#homePage .task-actions .task-btn.edit { order: 0; }

#homePage .task-actions .task-btn {
  width: 26px;
  height: 26px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 8px;
  color: #6e6e73;
  font-size: 13px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 1;
}

#homePage .task-actions .task-btn svg { width: 14px; height: 14px; display: block; }

#homePage .task-actions .task-btn:hover { background: #e8e8ed; color: #1d1d1f; transform: none; }

/* 状态流转按钮常驻右上角图标组第一位（2026-10-04 第十九轮：删除下沉展开态左下角后，流转为右上角唯一状态操作，展开/收起态均可见，不再有隐藏规则；原 .task-actions .task-btn.delete:hover 红悬停随删除钮一并下沉至 .task-time-footer） */

/* ===== 14.2b 展开态左下角时间行：低优先级按钮组（删除 + 流转历史）+ 创建时间 =====
 * 位于 .task-details-section 内，默认隐藏，仅展开态可见；24×24 中性图标钮 */
#homePage .task-time-left { display: inline-flex; align-items: center; gap: 2px; min-width: 0; }

#homePage .task-time-footer .task-btn {
  order: 0;
  width: 24px;
  height: 24px;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 7px;
  color: #6e6e73;
  font-size: 13px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  opacity: 0.7;
}

#homePage .task-time-footer .task-btn:hover { background: #e8e8ed; color: #1d1d1f; transform: none; opacity: 1; }
/* 删除钮（2026-10-04 第十九轮从右上角图标组下沉至此）：hover 红色警示，与其余中性钮区分 */
#homePage .task-time-footer .task-btn.delete:hover { background: rgba(215, 0, 21, 0.08); color: #d70015; }
#homePage .task-time-footer .task-btn svg { width: 13px; height: 13px; display: block; }
#homePage .task-time-footer .task-created-at { margin-left: 6px; }

/* ===== 14.3 日期修改弹窗（苹果风，复用任务编辑弹窗结构） ===== */
#taskDatePicker .task-date-modal-content { max-width: 380px; }

#taskDatePicker .task-date-task-name {
  font-size: 13px;
  font-weight: 600;
  color: #1d1d1f;
  margin-bottom: 12px;
  padding: 8px 10px;
  background: #f5f5f7;
  border-radius: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#taskDatePicker .task-date-shortcuts { display: flex; gap: 8px; margin-top: 12px; }

#taskDatePicker .task-date-shortcut-btn {
  flex: 1;
  padding: 7px 0;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 10px;
  background: #ffffff;
  color: #3a3a3c;
  font-size: 12px;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

#taskDatePicker .task-date-shortcut-btn:hover { background: #f5f5f7; border-color: rgba(0, 0, 0, 0.25); }

/* ===== 14.4 轻量子任务弹窗 ===== */
#taskSubTaskModal .task-subtask-modal-content { max-width: 420px; }

#taskSubTaskModal .task-subtask-parent-tip {
  padding: 10px 20px 0;
  font-size: 12px;
  color: #6e6e73;
  line-height: 1.6;
}

#taskSubTaskModal .task-subtask-parent-tip strong { color: #1d1d1f; }

/* ===== 14.5 日报 / 周报 / 月报弹窗 ===== */
#taskReportModal .task-report-modal-content { max-width: 720px; }

#taskReportModal .task-report-tabs {
  display: flex;
  gap: 2px;
  padding: 10px 20px 0;
}

#taskReportModal .task-report-tab {
  padding: 7px 22px;
  border: none;
  border-radius: 10px 10px 0 0;
  background: transparent;
  color: #6e6e73;
  font-size: 13px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

#taskReportModal .task-report-tab:hover { color: #1d1d1f; background: rgba(0, 0, 0, 0.04); }

#taskReportModal .task-report-tab.active {
  background: #f5f5f7;
  color: #1d1d1f;
  font-weight: 600;
  box-shadow: inset 0 -2px 0 #1d1d1f;
}

#taskReportModal .task-report-body { gap: 14px; }

#taskReportModal .task-report-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }

#taskReportModal .task-report-period {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 600;
  color: #1d1d1f;
}

#taskReportModal .task-report-scope { font-size: 11px; color: #8e8e93; }

#taskReportModal .task-report-stats { display: flex; gap: 8px; flex-wrap: wrap; }

#taskReportModal .task-report-stat {
  flex: 1;
  min-width: 96px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 10px 6px;
  background: #f5f5f7;
  border-radius: 12px;
}

#taskReportModal .task-report-stat strong { font-size: 18px; color: #1d1d1f; font-family: var(--font-mono); }
#taskReportModal .task-report-stat span { font-size: 11px; color: #8e8e93; }
#taskReportModal .task-report-stat.done strong { color: #248a3d; }
#taskReportModal .task-report-stat.warn strong { color: #d70015; }
#taskReportModal .task-report-stat.soon strong { color: #b25000; }

#taskReportModal .task-report-preview {
  max-height: 300px;
  overflow-y: auto;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
}

#taskReportModal .task-report-preview h3 { margin: 0 0 10px; font-family: var(--font-display); font-size: 15px; color: #1d1d1f; }
#taskReportModal .task-report-preview h4 {
  margin: 16px 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 13px;
  color: #1d1d1f;
}
#taskReportModal .task-report-preview h5 { margin: 12px 0 4px; font-size: 12px; color: #6e6e73; }
#taskReportModal .task-report-preview blockquote {
  margin: 0 0 10px;
  padding: 8px 12px;
  background: #f5f5f7;
  border-radius: 8px;
  font-size: 12px;
  color: #6e6e73;
}
#taskReportModal .task-report-preview ul,
#taskReportModal .task-report-preview ol { margin: 4px 0 10px; padding-left: 20px; }
#taskReportModal .task-report-preview li { font-size: 13px; line-height: 1.8; color: #3a3a3c; }
#taskReportModal .task-report-preview p { margin: 4px 0; font-size: 13px; line-height: 1.7; color: #3a3a3c; }
#taskReportModal .task-report-preview strong { color: #1d1d1f; }

#taskReportModal .task-report-history-title {
  font-size: 12px;
  font-weight: 600;
  color: #6e6e73;
  margin-bottom: 8px;
}

#taskReportModal .task-report-history { display: flex; flex-direction: column; gap: 6px; }

#taskReportModal .task-report-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 12px;
  background: #f5f5f7;
  border-radius: 10px;
}

#taskReportModal .task-report-history-info { display: flex; flex-direction: column; min-width: 0; }
#taskReportModal .task-report-history-info strong {
  font-size: 12px;
  color: #1d1d1f;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#taskReportModal .task-report-history-info span { font-size: 11px; color: #8e8e93; font-family: var(--font-mono); }

#taskReportModal .task-report-history-actions { display: flex; gap: 4px; flex-shrink: 0; }

#taskReportModal .task-report-mini-btn {
  padding: 4px 10px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 8px;
  background: #ffffff;
  color: #3a3a3c;
  font-size: 11px;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease;
}

#taskReportModal .task-report-mini-btn:hover { background: #e8e8ed; }
#taskReportModal .task-report-mini-btn.danger { color: #d70015; }
#taskReportModal .task-report-mini-btn.danger:hover { background: rgba(215, 0, 21, 0.07); }

#taskReportModal .task-report-history-empty {
  padding: 16px;
  text-align: center;
  font-size: 12px;
  color: #aeaeb2;
  background: #f5f5f7;
  border-radius: 10px;
}

/* 小瑜报表库（2026-10-03 第七轮：只展示 AI 生成后保存的记录） */
#taskReportModal .task-report-lib-tip {
  padding: 8px 12px;
  background: #f5f5f7;
  border-radius: 10px;
  font-size: 12px;
  color: #6e6e73;
}

#taskReportModal .task-report-lib-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 12px;
}

#taskReportModal .task-report-lib-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

#taskReportModal .task-report-lib-head strong {
  font-size: 13px;
  color: #1d1d1f;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#taskReportModal .task-report-lib-head span {
  font-size: 11px;
  color: #8e8e93;
  font-family: var(--font-mono);
  flex-shrink: 0;
}

#taskReportModal .task-report-lib-actions {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

/* ===== 14.6 小瑜助手报告草稿卡（日报 / 周报 / 月报，AI 生成） ===== */
#homeTabTasks .fish-report {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 10px;
  background: #ffffff;
}

#homeTabTasks .fish-report-title {
  font-size: 13px;
  font-weight: 600;
  color: #1d1d1f;
  margin-bottom: 8px;
}

/* 报告预览：限高滚动，排版与报表弹窗预览保持一致 */
#homeTabTasks .fish-report-preview {
  max-height: 200px;
  overflow-y: auto;
  padding: 10px 12px;
  background: #f5f5f7;
  border-radius: 8px;
}

#homeTabTasks .fish-report-preview h3 { margin: 0 0 8px; font-family: var(--font-display); font-size: 14px; color: #1d1d1f; }
#homeTabTasks .fish-report-preview h4 {
  margin: 12px 0 6px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 13px;
  color: #1d1d1f;
}
#homeTabTasks .fish-report-preview h5 { margin: 10px 0 4px; font-size: 12px; color: #6e6e73; }
#homeTabTasks .fish-report-preview blockquote {
  margin: 0 0 8px;
  padding: 6px 10px;
  background: rgba(0, 0, 0, 0.04);
  border-radius: 6px;
  font-size: 11px;
  color: #6e6e73;
}
#homeTabTasks .fish-report-preview ul,
#homeTabTasks .fish-report-preview ol { margin: 4px 0 8px; padding-left: 18px; }
#homeTabTasks .fish-report-preview li { font-size: 12px; line-height: 1.7; color: #3a3a3c; }
#homeTabTasks .fish-report-preview p { margin: 4px 0; font-size: 12px; line-height: 1.7; color: #3a3a3c; }
#homeTabTasks .fish-report-preview strong { color: #1d1d1f; }

#homeTabTasks .fish-report-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }

#homeTabTasks .fish-report-actions button {
  padding: 5px 12px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  background: #ffffff;
  color: #1d1d1f;
  font-size: 12px;
  font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

#homeTabTasks .fish-report-actions button:hover { background: #f5f5f7; border-color: rgba(0, 0, 0, 0.22); }

#homeTabTasks .fish-report-actions button.primary {
  background: #1d1d1f;
  border-color: #1d1d1f;
  color: #ffffff;
}

#homeTabTasks .fish-report-actions button.primary:hover { background: #000000; border-color: #000000; }

/* ===== 14.7 小瑜助手草稿区顶栏（取消按钮）与旧草稿存档气泡（2026-10-04 第十轮） ===== */
#homeTabTasks .fish-drafts-bar-title { font-size: 12px; font-weight: 600; color: #6e6e73; }
#homeTabTasks .fish-drafts-clear-btn {
  padding: 4px 12px;
  border: 1px solid rgba(0, 0, 0, 0.12);
  border-radius: 999px;
  background: #ffffff;
  color: #6e6e73;
  font-size: 12px;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
#homeTabTasks .fish-drafts-clear-btn:hover { background: #fff5f5; border-color: rgba(215, 0, 21, 0.35); color: #d70015; }

/* 顶栏右侧按钮组（全部创建 + 取消） */
#homeTabTasks .fish-drafts-bar-actions { display: flex; align-items: center; gap: 8px; }

/* 「✅ 全部创建」批量创建按钮：主 pill 黑底白字，与取消按钮并排 */
#homeTabTasks .fish-drafts-createall-btn {
  padding: 4px 12px;
  border: 1px solid #1d1d1f;
  border-radius: 999px;
  background: #1d1d1f;
  color: #ffffff;
  font-size: 12px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
#homeTabTasks .fish-drafts-createall-btn:hover { background: #000000; border-color: #000000; }
#homeTabTasks .fish-drafts-createall-btn:disabled { background: #aeaeb2; border-color: #aeaeb2; cursor: default; }

/* ===== 14.10 小瑜助手输入区按钮（2026-10-05 第三十九轮：麦克风/发送均为简约小按钮，分列输入框内部左下/右下角；第四十轮：小飞机左侧新增 shift+回车发送提示；第四十二轮：输入框为空时按空格开关录音；第四十三轮：麦克风右侧新增唤醒铃铛按钮） ===== */
/* 输入框包裹层：textarea 占满剩余宽度，按钮绝对定位在内部左下角（麦克风+唤醒铃铛）/右下角（快捷键提示+发送） */
#homeTabTasks .fish-input-wrap { position: relative; flex: 1; min-width: 0; display: flex; }
/* textarea 左右各留按钮避让区（左麦克风 26px + 唤醒铃铛 26px 共约 72px / 右小飞机+快捷键提示约 122px），防止文字压在按钮下 */
#homeTabTasks .fish-input-row textarea { padding-left: 72px; padding-right: 122px; }
/* 麦克风按钮：简约小按钮（左下角） */
#homeTabTasks .fish-voice-btn {
  position: absolute;
  left: 8px;
  bottom: 8px;
  width: 26px;
  height: 26px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #8e8e93;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
#homeTabTasks .fish-voice-btn:hover { background: rgba(0, 0, 0, 0.06); color: #1d1d1f; }
/* 录音中：红色图标 + 呼吸光圈，提示可再次点击停止 */
#homeTabTasks .fish-voice-btn.recording { color: #d70015; animation: fishVoicePulse 1.2s ease-in-out infinite; }
/* 模型加载中：置灰禁用 */
#homeTabTasks .fish-voice-btn.loading { color: #aeaeb2; cursor: default; }
/* 唤醒监听按钮：铃铛图标简约小按钮（麦克风右侧，2026-10-05 第四十三轮新增） */
#homeTabTasks .fish-wake-btn {
  position: absolute;
  left: 38px;
  bottom: 8px;
  width: 26px;
  height: 26px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #8e8e93;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
#homeTabTasks .fish-wake-btn:hover { background: rgba(0, 0, 0, 0.06); color: #1d1d1f; }
/* 监听中：香槟金图标 + 呼吸光圈，提示麦克风常驻可随时说唤醒词 */
#homeTabTasks .fish-wake-btn.on { color: #8a6d3b; animation: fishWakePulse 1.2s ease-in-out infinite; }
/* 启动中（2026-10-06 第五十五轮）：语音模型准备可能要几十秒，灰化 + 慢脉冲明确反馈点击已响应 */
#homeTabTasks .fish-wake-btn.starting { color: #aeaeb2; cursor: default; animation: fishWakePulse 1.6s ease-in-out infinite; }
/* 发送按钮：小飞机图标简约小按钮（右下角，2026-10-05 第三十九轮由黑 pill「发送」改版） */
#homeTabTasks .fish-send-btn {
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 26px;
  height: 26px;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #8e8e93;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
#homeTabTasks .fish-send-btn:hover { background: rgba(0, 0, 0, 0.06); color: #1d1d1f; }
#homeTabTasks .fish-send-btn:active { background: rgba(0, 0, 0, 0.1); }
/* 发送快捷键提示（2026-10-05 第四十轮）：小飞机左侧的浅灰小字，绝对定位于输入框内部右下角 */
#homeTabTasks .fish-send-hint {
  position: absolute;
  right: 40px;
  bottom: 8px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  line-height: 1;
  color: #b0b0b5;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
@keyframes fishVoicePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(215, 0, 21, 0.35); }
  50% { box-shadow: 0 0 0 6px rgba(215, 0, 21, 0); }
}
@keyframes fishWakePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(138, 109, 59, 0.35); }
  50% { box-shadow: 0 0 0 6px rgba(138, 109, 59, 0); }
}

/* ===== 14.11 对话区滚动强化（2026-10-05 第三十六轮）：消息多时可上下滚动浏览 ===== */
/* 滚动链：面板定高 → .fish-chat flex:1 + overflow-y:auto（tasks.css 1223 行）；
   此处补滚动体验：细滚动条提示可滚动 +  overscroll 防链式滚动；新消息自动滚底见 tasks.js renderTaskFishPanel() */
#homeTabTasks .fish-chat {
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.22) transparent;
}
#homeTabTasks .fish-chat::-webkit-scrollbar { width: 6px; }
#homeTabTasks .fish-chat::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.22); border-radius: 3px; }
#homeTabTasks .fish-chat::-webkit-scrollbar-track { background: transparent; }

/* 输入框上方语音状态条（2026-10-05 第二十七轮）：loading / recording / error 三态 */
#homeTabTasks .fish-voice-status {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 2px 8px;
  padding: 8px 12px;
  border-radius: 10px;
  background: #f5f5f7;
  border: 1px solid rgba(0, 0, 0, 0.06);
  font-size: 12px;
  color: #6e6e73;
  line-height: 1.5;
}
/* 聆听中：淡红底 + 脉冲的语音小标志 */
#homeTabTasks .fish-voice-status.recording { background: rgba(215, 0, 21, 0.06); border-color: rgba(215, 0, 21, 0.18); color: #d70015; font-weight: 600; }
/* 唤醒监听态（2026-10-05 第四十三轮）：香槟金淡底，与录音态红色区分 */
#homeTabTasks .fish-voice-status.wake { background: rgba(138, 109, 59, 0.08); border-color: rgba(138, 109, 59, 0.22); color: #8a6d3b; font-weight: 600; }
/* 错误态：淡红底红字 */
#homeTabTasks .fish-voice-status.error { background: rgba(215, 0, 21, 0.08); border-color: rgba(215, 0, 21, 0.25); color: #d70015; }
/* 语音小标志（2026-10-05 第三十九轮）：喇叭+声波线性图标 + 脉冲动画，仅在 recording 态播放（原 4 竖条音波已替换为语音标志） */
#homeTabTasks .fish-voice-wave { display: none; align-items: center; justify-content: center; width: 14px; height: 14px; flex: none; }
#homeTabTasks .fish-voice-status.recording .fish-voice-wave { display: inline-flex; }
#homeTabTasks .fish-voice-status.wake .fish-voice-wave { display: inline-flex; }
#homeTabTasks .fish-voice-wave svg { display: block; animation: fishVoiceIconPulse 1s ease-in-out infinite; }
@keyframes fishVoiceIconPulse {
  0%, 100% { transform: scale(1); opacity: 0.75; }
  50% { transform: scale(1.18); opacity: 1; }
}

/* 首次加载进度条（2026-10-05 第二十八轮）：下载阶段确定百分比，初始化阶段 indeterminate 滑动 */
#homeTabTasks .fish-voice-status #fishVoiceStatusText { flex: 1; min-width: 0; }
#homeTabTasks .fish-voice-progress { display: none; flex: none; width: 120px; height: 4px; border-radius: 2px; background: rgba(0, 0, 0, 0.1); overflow: hidden; }
#homeTabTasks .fish-voice-status.loading .fish-voice-progress { display: block; }
#homeTabTasks .fish-voice-progress i { display: block; height: 100%; width: 0; border-radius: 2px; background: #d70015; transition: width 0.15s ease; }
/* indeterminate：滑动条动画（JS 会写 inline width，这里 !important 覆盖为 40% 宽滑动） */
#homeTabTasks .fish-voice-progress.indeterminate i { width: 40% !important; transition: none; animation: fishVoiceIndet 1.2s ease-in-out infinite; }
@keyframes fishVoiceIndet {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(250%); }
}

/* 旧草稿存档气泡：可折叠，默认收起 */
#homeTabTasks .fish-msg.fish-archived { background: #f5f5f7; border: 1px solid rgba(0, 0, 0, 0.06); }
#homeTabTasks .fish-archived-head { color: #6e6e73; }
#homeTabTasks .fish-archived-head:hover { color: #1d1d1f; }
#homeTabTasks .fish-archived-body h4 { color: #1d1d1f; }

/* 任务完成折叠气泡：淡绿底 + 绿色摘要行（success 语义，与灰色存档气泡区分） */
#homeTabTasks .fish-msg.fish-drafts-done { background: #f2faf4; border: 1px solid rgba(52, 199, 89, 0.28); }
#homeTabTasks .fish-drafts-done .fish-archived-head { color: #1e8e3e; }
#homeTabTasks .fish-drafts-done .fish-archived-head:hover { color: #176f31; }

/* ===== 14.8 草稿卡项目下拉行 / 已创建留档标记（2026-10-04 第十一轮） ===== */
/* 草稿卡项目行：标签 + 下拉框（AI 草稿默认带出当前视图对应项目，避免生成全局任务） */
#homeTabTasks .fish-draft .draft-project-row { display: flex; align-items: center; gap: 8px; margin: 6px 2px; }
#homeTabTasks .fish-draft .draft-project-row label { font-size: 12px; font-weight: 600; color: #6e6e73; flex-shrink: 0; }
#homeTabTasks .fish-draft .draft-project-row select { flex: 1; margin: 0; }

/* 草稿卡父任务归属行（2026-10-05 第二十五轮）：AI 规划到父任务下的草稿，气泡上直接体现归属 */
#homeTabTasks .fish-draft .draft-parent-row {
  display: flex;
  align-items: center;
  margin: 2px 2px 6px;
  padding: 4px 8px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.04);
  font-size: 12px;
  color: #6e6e73;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 草稿卡父子关系徽标（2026-10-05 第三十一轮）：父任务/子任务类型标识，让气泡上的任务关系一眼可见 */
#homeTabTasks .fish-draft .draft-rel-row { display: flex; align-items: center; gap: 6px; margin: 2px 2px 4px; }
#homeTabTasks .fish-draft .draft-rel-badge {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
/* 父任务徽标：香槟金淡底（本批子任务将归属到它名下） */
#homeTabTasks .fish-draft .draft-rel-badge.parent { background: #faf3e8; border: 1px solid #ecd9b8; color: #8a6d3b; }
/* 子任务徽标：中性灰（归属于某个父任务） */
#homeTabTasks .fish-draft .draft-rel-badge.child { background: #f5f5f7; border: 1px solid #e3e3e6; color: #6e6e73; }
/* 草稿卡元信息行（2026-10-05 第二十五轮）：优先级 + 起止日期 + 创建按钮紧凑一排，类型/步骤点已降为隐藏域 */
#homeTabTasks .fish-draft .draft-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 6px 2px 2px; }
#homeTabTasks .fish-draft .draft-meta-row select,
#homeTabTasks .fish-draft .draft-meta-row input[type="date"] { margin: 0; width: auto; flex: 0 0 auto; }
#homeTabTasks .fish-draft .draft-meta-row .draft-priority { width: 64px; }
#homeTabTasks .fish-draft .draft-meta-row button { margin-left: auto; }

/* 已创建草稿卡：信息留档（只读），卡片淡绿边框 + 顶部已创建徽标 */
#homeTabTasks .fish-draft.fish-draft-created { border-color: rgba(36, 138, 61, 0.45); background: #f6faf7; }
#homeTabTasks .fish-draft-created-badge {
  margin-bottom: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(36, 138, 61, 0.12);
  color: #248a3d;
  font-size: 12px;
  font-weight: 600;
}
#homeTabTasks .fish-draft.fish-draft-created input,
#homeTabTasks .fish-draft.fish-draft-created textarea,
#homeTabTasks .fish-draft.fish-draft-created select { opacity: 0.65; cursor: default; }
#homeTabTasks .fish-draft.fish-draft-created button { background: #aeaeb2; cursor: default; }
#homeTabTasks .fish-draft.fish-draft-created button:hover { background: #aeaeb2; }

/* ===== 14.12 版本节点草稿卡（2026-10-06 第四十七轮）：向已有路线图追加节点 ===== */
/* 与路线图草稿卡视觉区分：左侧 3px 琥珀色条（路线图=整条新建无左条；节点=追加到已有路线图） */
#homeTabTasks .fish-node-draft { border-left: 3px solid #f59e0b; }
/* 目标路线图行：标签 + 下拉（选项带「路线图名 · 项目名」，AI 已按项目分析预选） */
#homeTabTasks .fish-node-draft .node-draft-target-row { display: flex; align-items: center; gap: 8px; margin: 4px 2px; }
#homeTabTasks .fish-node-draft .node-draft-target-row label { font-size: 12px; font-weight: 600; color: #6e6e73; flex-shrink: 0; }
#homeTabTasks .fish-node-draft .node-draft-target-row select { flex: 1; margin: 0; }
/* 元信息行：类型 + 版本号 + 目标日期 + 状态 + 锚点 + 追加按钮，紧凑一排可换行 */
#homeTabTasks .fish-node-draft .node-draft-meta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 6px 2px 2px; }
#homeTabTasks .fish-node-draft .node-draft-meta-row select,
#homeTabTasks .fish-node-draft .node-draft-meta-row input[type="date"] { margin: 0; width: auto; flex: 0 0 auto; }
#homeTabTasks .fish-node-draft .node-draft-meta-row .node-draft-version { width: 72px; }
#homeTabTasks .fish-node-draft .node-draft-meta-row button { margin-left: auto; }
#homeTabTasks .fish-node-draft .node-draft-anchor { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: #6e6e73; white-space: nowrap; cursor: pointer; }
#homeTabTasks .fish-node-draft .node-draft-anchor input { margin: 0; }
