aizuchi 0.5.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -33,8 +33,9 @@ export const taskIdSchema = z
33
33
  // 1 行テキスト (title 等。改行を含むと行ベースの frontmatter 処理が壊れる)
34
34
  const singleLineString = z.string().min(1).regex(/^[^\r\n]+$/, '1 行で書く (改行不可)');
35
35
  export const memberSchema = z.object({
36
- // スラッグ (タスクファイルの created_by / assignee に書かれる安定 ID)
37
- id: z.string().min(1),
36
+ // スラッグ (タスクファイルの created_by / assignee に書かれる安定 ID)
37
+ // M3: `]` と改行を禁止する (parseWorkLogLines の `\[([^\]]+)\]` が member/message を誤分割しないため)
38
+ id: z.string().min(1).regex(/^[^\]\r\n]+$/, 'member id に ] や改行は使えません'),
38
39
  // 表示名 (任意)。未指定は id を表示 (columns label と同じパターン)。表示名の変更は id に影響しない
39
40
  label: z.string().min(1).optional(),
40
41
  type: z.enum(MEMBER_TYPES),
@@ -209,7 +210,7 @@ export const taskFrontmatterSchema = z
209
210
  message: 'pending のタスクは blocked_type (decision / external / dependency) が必須',
210
211
  });
211
212
  }
212
- if (task.blocked_reason === null) {
213
+ if (task.blocked_reason === null || task.blocked_reason.trim().length === 0) {
213
214
  ctx.addIssue({
214
215
  code: z.ZodIssueCode.custom,
215
216
  path: ['blocked_reason'],
@@ -301,9 +302,19 @@ export const moveInputSchema = z
301
302
  })
302
303
  .strict()
303
304
  .superRefine((input, ctx) => {
304
- // pending 行きへの blocked_* 同梱はクライアントのバグの兆候なので黙殺せず 400 にする
305
- if (input.status === 'pending')
305
+ if (input.status === 'pending') {
306
+ // M1: 空白のみの blocked_reason は無効 (taskFrontmatterSchema pending 必須チェックと同じ基準。
307
+ // ここで弾くのは入力検証段階のフェイルファストのためで、自動 trim 保存はしない)
308
+ if (input.blocked_reason != null && input.blocked_reason.trim().length === 0) {
309
+ ctx.addIssue({
310
+ code: z.ZodIssueCode.custom,
311
+ path: ['blocked_reason'],
312
+ message: 'blocked_reason は空白のみでは指定できません',
313
+ });
314
+ }
306
315
  return;
316
+ }
317
+ // 非 pending 行きへの blocked_* 同梱はクライアントのバグの兆候なので黙殺せず 400 にする
307
318
  if (input.blocked_type != null) {
308
319
  ctx.addIssue({
309
320
  code: z.ZodIssueCode.custom,
@@ -154,7 +154,10 @@ function isCompletionRecord(message) {
154
154
  }
155
155
  /**
156
156
  * done タスクの完了時刻を決める (epoch ms)。
157
- * 優先順位: (1) 完了記録 (isCompletionRecord) を満たす作業ログ最終行の日時 無ければ (2) updated。
157
+ * 優先順位: (1) 完了記録 (isCompletionRecord) を満たす作業ログ行のうち「時刻が最大」のもの
158
+ * 無ければ (2) updated。出現位置の末尾ではなく時刻最大で選ぶ (lastActivity と同方針、I5: 手編集で
159
+ * 過去日付の完了記録を後から追記するバックフィルがあると、末尾一致では新しい完了記録より古い
160
+ * バックフィル行を誤って採用しうるため)。
158
161
  * 作業ログは `YYYY-MM-DD HH:mm` (タイムゾーン無し) なので、updated のタイムゾーンに合わせず
159
162
  * ローカル解釈の差を避けるため UTC ではなく Date.parse に委ねる (日別ビンは日付文字列で行う)。
160
163
  * R10-4 既知近似: 作業ログ時刻はローカル解釈・created/updated はオフセット付き絶対時刻のため、
@@ -163,13 +166,18 @@ function isCompletionRecord(message) {
163
166
  function completionMs(task) {
164
167
  // `## やりとり` のコメント行に完了キーワードがあっても拾わないよう、作業ログセクションに限定する (R-review #3)。
165
168
  const logs = parseWorkLogLines(workLogBody(task.body));
166
- for (let i = logs.length - 1; i >= 0; i--) {
167
- if (isCompletionRecord(logs[i].message)) {
168
- const ms = Date.parse(`${logs[i].date}T${logs[i].time}`);
169
- if (!Number.isNaN(ms))
170
- return ms;
171
- }
169
+ let best = null;
170
+ for (const log of logs) {
171
+ if (!isCompletionRecord(log.message))
172
+ continue;
173
+ const ms = Date.parse(`${log.date}T${log.time}`);
174
+ if (Number.isNaN(ms))
175
+ continue;
176
+ if (best === null || ms > best)
177
+ best = ms;
172
178
  }
179
+ if (best !== null)
180
+ return best;
173
181
  return parseIsoMs(task.updated);
174
182
  }
175
183
  /** 完了時刻 ms から日別ビンのキー (`YYYY-MM-DD`) を作る (ローカル日付) */
@@ -249,7 +257,8 @@ export function deriveStats(tasks, now, options = {}) {
249
257
  return { status, count: group.length, avgDays: null, maxDays: null };
250
258
  }
251
259
  const avgMs = dwells.reduce((s, v) => s + v, 0) / dwells.length;
252
- return { status, count: group.length, avgDays: toDays(avgMs), maxDays: toDays(Math.max(...dwells)) };
260
+ const maxMs = dwells.reduce((m, v) => (v > m ? v : m), dwells[0]);
261
+ return { status, count: group.length, avgDays: toDays(avgMs), maxDays: toDays(maxMs) };
253
262
  });
254
263
  // 4. member 別完了数 (件数降順 → member 名昇順、未割当は最後)
255
264
  const completionsByMember = [...byMember.entries()]
@@ -1,14 +1,16 @@
1
1
  /**
2
2
  * task frontmatter の 1 フィールドだけを byte 保全で書き換える純関数。
3
- * setRelatedDocsInRaw (related-docs.ts) と同じ行差し替え方式を採用する。
3
+ * setRelatedDocsInRaw / setDependsOnInRaw / setPriorityInRaw は
4
+ * setFrontmatterField を共通骨格として使う薄いラッパ (LEARN#8b N=3 共通化)。
4
5
  *
5
- * - setDependsOnInRaw: frontmatter depends_on 配列だけを置換/追加する
6
- * - setPriorityInRaw: frontmatter の priority スカラだけを置換/追加する
6
+ * - setFrontmatterField: frontmatter の指定フィールドを置換/追加/除去する共通骨格 (公開)
7
+ * - setDependsOnInRaw: frontmatter の depends_on 配列だけを置換/追加する
8
+ * - setPriorityInRaw: frontmatter の priority スカラだけを置換/追加する
7
9
  *
8
10
  * 本文・他フィールド・改行コード・コメントは完全に保全する。
9
11
  * frontmatter が見つからない raw はそのまま返す。
10
12
  */
11
- // frontmatter 境界: 先頭の `---` 行 (行末空白を許容、parseTaskFile / setRelatedDocsInRaw と同じ規約)
13
+ // frontmatter 境界: 先頭の `---` 行 (行末空白を許容、parseTaskFile と同じ規約)
12
14
  const FM_OPEN = /^---[ \t]*\r?\n/;
13
15
  // 閉じ `---` 行 (行末空白許容)
14
16
  const FM_CLOSE = /^---[ \t]*$/;
@@ -18,8 +20,7 @@ const BOM = '\uFEFF';
18
20
  // 内部ユーティリティ
19
21
  // ---------------------------------------------------------------------------
20
22
  /**
21
- * raw から BOM を剥がし、処理後に復元するラッパー。
22
- * setRelatedDocsInRaw と同じ規約 (R13-1)。
23
+ * raw から BOM を剥がし、処理後に復元するラッパー (R13-1)。
23
24
  */
24
25
  function withBomHandling(raw, fn) {
25
26
  const hasBom = raw.startsWith(BOM);
@@ -28,9 +29,8 @@ function withBomHandling(raw, fn) {
28
29
  return hasBom ? BOM + result : result;
29
30
  }
30
31
  /**
31
- * frontmatter 内の指定 key の行 (flow 1 行 or block 形式 key+続く`- `行) を除去し、
32
- * フロントマターの行配列 (開き`---`を除く、閉じ`---`を除く範囲) を返す。
33
- * また閉じ `---` のインデックスと全行配列も返す。
32
+ * frontmatter 境界を解析し、全行配列と閉じ `---` のインデックスを返す。
33
+ * frontmatter が見つからない場合は null を返す。
34
34
  */
35
35
  function parseFrontmatterLines(raw) {
36
36
  if (!FM_OPEN.test(raw))
@@ -59,7 +59,7 @@ function removeKeyLines(lines, closeIdx, key) {
59
59
  const line = lines[i].replace(/\r$/, '');
60
60
  if (keyPattern.test(line)) {
61
61
  i++;
62
- // block 形式: 続く `- ` 行も取り除く (ゼロインデントも対象。setRelatedDocsInRaw R13-4 と同方式)
62
+ // block 形式: 続く `- ` 行も取り除く (ゼロインデントも対象、R13-4 と同方式)
63
63
  while (i < closeIdx && /^\s*-\s/.test(lines[i].replace(/\r$/, '')))
64
64
  i++;
65
65
  continue;
@@ -71,7 +71,7 @@ function removeKeyLines(lines, closeIdx, key) {
71
71
  }
72
72
  /**
73
73
  * `kept` 行配列にフィールドを挿入し、raw 全体を再組み立てして返す。
74
- * 挿入位置: created: 行の直前、なければ末尾 (setRelatedDocsInRaw と同じ規約)。
74
+ * 挿入位置: created: 行の直前、なければ末尾。
75
75
  * newLine が null の場合は挿入しない (フィールド除去のみ)。
76
76
  */
77
77
  function rebuildRaw(lines, closeIdx, kept, newLine) {
@@ -89,28 +89,49 @@ function rebuildRaw(lines, closeIdx, kept, newLine) {
89
89
  return `${head}\n${tail}`;
90
90
  }
91
91
  // ---------------------------------------------------------------------------
92
- // 公開 API
92
+ // 共通骨格 (公開)
93
+ // ---------------------------------------------------------------------------
94
+ /**
95
+ * raw (frontmatter + 本文) の指定フィールドを byte 保全で置換/追加/除去する共通骨格。
96
+ *
97
+ * - key: frontmatter のフィールド名 (例: `related_docs`, `depends_on`, `priority`)
98
+ * - serializedValueOrNull:
99
+ * - 非 null: `${key}: ${serializedValueOrNull}` 形式の 1 行として挿入/置換する
100
+ * (例: `'["a", "b"]'` → `related_docs: ["a", "b"]`、`'high'` → `priority: high`)
101
+ * - null: そのフィールドの行 (flow or block 形式) を除去するだけで挿入しない
102
+ *
103
+ * BOM・行末空白・block 形式配列はすべて保全/除去対象。
104
+ * frontmatter が見つからない raw はそのまま返す。
105
+ *
106
+ * LEARN#8b: setRelatedDocsInRaw / setDependsOnInRaw / setPriorityInRaw (N=3) の
107
+ * 共通骨格として抽出。security-relevant なフィールド書換であるため、
108
+ * 各 setter のテスト (related-docs.test.ts / task-setters.test.ts) で全ケースを検証する。
109
+ */
110
+ export function setFrontmatterField(raw, key, serializedValueOrNull) {
111
+ return withBomHandling(raw, (body) => {
112
+ const parsed = parseFrontmatterLines(body);
113
+ if (!parsed)
114
+ return body;
115
+ const { lines, closeIdx } = parsed;
116
+ const kept = removeKeyLines(lines, closeIdx, key);
117
+ const newLine = serializedValueOrNull !== null ? `${key}: ${serializedValueOrNull}` : null;
118
+ return rebuildRaw(lines, closeIdx, kept, newLine);
119
+ });
120
+ }
121
+ // ---------------------------------------------------------------------------
122
+ // 公開 API (setFrontmatterField の薄いラッパ)
93
123
  // ---------------------------------------------------------------------------
94
124
  /**
95
125
  * raw (frontmatter + 本文) の depends_on 行を ids で差し替えた raw を返す。
96
126
  * - ids が空: depends_on 行 (flow 1 行 or block 形式) を除去する
97
127
  * - ids が非空: JSON.stringify 済み flow 形式 1 行
98
128
  * (`depends_on: ["TASK-001", "TASK-002"]`) に置換/挿入する。
99
- * setRelatedDocsInRaw と同じ表現スタイルに統一する (仕様「配列表現は existing に合わせる」)。
100
129
  * - frontmatter が無い raw はそのまま返す
101
130
  */
102
131
  export function setDependsOnInRaw(raw, ids) {
103
- return withBomHandling(raw, (body) => setDependsOnInner(body, ids));
104
- }
105
- function setDependsOnInner(raw, ids) {
106
- const parsed = parseFrontmatterLines(raw);
107
- if (!parsed)
108
- return raw;
109
- const { lines, closeIdx } = parsed;
110
- const kept = removeKeyLines(lines, closeIdx, 'depends_on');
111
- // setRelatedDocsInRaw と同じ JSON.stringify flow 形式 (YAML double-quoted として常に valid)
112
- const newLine = ids.length > 0 ? `depends_on: [${ids.map((id) => JSON.stringify(id)).join(', ')}]` : null;
113
- return rebuildRaw(lines, closeIdx, kept, newLine);
132
+ // JSON.stringify flow 形式: YAML double-quoted として常に valid
133
+ const serialized = ids.length > 0 ? `[${ids.map((id) => JSON.stringify(id)).join(', ')}]` : null;
134
+ return setFrontmatterField(raw, 'depends_on', serialized);
114
135
  }
115
136
  /**
116
137
  * raw (frontmatter + 本文) の priority 行を priority で差し替えた raw を返す。
@@ -119,14 +140,5 @@ function setDependsOnInner(raw, ids) {
119
140
  * - frontmatter が無い raw はそのまま返す
120
141
  */
121
142
  export function setPriorityInRaw(raw, priority) {
122
- return withBomHandling(raw, (body) => setPriorityInner(body, priority));
123
- }
124
- function setPriorityInner(raw, priority) {
125
- const parsed = parseFrontmatterLines(raw);
126
- if (!parsed)
127
- return raw;
128
- const { lines, closeIdx } = parsed;
129
- const kept = removeKeyLines(lines, closeIdx, 'priority');
130
- const newLine = `priority: ${priority}`;
131
- return rebuildRaw(lines, closeIdx, kept, newLine);
143
+ return setFrontmatterField(raw, 'priority', priority);
132
144
  }
@@ -0,0 +1 @@
1
+ :root{--bg: #f7f7f8;--surface: #ffffff;--surface-alt: #f1f1f3;--border: #e6e6e9;--border-strong: #d8d8dd;--text: #1c1d22;--text-muted: #516079;--accent: #4f46e5;--accent-hover: #4338ca;--accent-active: #3730a3;--accent-soft: #eef2ff;--accent-subtle: #e0e7ff;--danger: #de350b;--danger-soft: #ffe9e3;--danger-strong: #ae2a00;--success: #00875a;--success-soft: #e3fcef;--warn-bg: #fffae6;--warn-border: #ffab00;--human: #00875a;--ai: #6554c0;--status-idle: #8e8e96;--priority-high: #de350b;--priority-medium: #ff991f;--priority-low: #6b778c;--blocked-decision: #6554c0;--blocked-external: #ff8b00;--blocked-dependency: #00a3bf;--priority-high-bg: #ffe9e3;--priority-high-fg: #ae2a00;--priority-medium-bg: #fff0d6;--priority-medium-fg: #974f00;--priority-low-bg: #ebecf0;--priority-low-fg: #42526e;--blocked-decision-bg: #e9e6f7;--blocked-decision-fg: #4a3aa3;--blocked-external-bg: #fff0d6;--blocked-external-fg: #974f00;--blocked-dependency-bg: #d6f4f9;--blocked-dependency-fg: #0b6b7d;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 10px;--radius-pill: 9999px;--radius: var(--radius-md);--shadow-card: 0 1px 2px rgba(20, 20, 30, .06);--shadow-hover: 0 2px 8px rgba(20, 20, 30, .1), 0 0 0 1px var(--border);--shadow-lg: 0 12px 32px rgba(20, 20, 30, .2);--shadow-panel: -4px 0 16px rgba(20, 20, 30, .14);--overlay: rgba(20, 20, 30, .45);--fs-xs: 11px;--fs-sm: 12px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fw-semibold: 600;--fw-bold: 700;--ease: cubic-bezier(.2, 0, 0, 1);--dur-fast: .12s;--dur: .16s;--focus-ring: 0 0 0 2px var(--surface), 0 0 0 4px var(--accent);--focus-ring-tight: 0 0 0 2px var(--accent);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Noto Sans JP,Segoe UI,Roboto,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);font-size:var(--fs-base);line-height:1.5}button{font-family:inherit;font-size:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--accent)}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}._overlay_9olz3_1{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}._dialog_9olz3_12{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:20px 22px}._dialogWide_9olz3_23{max-width:720px}._title_9olz3_27{margin:0 0 14px;font-size:var(--fs-xl)}._field_9olz3_32{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}._label_9olz3_39{font-size:12px;font-weight:600;color:var(--text-muted)}._input_9olz3_45,._select_9olz3_46,._textarea_9olz3_47{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 9px;width:100%}._input_9olz3_45:focus-visible,._select_9olz3_46:focus-visible,._textarea_9olz3_47:focus-visible{outline:none;box-shadow:var(--focus-ring-tight);border-color:var(--accent)}._textarea_9olz3_47{resize:vertical;min-height:90px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}._actions_9olz3_69{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}._btn_9olz3_76{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:7px 14px;color:var(--text)}._btn_9olz3_76:hover{background:var(--surface-alt)}._btnPrimary_9olz3_88{background:var(--accent);border-color:var(--accent);color:#fff}._btnPrimary_9olz3_88:hover{background:var(--accent-hover)}._btnPrimary_9olz3_88:active{background:var(--accent-active);transform:translateY(1px)}._btnPrimary_9olz3_88:disabled{opacity:.5;cursor:not-allowed}._btnDanger_9olz3_108{background:var(--danger);border-color:var(--danger);color:#fff}._error_9olz3_114{color:var(--danger);font-size:12px;margin:0 0 12px}._view_m86i2_1{flex:1;display:flex;overflow:hidden}._list_m86i2_8{flex:0 0 clamp(180px,28vw,280px);display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}._search_m86i2_18{padding:12px 12px 8px;border-bottom:1px solid var(--border)}._searchInput_m86i2_23{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);font-size:13px;padding:6px 8px}._searchInput_m86i2_23:focus-visible{outline:none;box-shadow:var(--focus-ring)}._listScroll_m86i2_39{flex:1;overflow-y:auto;padding:8px 12px 12px}._monthGroup_m86i2_45{margin-bottom:10px}._monthName_m86i2_49{display:block;font-size:12px;font-weight:700;color:var(--text-muted);padding:4px 6px}._taskList_m86i2_57{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}._taskList_m86i2_57>li{content-visibility:auto;contain-intrinsic-size:auto 30px}._taskBtn_m86i2_73{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:5px 6px;border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}._taskBtn_m86i2_73:hover{background:var(--surface-alt)}._taskBtn_m86i2_73:focus-visible{box-shadow:var(--focus-ring)}._taskBtnActive_m86i2_96{background:var(--accent-soft);color:var(--accent);font-weight:600}._taskBtnActive_m86i2_96:hover{background:var(--accent-soft)}._taskId_m86i2_106{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._taskTitle_m86i2_112{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._detail_m86i2_120{flex:1;overflow-y:auto;padding:14px 18px;max-width:880px}._detailHeader_m86i2_127{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}._detailHeadText_m86i2_134{flex:1;min-width:0}._detailTitle_m86i2_139{font-size:16px;font-weight:700;margin:0 0 4px;word-break:break-word}._meta_m86i2_146{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px;color:var(--text-muted);margin:0}._metaId_m86i2_155{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}._labels_m86i2_159{display:inline-flex;flex-wrap:wrap;gap:4px}._label_m86i2_159{background:var(--surface-alt);border-radius:var(--radius-sm);padding:1px 6px}._restoreBtn_m86i2_171{flex:0 0 auto;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}._restoreBtn_m86i2_171:hover:not(:disabled){background:var(--accent-hover)}._restoreBtn_m86i2_171:focus-visible{outline:none;box-shadow:var(--focus-ring)}._restoreBtn_m86i2_171:disabled{opacity:.5;cursor:default}._markdown_m86i2_198{font-size:14px;line-height:1.65;word-break:break-word}._markdown_m86i2_198 pre{background:var(--surface-alt);padding:10px 12px;border-radius:var(--radius);overflow-x:auto;font-size:12px}._markdown_m86i2_198 code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}._muted_m86i2_217{color:var(--text-muted);font-size:13px}._error_m86i2_222{color:var(--danger);font-size:12px;margin:0 0 10px}._wrap_12hxw_1{display:flex;align-items:center;gap:6px}._track_12hxw_7{flex:1;height:6px;background:var(--surface-alt);border-radius:var(--radius-pill);overflow:hidden}._fill_12hxw_15{height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width var(--dur) var(--ease)}._fillComplete_12hxw_22{background:var(--success)}._label_12hxw_26{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}._popover_1gg77_3{position:absolute;bottom:calc(100% + 4px);left:0;right:0;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px 16px #00000029;padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-width:220px}._header_1gg77_21{display:flex;align-items:center;justify-content:space-between}._title_1gg77_27{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.04em}._closeBtn_1gg77_34{background:none;border:none;color:var(--text-muted);font-size:14px;line-height:1;cursor:pointer;padding:0 2px;border-radius:var(--radius-sm)}._closeBtn_1gg77_34:hover{color:var(--text)}._closeBtn_1gg77_34:focus-visible{box-shadow:var(--focus-ring)}._memberSelect_1gg77_53{font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:3px 6px;width:100%}._memberSelect_1gg77_53:focus-visible{box-shadow:var(--focus-ring);outline:none}._textarea_1gg77_68{font-size:12px;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);padding:5px 8px;resize:none;width:100%;box-sizing:border-box;line-height:1.4}._textarea_1gg77_68:focus-visible{box-shadow:var(--focus-ring);outline:none}._textarea_1gg77_68:disabled{opacity:.6}._error_1gg77_91{font-size:11px;color:var(--danger);margin:0}._footer_1gg77_97{display:flex;justify-content:flex-end}._sendBtn_1gg77_102{font-size:11px;font-weight:600;padding:5px 12px;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;min-height:28px;transition:opacity var(--dur-fast) var(--ease)}._sendBtn_1gg77_102:disabled{opacity:.45;cursor:not-allowed}._sendBtn_1gg77_102:not(:disabled):hover{opacity:.85}._sendBtn_1gg77_102:focus-visible{box-shadow:var(--focus-ring)}._card_1trqe_1{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:10px 12px;display:flex;flex-direction:column;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}._card_1trqe_1:hover{border-color:var(--accent-subtle);box-shadow:var(--shadow-hover);transform:translateY(-1px);cursor:grab}._card_1trqe_1:focus-visible{box-shadow:var(--focus-ring)}._card_1trqe_1._dragging_1trqe_30{opacity:.5;box-shadow:0 8px 20px #14141e3d;transform:rotate(1.5deg) scale(1.02)}._card_1trqe_1._inProgress_1trqe_36{border-left:3px solid var(--accent)}._card_1trqe_1._unread_1trqe_43{border-color:var(--accent-subtle);box-shadow:0 0 0 1px var(--accent-subtle),var(--shadow-card);animation:_unreadFade_1trqe_1 4s var(--ease) forwards}@keyframes _unreadFade_1trqe_1{0%{background:var(--accent-soft)}to{background:var(--surface)}}._card_1trqe_1._selected_1trqe_59{background:var(--accent-soft);border-color:var(--accent-subtle);box-shadow:0 0 0 2px var(--accent-subtle),var(--shadow-card)}._selectBox_1trqe_66{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;height:16px;border:1.5px solid var(--text-muted);border-radius:var(--radius-sm);background:var(--surface);color:#fff;font-size:11px;line-height:1}._selectBox_1trqe_66._selectBoxOn_1trqe_81{border-color:var(--accent);background:var(--accent)}._unreadBadge_1trqe_87{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);padding:1px 6px}._unreadDot_1trqe_99{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}._topRow_1trqe_107{display:flex;justify-content:space-between;align-items:center;gap:6px}._id_1trqe_114{font-size:11px;font-weight:500;color:var(--text-muted);letter-spacing:.04em}._stalledBadge_1trqe_122{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--blocked-external-fg);background:var(--blocked-external-bg);border-radius:var(--radius-pill);padding:1px 6px}._stalledDot_1trqe_135{width:6px;height:6px;border-radius:50%;background:var(--blocked-external-fg);flex-shrink:0}._priority_1trqe_143{font-size:10px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:var(--radius-pill)}._priorityhigh_1trqe_151{background:var(--priority-high-bg);color:var(--priority-high-fg)}._prioritymedium_1trqe_156{background:var(--priority-medium-bg);color:var(--priority-medium-fg)}._prioritylow_1trqe_161{background:var(--priority-low-bg);color:var(--priority-low-fg)}._title_1trqe_166{font-weight:var(--fw-bold);line-height:1.35;color:var(--text);word-break:break-word}._metaRow_1trqe_173{display:flex;flex-wrap:wrap;align-items:center;gap:6px}._assignee_1trqe_180{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted)}._memberDot_1trqe_188{width:8px;height:8px;border-radius:50%;flex-shrink:0}._memberhuman_1trqe_195{background:var(--human)}._memberai_1trqe_199{background:var(--ai)}._memberunknown_1trqe_203{background:var(--text-muted)}._labels_1trqe_207{display:flex;flex-wrap:wrap;gap:4px}._label_1trqe_207{font-size:var(--fs-xs);background:var(--surface-alt);color:var(--priority-low-fg);border-radius:var(--radius-sm);padding:0 5px}._elapsed_1trqe_221{font-size:11px;color:var(--text-muted);margin-left:auto}._elapsedStrong_1trqe_227{color:var(--accent);font-weight:600}._blocked_1trqe_232{display:flex;flex-direction:column;gap:3px;border-top:1px dashed var(--border);padding-top:5px}._blockedBadge_1trqe_240{align-self:flex-start;font-size:10px;font-weight:700;border-radius:var(--radius-sm);padding:1px 6px}._blockeddecision_1trqe_248{background:var(--blocked-decision-bg);color:var(--blocked-decision-fg)}._blockedexternal_1trqe_253{background:var(--blocked-external-bg);color:var(--blocked-external-fg)}._blockeddependency_1trqe_258{background:var(--blocked-dependency-bg);color:var(--blocked-dependency-fg)}._blockedReason_1trqe_263{font-size:11px;color:var(--text-muted);word-break:break-word}._proposalActions_1trqe_269{display:flex;gap:6px;justify-content:flex-end;border-top:1px dashed var(--border);padding-top:6px;cursor:default}._actionBtn_1trqe_278{font-size:11px;font-weight:600;border-radius:var(--radius-sm);padding:6px 12px;min-height:30px;border:1px solid var(--border);background:var(--surface);transition:transform var(--dur-fast) var(--ease)}._actionBtn_1trqe_278:active{transform:scale(.96)}._actionBtn_1trqe_278:focus-visible{box-shadow:var(--focus-ring)}._approveBtn_1trqe_297{background:var(--human);border-color:var(--human);color:#fff}._rejectBtn_1trqe_303{color:var(--danger);border-color:var(--danger);background:var(--surface)}._quickCommentArea_1trqe_310{display:flex;justify-content:flex-end;border-top:1px dashed var(--border);padding-top:5px;cursor:default}._quickCommentBtn_1trqe_318{font-size:11px;font-weight:600;border-radius:var(--radius-sm);padding:4px 10px;min-height:26px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}._quickCommentBtn_1trqe_318:hover{color:var(--accent);border-color:var(--accent-subtle)}._quickCommentBtn_1trqe_318:focus-visible{box-shadow:var(--focus-ring)}._column_d1l7j_1{display:flex;flex-direction:column;min-width:248px;max-width:288px;flex:1 0 248px;background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:var(--radius-md);max-height:calc(100vh - 200px)}._header_d1l7j_13{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;gap:var(--space-1)}._columnOver_d1l7j_22{outline:2px solid var(--danger);outline-offset:-2px}._headerOver_d1l7j_27 ._label_d1l7j_27{color:var(--danger)}._label_d1l7j_27{font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:.02em}._count_d1l7j_37{font-size:var(--fs-sm);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:0 8px}._countOver_d1l7j_46{color:#fff;background:var(--danger)}._list_d1l7j_51{display:flex;flex-direction:column;gap:8px;padding:4px 8px 12px;overflow-y:auto;min-height:24px}._over_d1l7j_60{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--radius)}._empty_d1l7j_67{color:var(--text-muted);font-size:var(--fs-sm);text-align:center;display:flex;align-items:center;justify-content:center;min-height:var(--space-6);padding:var(--space-5) var(--space-2)}._filterBar_bbl5d_1{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}._search_bbl5d_12{flex:0 1 280px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 9px}._filterBar_bbl5d_1 select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px var(--space-2);background:var(--surface)}._filterSpacer_bbl5d_26{flex:1}._assignedToMeBtn_bbl5d_31{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:6px var(--space-3)}._assignedToMeBtn_bbl5d_31:hover{background:var(--surface-alt)}._assignedToMeBtn_bbl5d_31._assignedToMeBtnOn_bbl5d_42{background:var(--accent-soft);border-color:var(--accent-subtle);color:var(--accent-active);font-weight:var(--fw-semibold)}._archiveAllBtn_bbl5d_49{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:6px var(--space-3)}._archiveAllBtn_bbl5d_49:hover{background:var(--surface-alt)}._selectModeBtn_bbl5d_61{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:6px var(--space-3)}._selectModeBtn_bbl5d_61:hover{background:var(--surface-alt)}._selectModeBtn_bbl5d_61._selectModeBtnOn_bbl5d_72{background:var(--accent-soft);border-color:var(--accent-subtle);color:var(--accent-active);font-weight:var(--fw-semibold)}._selectBar_bbl5d_80{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--accent-soft)}._selectCount_bbl5d_90{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--accent-active)}._bulkCopyBtn_bbl5d_96{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm)}._bulkCopyBtn_bbl5d_96:hover:not(:disabled){background:var(--accent-active)}._bulkCopyBtn_bbl5d_96:disabled{cursor:default;opacity:.5}._selectClearBtn_bbl5d_114{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm)}._selectClearBtn_bbl5d_114:hover:not(:disabled){background:var(--surface-alt)}._selectClearBtn_bbl5d_114:disabled{cursor:default;opacity:.5}._selectHint_bbl5d_131{font-size:var(--fs-sm);color:var(--text-muted)}._viewsBar_bbl5d_137{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}._chip_bbl5d_147{display:inline-flex;align-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface);overflow:hidden}._chipApply_bbl5d_156{border:none;background:transparent;padding:var(--space-1) var(--space-3);color:var(--text);font-size:var(--fs-sm)}._chipApply_bbl5d_156:hover{background:var(--surface-alt)}._chipActive_bbl5d_169{background:var(--accent-soft);color:var(--accent-active);font-weight:var(--fw-semibold)}._chipActive_bbl5d_169:hover{background:var(--accent-subtle)}._chipDelete_bbl5d_179{border:none;border-left:1px solid var(--border);background:transparent;padding:var(--space-1) var(--space-2);color:var(--text-muted);line-height:1}._chipDelete_bbl5d_179:hover:not(:disabled){background:var(--danger-soft);color:var(--danger-strong)}._chipDelete_bbl5d_179:disabled{cursor:default;opacity:.5}._saveViewBtn_bbl5d_198{border:1px dashed var(--border-strong);background:var(--surface);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);color:var(--text-muted);font-size:var(--fs-sm)}._saveViewBtn_bbl5d_198:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}._saveViewBtn_bbl5d_198:disabled{cursor:default;opacity:.5}._saveViewForm_bbl5d_217{display:inline-flex;align-items:center;gap:var(--space-2)}._saveViewInput_bbl5d_223{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--fs-sm)}._saveViewConfirm_bbl5d_230,._saveViewCancel_bbl5d_231{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm)}._saveViewConfirm_bbl5d_230:hover:not(:disabled),._saveViewCancel_bbl5d_231:hover{background:var(--surface-alt)}._saveViewConfirm_bbl5d_230:disabled{cursor:default;opacity:.5}._emptyBoard_bbl5d_250{display:flex;flex:1;align-items:flex-start;justify-content:center;padding:var(--space-6) var(--space-4);overflow-y:auto}._emptyCard_bbl5d_259{max-width:560px;width:100%;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-5);box-shadow:var(--shadow-sm)}._emptyTitle_bbl5d_269{margin:0 0 var(--space-2);font-size:var(--fs-lg);font-weight:var(--fw-semibold)}._emptyLead_bbl5d_275{margin:0 0 var(--space-4);color:var(--text-muted);line-height:1.6}._emptyAddBtn_bbl5d_281{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-semibold)}._emptyAddBtn_bbl5d_281:hover{background:var(--accent-active)}._emptyAi_bbl5d_295{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border)}._emptyAiNote_bbl5d_301{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--fs-sm);line-height:1.6}._emptyCopyBtn_bbl5d_308{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--fs-sm)}._emptyCopyBtn_bbl5d_308:hover{background:var(--surface-alt)}._board_bbl5d_320{display:flex;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-4);overflow-x:auto;flex:1;align-items:stretch;cursor:grab}._board_bbl5d_320:after{content:"";flex:0 0 var(--space-4)}._overlay_dbkt0_1{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:12vh 24px 24px;z-index:120}._palette_dbkt0_12{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:70vh;display:flex;flex-direction:column;overflow:hidden}._input_dbkt0_24{border:none;border-bottom:1px solid var(--border);padding:14px 16px;font-size:15px;width:100%;background:transparent;color:var(--text)}._input_dbkt0_24:focus-visible{border-bottom-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}._list_dbkt0_39{list-style:none;margin:0;padding:6px;overflow-y:auto}._option_dbkt0_46{padding:9px 12px;border-radius:6px;font-size:14px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._optionActive_dbkt0_56{background:var(--accent-soft);border-radius:var(--radius-sm)}._empty_dbkt0_61{color:var(--text-muted);padding:18px 16px;font-size:13px;margin:0}._view_ubr9h_2{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:12px 16px 0}._toolbar_ubr9h_12{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex:none}._cycleWarn_ubr9h_20{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);padding:8px 12px;margin-bottom:12px;font-size:13px;flex:none}._levels_ubr9h_2{display:flex;gap:var(--space-3);align-items:stretch;flex:1;overflow-x:auto;padding-bottom:var(--space-4);min-height:0}._level_ubr9h_2{display:flex;flex-direction:column;flex:0 0 248px;min-width:248px;max-width:288px;background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:var(--radius-md);min-height:0}._levelCycle_ubr9h_55{border-color:var(--warn-border)}._levelHeader_ubr9h_60{display:flex;align-items:center;justify-content:space-between;gap:var(--space-1);padding:12px 12px 8px;flex:none}._levelLabel_ubr9h_69{font-weight:var(--fw-semibold);font-size:var(--fs-sm);letter-spacing:.02em}._levelCount_ubr9h_75{font-size:var(--fs-sm);color:var(--text-muted);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);padding:0 8px}._levelList_ubr9h_85{display:flex;flex-direction:column;gap:8px;padding:4px 8px 12px;overflow-y:auto;flex:1;min-height:24px}._node_ubr9h_95{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}._node_ubr9h_95:hover{border-color:var(--accent-subtle);box-shadow:var(--shadow-hover)}._nodeCp_ubr9h_116{border-left-color:var(--accent);background:var(--accent-soft)}._nodeCycle_ubr9h_121{border-left-color:var(--danger);background:var(--warn-bg)}._statusproposed_ubr9h_127,._statusbacklog_ubr9h_130{border-left-color:var(--status-idle)}._statustodo_ubr9h_133{border-left-color:var(--text-muted)}._statusin_progress_ubr9h_136{border-left-color:var(--accent)}._statuspending_ubr9h_139{border-left-color:var(--priority-medium)}._nodeTop_ubr9h_143{display:flex;justify-content:space-between;gap:6px}._nodeId_ubr9h_149{font-size:11px;font-weight:700;color:var(--text-muted)}._cpTag_ubr9h_155{font-size:10px;font-weight:700;color:var(--accent)}._nodeTitle_ubr9h_161{font-weight:600;word-break:break-word}._deps_ubr9h_166{display:flex;flex-wrap:wrap;gap:4px;align-items:center}._depsLabel_ubr9h_173{font-size:10px;color:var(--text-muted)}._depChip_ubr9h_178{font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-alt);border-radius:var(--radius-sm);padding:0 5px}._pendingBadge_ubr9h_186{align-self:flex-start;font-size:10px;font-weight:700;color:var(--priority-medium-fg);background:var(--priority-medium-bg);border-radius:var(--radius-sm);padding:1px 6px}._empty_ubr9h_196{color:var(--text-muted);padding:var(--space-6) var(--space-5);text-align:center;flex:1;display:flex;align-items:center;justify-content:center;min-height:var(--space-6)}._copyBtn_ubr9h_208{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--accent)}._copyBtn_ubr9h_208:hover{background:var(--accent-soft)}._copyBtn_ubr9h_208:focus-visible{box-shadow:var(--focus-ring)}._root_y75j1_1{position:relative;display:inline-flex}._badge_y75j1_6{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius-pill);padding:5px 12px;min-height:28px;box-sizing:border-box;font-size:12px;font-weight:var(--fw-semibold);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}._badgeActive_y75j1_28{background:var(--accent-soft);color:var(--accent-active);border-color:var(--accent-subtle)}._badgeActive_y75j1_28:hover{border-color:var(--accent)}._badgeMuted_y75j1_39{opacity:.7}._badgeMuted_y75j1_39:hover{opacity:1}._badge_y75j1_6:focus-visible{box-shadow:var(--focus-ring-tight)}._badgeDot_y75j1_51{width:7px;height:7px;border-radius:50%;background:currentColor}._badgeMuted_y75j1_39 ._badgeDot_y75j1_51{background:var(--text-muted)}._popover_y75j1_62{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:min(360px,90vw);max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3)}._popoverTitle_y75j1_77{margin:0 0 var(--space-2);font-size:13px;font-weight:var(--fw-bold);color:var(--text)}._empty_y75j1_84{margin:0;font-size:13px;color:var(--text-muted)}._list_y75j1_90{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}._item_y75j1_99{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:8px 10px;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}._item_y75j1_99:hover{background:var(--surface-alt);border-color:var(--border)}._item_y75j1_99:focus-visible{box-shadow:var(--focus-ring-tight)}._itemHead_y75j1_124{display:flex;align-items:baseline;gap:6px}._itemId_y75j1_130{font-size:11px;font-weight:var(--fw-semibold);color:var(--accent-active);white-space:nowrap}._itemTitle_y75j1_137{font-size:13px;font-weight:var(--fw-semibold);color:var(--text)}._itemReason_y75j1_143{font-size:12px;color:var(--text)}._itemReasonMuted_y75j1_148{font-size:12px;color:var(--text-muted);font-style:italic}._itemAssignee_y75j1_154{font-size:11px;color:var(--text-muted)}._view_71x9d_1{flex:1;display:flex;overflow:hidden}._viewEmpty_71x9d_7{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:var(--space-6);padding:var(--space-5) var(--space-4) var(--space-6)}._sidebar_71x9d_19{flex:0 0 clamp(180px,28vw,280px);overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:12px}._sidebarTitle_71x9d_28{font-size:13px;font-weight:700;margin:0 0 8px}._navList_71x9d_34{list-style:none;margin:0;padding:0}._navList_71x9d_34>li{content-visibility:auto;contain-intrinsic-size:auto 28px}._navBtn_71x9d_47{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);font-variant-numeric:tabular-nums}._navBtn_71x9d_47:hover{background:var(--surface-alt)}._navBtn_71x9d_47:focus-visible{outline:none;box-shadow:var(--focus-ring)}._navBtnActive_71x9d_74{background:var(--accent-soft);color:var(--accent);font-weight:600}._navCount_71x9d_80{font-size:11px;color:var(--text-muted)}._navBtnActive_71x9d_74 ._navCount_71x9d_80{color:inherit}._detail_71x9d_90{flex:1;overflow-y:auto;padding:14px 18px}._day_71x9d_96{margin-bottom:20px}._dayHeader_71x9d_100{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--border);padding-bottom:4px;margin-bottom:8px}._date_71x9d_109{font-size:15px;font-weight:700}._count_71x9d_114{font-size:12px;color:var(--text-muted)}._entry_71x9d_119{display:flex;gap:10px;align-items:baseline;padding:3px 0;font-size:13px;content-visibility:auto;contain-intrinsic-size:auto 22px}._time_71x9d_131{flex:0 0 auto;color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}._taskId_71x9d_138{flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._member_71x9d_145{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;font-weight:600}._memberDot_71x9d_153{width:7px;height:7px;border-radius:50%}._memberhuman_71x9d_159{background:var(--human)}._memberai_71x9d_163{background:var(--ai)}._memberunknown_71x9d_167{background:var(--text-muted)}._message_71x9d_171{word-break:break-word}._empty_71x9d_175{color:var(--text-muted);padding:var(--space-5);font-size:var(--fs-sm);text-align:center}._diff_1xtfr_1{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:46vh;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;background:var(--surface)}._line_1xtfr_12{display:flex;white-space:pre-wrap;word-break:break-word;padding:0 8px}._sign_1xtfr_19{flex:0 0 16px;color:var(--text-muted);-webkit-user-select:none;user-select:none}._equal_1xtfr_25{color:var(--text)}._add_1xtfr_29{background:var(--success-soft);color:var(--success)}._remove_1xtfr_34{background:var(--danger-soft);color:var(--danger-strong)}._intro_u1sm3_1{color:var(--text-muted);margin:0 0 12px}._legend_u1sm3_8{display:flex;gap:14px;font-size:11px;color:var(--text-muted);margin:8px 0 0}._dirList_82mry_1{list-style:none;margin:0 0 4px;padding:6px;border:1px solid var(--border);border-radius:var(--radius-sm);max-height:200px;overflow-y:auto;background:var(--surface)}._dirBtn_82mry_12{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}._dirBtn_82mry_12:hover{background:var(--surface-alt)}._dirBtnActive_82mry_30{background:var(--accent-soft);color:var(--accent);font-weight:600}._preview_82mry_36{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted);word-break:break-all;margin:8px 0 0}._wrapper_e02fo_5{position:relative;display:block}._highlight_e02fo_6,._textarea_e02fo_7{font-family:ui-monospace,SFMono-Regular,Menlo,Courier New,monospace;font-size:13px;line-height:1.6;letter-spacing:normal;-moz-tab-size:4;tab-size:4;box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;white-space:pre-wrap;word-break:break-word;overflow-wrap:break-word;overflow:auto;resize:vertical}._highlight_e02fo_6{position:absolute;top:0;left:0;pointer-events:none;background:var(--surface);color:var(--text);-webkit-user-select:none;user-select:none;min-height:0;scrollbar-width:none}._highlight_e02fo_6::-webkit-scrollbar{display:none}._textarea_e02fo_7{position:relative;z-index:1;color:transparent;caret-color:var(--text);background:transparent;outline:none;min-height:360px}._textarea_e02fo_7:focus{border-color:var(--accent)}._textarea_e02fo_7::placeholder{color:var(--text-muted)}._tokenText_e02fo_106{color:inherit}._tokenHeading_e02fo_111{color:var(--accent);font-weight:700}._tokenBold_e02fo_116{color:var(--text);font-weight:700}._tokenItalic_e02fo_121{color:var(--text);font-style:italic}._tokenCode_e02fo_126{color:var(--accent);background:var(--surface-alt);border-radius:2px}._tokenCodeblock_e02fo_133,._tokenFence_e02fo_138{color:var(--text-muted)}._tokenListMarker_e02fo_143{color:var(--accent);font-weight:600}._tokenLink_e02fo_149{color:var(--accent);text-decoration:underline}._tokenBlockquote_e02fo_155{color:var(--text-muted);font-style:italic}._tokenHr_e02fo_161{color:var(--text-muted)}._view_hliei_1{flex:1;display:flex;overflow:hidden}._tree_hliei_8{flex:0 0 clamp(180px,28vw,280px);overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:12px}._treeTitle_hliei_17{font-size:13px;font-weight:700;margin:0 0 8px}._treeRoot_hliei_23,._treeChildren_hliei_24{list-style:none;margin:0;padding:0}._treeChildren_hliei_24{padding-left:14px}._dirName_hliei_34{display:block;font-size:12px;font-weight:600;color:var(--text-muted);padding:4px 6px}._fileBtn_hliei_42{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}._fileBtn_hliei_42:hover{background:var(--surface-alt)}._fileBtn_hliei_42:focus-visible{box-shadow:var(--focus-ring)}._fileBtnActive_hliei_67{background:var(--accent-soft);color:var(--accent);font-weight:600}._fileBtnActive_hliei_67:hover{background:var(--accent-soft)}._detail_hliei_78{flex:1;overflow-y:auto;padding:14px 18px;max-width:880px}._docPath_hliei_85{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted);margin:0 0 10px}._refs_hliei_92{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:14px}._refsTitle_hliei_100{font-size:12px;font-weight:700;margin:0 0 6px}._refsList_hliei_106{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}._refBtn_hliei_115{width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:baseline;gap:6px;transition:background var(--dur-fast) var(--ease)}._refBtn_hliei_115:hover{background:var(--accent-soft)}._refBtn_hliei_115:focus-visible{box-shadow:var(--focus-ring)}._refId_hliei_139{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted);flex:0 0 auto}._refStatus_hliei_146{margin-left:auto;font-size:11px;color:var(--text-muted);flex:0 0 auto}._markdown_hliei_153{font-size:14px;line-height:1.65;word-break:break-word}._markdown_hliei_153 pre{background:var(--surface-alt);padding:10px 12px;border-radius:var(--radius);overflow-x:auto;font-size:12px}._markdown_hliei_153 code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}._muted_hliei_172{color:var(--text-muted);font-size:13px}._broken_hliei_177{color:var(--danger);font-size:13px}._error_hliei_182{color:var(--danger);font-size:12px;margin:0 0 10px}._newDocBtn_hliei_188{display:block;width:100%;margin-bottom:8px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:6px 8px;font-size:12px;cursor:pointer}._newDocBtn_hliei_188:hover{background:var(--surface-alt)}._toolbar_hliei_201{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}._toolBtn_hliei_209{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:5px 12px;font-size:13px;color:var(--text);cursor:pointer}._toolBtn_hliei_209:hover{background:var(--surface-alt)}._toolBtn_hliei_209:disabled{opacity:.5;cursor:not-allowed}._toolBtnPrimary_hliei_221{background:var(--accent);border-color:var(--accent);color:#fff}._toolBtnPrimary_hliei_221:hover{background:var(--accent-hover)}._toolBtnDanger_hliei_228{border-color:var(--danger);color:var(--danger);background:var(--surface)}._confirm_hliei_234{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--danger)}._tabs_hliei_242{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:10px}._tab_hliei_242{border:none;background:transparent;padding:6px 12px;font-size:13px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent}._tab_hliei_242:hover{color:var(--text)}._tabActive_hliei_260{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}._editorWrapper_hliei_266{display:block;width:100%}._splitView_hliei_273{display:flex;gap:16px;align-items:flex-start}._splitPane_hliei_278{flex:1 1 0;min-width:0}._splitPreview_hliei_282{border-left:1px solid var(--border);padding-left:16px;align-self:stretch}@media(max-width:860px){._splitView_hliei_273{flex-direction:column}._splitPreview_hliei_282{border-left:none;border-top:1px solid var(--border);padding-left:0;padding-top:12px}}._editFooter_hliei_299{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}._dirty_hliei_307{margin-right:auto;font-size:12px;color:var(--text-muted)}._boundary_xnu0x_1{margin:16px;padding:16px 20px;background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--radius);color:var(--text)}._title_xnu0x_10{margin:0 0 6px;font-weight:600;color:var(--danger-strong)}._detail_xnu0x_16{margin:0 0 12px;font-size:13px;color:var(--text-muted)}._retry_xnu0x_22{border:1px solid var(--danger);background:var(--surface);color:var(--danger-strong);border-radius:var(--radius-sm);padding:4px 12px;font-size:13px;cursor:pointer}._retry_xnu0x_22:hover{background:var(--danger-soft)}._retry_xnu0x_22:focus-visible{box-shadow:var(--focus-ring)}._panel_bonm7_3{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:12px 14px;margin-bottom:14px}._title_bonm7_11{font-size:13px;font-weight:700;margin:0 0 10px;color:var(--text)}._notice_bonm7_19{font-size:13px;color:var(--text-muted)}._memberList_bonm7_25{display:flex;flex-direction:column;gap:8px}._memberCard_bonm7_31{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;background:var(--surface-alt)}._memberHeader_bonm7_38{display:flex;align-items:center;gap:8px;margin-bottom:6px}._memberId_bonm7_45{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700}._badgeOk_bonm7_52{font-size:11px;padding:1px 7px;border-radius:var(--radius-sm);background:var(--human-bg, #e6f4ea);color:var(--human, #1a7f37);font-weight:600}._badgeWarn_bonm7_62{font-size:11px;padding:1px 7px;border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--warn-fg, #7a5900);border:1px solid var(--warn-border);font-weight:600}._groupList_bonm7_73{display:flex;flex-direction:column;gap:6px}._group_bonm7_73{font-size:12px}._groupKind_bonm7_83{font-weight:700;margin-bottom:2px;color:var(--text)}._groupFix_bonm7_89{color:var(--text-muted);line-height:1.5;margin-bottom:4px}._warningPaths_bonm7_96{display:flex;flex-direction:column;gap:1px;margin-top:2px}._warningPath_bonm7_96{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted);padding-left:10px}._view_7aej0_1{flex:1;display:flex;min-height:0}._sidebar_7aej0_7{flex:0 0 clamp(180px,28vw,280px);border-right:1px solid var(--border);overflow-y:auto;padding:12px}._sectionTitle_7aej0_15{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px}._fileItem_7aej0_24{display:block;width:100%;text-align:left;border:none;background:transparent;padding:4px 6px;border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}._fileItem_7aej0_24:hover{background:var(--accent-soft)}._fileItem_7aej0_24:focus-visible{box-shadow:var(--focus-ring)}._fileItemActive_7aej0_47,._fileItemActive_7aej0_47:hover{background:var(--accent-soft);color:var(--accent)}._tree_7aej0_53{font-size:12px}._treeDir_7aej0_57{font-weight:600;padding:3px 0;color:var(--text-muted)}._catalogItem_7aej0_63{padding:4px 0;font-size:12px}._catalogName_7aej0_68{font-weight:700}._catalogDesc_7aej0_72{color:var(--text-muted)}._catalogGroup_7aej0_77{font-size:12px}._catalogGroupSummary_7aej0_81{cursor:pointer;padding:4px 6px;font-weight:700;border-radius:var(--radius-sm);list-style-position:inside;-webkit-user-select:none;user-select:none}._catalogGroupSummary_7aej0_81:hover{background:var(--surface-alt)}._catalogGroupSummary_7aej0_81:focus-visible{box-shadow:var(--focus-ring)}._catalogCount_7aej0_98{color:var(--text-muted);font-weight:400;font-size:var(--fs-xs)}._catalogGroup_7aej0_77 ._fileItem_7aej0_24{padding-left:16px}._main_7aej0_109{flex:1;display:flex;flex-direction:column;min-width:0;padding:12px 16px}._mainHeader_7aej0_117{display:flex;align-items:center;gap:10px;margin-bottom:8px}._mainPath_7aej0_124{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;flex:1;word-break:break-all}._editor_7aej0_131{flex:1;min-height:320px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;resize:none}._notice_7aej0_143{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;margin-top:8px}._confirmIntro_7aej0_153{color:var(--text-muted);font-size:13px;margin:0 0 12px}._globalBadge_7aej0_160{font-size:11px;font-weight:700;color:var(--blocked-external-fg);background:var(--blocked-external-bg);border-radius:var(--radius-sm);padding:1px 8px;margin-right:8px;white-space:nowrap}._globalWarn_7aej0_172{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:8px 12px;margin:0 0 12px;font-size:13px;font-weight:600}._footer_7aej0_182{display:flex;align-items:center;gap:10px;margin-top:8px}._error_7aej0_189{color:var(--danger);font-size:12px}._loadError_7aej0_195{color:var(--danger);font-size:12px;padding:4px 6px;margin-bottom:4px}._saved_7aej0_202{color:var(--human);font-size:12px}._btn_7aej0_207{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}._btn_7aej0_207:hover{background:var(--accent-soft)}._btn_7aej0_207:focus-visible{box-shadow:var(--focus-ring)}._btnPrimary_7aej0_224{background:var(--accent);border-color:var(--accent);color:#fff}._btnPrimary_7aej0_224:hover{background:var(--accent-hover);border-color:var(--accent-hover)}._btnPrimary_7aej0_224:active{background:var(--accent-active);border-color:var(--accent-active)}._btnPrimary_7aej0_224:disabled{opacity:.5;cursor:not-allowed}._empty_7aej0_245{color:var(--text-muted);margin:auto}._home_26qsz_1{display:flex;flex-direction:column;gap:16px;padding:16px}._intro_26qsz_8{display:flex;flex-direction:column;gap:2px}._title_26qsz_14{margin:0;font-size:18px}._lead_26qsz_19{margin:0;font-size:13px;color:var(--text-muted)}._allClear_26qsz_25{background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px 16px}._allClearTitle_26qsz_32{margin:0 0 2px;font-weight:600;color:var(--accent)}._allClearDetail_26qsz_38{margin:0;font-size:13px;color:var(--text-muted)}._hero_26qsz_44{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}._sectionTitle_26qsz_51{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;font-weight:600}._count_26qsz_60{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}._chain_26qsz_74{display:flex;flex-wrap:wrap;align-items:center;gap:6px}._arrow_26qsz_81{color:var(--text-muted);-webkit-user-select:none;user-select:none}._chip_26qsz_86{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);padding:5px 10px;cursor:pointer;font:inherit;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}._chip_26qsz_86:hover{background:var(--surface-alt)}._chip_26qsz_86:focus-visible{box-shadow:var(--focus-ring)}._chipNext_26qsz_109{border-color:var(--accent);background:var(--accent-soft)}._startBadge_26qsz_114{font-size:10px;font-weight:700;text-transform:uppercase;border-radius:var(--radius-sm);padding:0 5px;background:var(--accent);color:#fff}._chipId_26qsz_124{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._chipTitle_26qsz_130{font-size:13px;color:var(--text)}._grid_26qsz_135{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}._card_26qsz_141{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}._list_26qsz_148{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}._item_26qsz_157{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;border:none;background:transparent;border-radius:var(--radius-sm);padding:6px 8px;cursor:pointer;font:inherit}._item_26qsz_157:hover{background:var(--surface-alt)}._item_26qsz_157:focus-visible{box-shadow:var(--focus-ring)}._itemId_26qsz_179{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._itemTitle_26qsz_185{font-size:13px;color:var(--text)}._itemMeta_26qsz_190{font-size:11px;color:var(--text-muted)}._wipRow_26qsz_195{font-size:13px;color:var(--text);border-left:3px solid var(--warn-border);padding:4px 8px;background:var(--warn-bg);border-radius:var(--radius-sm)}._empty_26qsz_204{margin:0;font-size:13px;color:var(--text-muted)}._cycle_26qsz_210{margin:0;font-size:13px;color:var(--danger-strong)}._pinnedSection_26qsz_217{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}._pinnedRow_26qsz_224{display:flex;align-items:center;gap:4px}._pinnedRow_26qsz_224 ._item_26qsz_157{flex:1}._pinBtn_26qsz_234{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;opacity:.7;transition:opacity var(--dur) var(--ease)}._pinBtn_26qsz_234:hover{opacity:1;background:var(--surface-alt)}._pinBtn_26qsz_234:focus-visible{box-shadow:var(--focus-ring)}._pinnedDoneNote_26qsz_259{margin:6px 0 0;font-size:11px;color:var(--text-muted)}._view_z2hgn_1{flex:1;display:flex;overflow:hidden}._viewEmpty_z2hgn_7{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;min-height:var(--space-6);padding:var(--space-5) var(--space-4) var(--space-6)}._sidebar_z2hgn_19{flex:0 0 clamp(180px,28vw,280px);overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:12px}._sidebarTitle_z2hgn_28{font-size:13px;font-weight:700;margin:0 0 8px}._sidebarTitle_z2hgn_28+._sidebarTitle_z2hgn_28,._navList_z2hgn_35+._sidebarTitle_z2hgn_28,._sideEmpty_z2hgn_36+._sidebarTitle_z2hgn_28{margin-top:16px}._sideEmpty_z2hgn_36{font-size:12px;color:var(--text-muted);margin:0}._navList_z2hgn_35{list-style:none;margin:0;padding:0}._navBtn_z2hgn_52{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:4px 6px;border-radius:var(--radius-sm);cursor:pointer}._navBtn_z2hgn_52:hover{background:var(--surface-alt)}._navBtn_z2hgn_52:focus-visible{box-shadow:var(--focus-ring)}._navBtnActive_z2hgn_76{background:var(--accent-soft);color:var(--accent);font-weight:600}._navLabel_z2hgn_82{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._navCount_z2hgn_88{flex:0 0 auto;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}._navBtnActive_z2hgn_76 ._navCount_z2hgn_88{color:inherit}._detail_z2hgn_100{flex:1;overflow-y:auto;padding:14px 18px}._sectionTitle_z2hgn_106{font-size:13px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 8px}._histStatus_z2hgn_115{margin-left:auto;flex:0 0 auto;font-size:11px;color:var(--text-muted)}._milestone_z2hgn_122{display:flex;align-items:center;gap:12px;padding:10px 12px;border-left:3px solid var(--border);background:var(--surface)}._milestoneactive_z2hgn_131{border-left-color:var(--accent)}._milestonedone_z2hgn_135{border-left-color:var(--human)}._milestoneplanned_z2hgn_139{border-left-color:var(--text-muted)}._msInfo_z2hgn_143{flex:1;min-width:0}._msTitle_z2hgn_148{font-weight:700}._msStatus_z2hgn_152{font-size:11px;color:var(--text-muted)}._msProgress_z2hgn_157{flex:0 0 180px}._month_z2hgn_161{margin-bottom:16px}._monthHeader_z2hgn_165{font-size:var(--fs-xl);font-weight:700;border-bottom:1px solid var(--border);padding-bottom:4px;margin-bottom:6px}._histEntry_z2hgn_173{display:flex;gap:10px;padding:3px 0;font-size:13px;cursor:pointer}._histEntry_z2hgn_173:hover{color:var(--accent)}._histId_z2hgn_185{flex:0 0 auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._histTitle_z2hgn_192{font-weight:600;flex:0 0 auto}._histSummary_z2hgn_197{color:var(--text-muted);word-break:break-word}._month_z2hgn_161 ._histTitle_z2hgn_192{flex:0 0 16em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._month_z2hgn_161 ._histSummary_z2hgn_197{flex:1 1 0;min-width:0}._empty_z2hgn_218{color:var(--text-muted);padding:var(--space-5);text-align:center}._section_yrpf3_1{margin-bottom:18px}._sectionTitle_yrpf3_5{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px}._modeBox_yrpf3_14{background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius);padding:12px;margin-bottom:18px}._memberRow_yrpf3_22{display:flex;gap:8px;align-items:center;margin-bottom:6px}._memberRow_yrpf3_22 input,._memberRow_yrpf3_22 select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px}._memberRow_yrpf3_22 input:focus-visible,._memberRow_yrpf3_22 select:focus-visible{box-shadow:var(--focus-ring)}._memberId_yrpf3_41{flex:1}._removeBtn_yrpf3_45{border:1px solid var(--border);background:var(--surface);color:var(--danger);border-radius:var(--radius-sm);padding:4px 10px}._removeBtn_yrpf3_45:focus-visible{box-shadow:var(--focus-ring)}._addBtn_yrpf3_57{border:1px dashed var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:5px 12px;color:var(--accent);margin-top:4px}._addBtn_yrpf3_57:focus-visible{box-shadow:var(--focus-ring)}._pathNote_yrpf3_71{font-size:12px;color:var(--text-muted);margin:6px 0 0;line-height:1.5}._colRow_yrpf3_79{display:flex;gap:8px;align-items:center;margin-bottom:6px}._colRow_yrpf3_79 input[type=text],._colRow_yrpf3_79 input[type=number]{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 8px}._colRow_yrpf3_79 input:focus-visible{box-shadow:var(--focus-ring)}._colId_yrpf3_97{flex:1;min-width:0}._viewName_yrpf3_103{flex:1;min-width:0;font-size:var(--fs-sm)}._colWip_yrpf3_109{flex:0 0 64px}._colCheck_yrpf3_113{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);white-space:nowrap}._moveBtn_yrpf3_122{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:var(--radius-sm);padding:4px 8px;line-height:1}._moveBtn_yrpf3_122:disabled{opacity:.4;cursor:default}._moveBtn_yrpf3_122:focus-visible{box-shadow:var(--focus-ring)}._advanced_yrpf3_140 summary{cursor:pointer;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:8px}._jsonEditor_yrpf3_148{width:100%;min-height:160px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;resize:vertical}._jsonEditor_yrpf3_148:focus-visible{box-shadow:var(--focus-ring)}._saved_yrpf3_163{color:var(--human);font-size:12px}._reloadBtn_yrpf3_169{margin-left:6px;padding:2px 8px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);cursor:pointer}._reloadBtn_yrpf3_169:focus-visible{box-shadow:var(--focus-ring)}._migrateBox_yrpf3_185{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface-alt);padding:10px 12px;margin:12px 0}._migrateTitle_yrpf3_194{font-size:13px;font-weight:700;margin:0 0 6px}._migrateItem_yrpf3_200{font-size:13px;margin:4px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}._migrateItem_yrpf3_200 select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 6px;background:var(--surface)}._migrateItem_yrpf3_200 select:focus-visible{box-shadow:var(--focus-ring)}._migrateActions_yrpf3_220{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}._list_uhebt_1{margin:0;display:flex;flex-direction:column;gap:4px}._row_uhebt_8{display:flex;align-items:baseline;gap:12px;padding:4px 0}._keys_uhebt_15{flex:0 0 130px;margin:0;text-align:right}._kbd_uhebt_21{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:1px 6px;color:var(--text)}._desc_uhebt_31{margin:0;font-size:13px;color:var(--text)}._aiSection_uhebt_38{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}._aiTitle_uhebt_44{margin:0 0 2px;font-size:13px;font-weight:600}._aiDesc_uhebt_50{margin:0 0 10px;font-size:12px;color:var(--text-muted)}._copyBtn_uhebt_56{border:1px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:var(--radius-sm);padding:5px 12px;font-size:13px;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}._copyBtn_uhebt_56:hover{background:var(--accent-soft)}._copyBtn_uhebt_56:focus-visible{box-shadow:var(--focus-ring)}._view_akezq_1{flex:1;overflow:auto;padding:12px 16px 16px;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-content:start}@media(max-width:1200px){._view_akezq_1{grid-template-columns:1fr}}._card_akezq_18{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:12px 14px}._cardHead_akezq_26{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}._cardTitle_akezq_34{font-size:14px;font-weight:700;margin:0 0 10px}._cardHead_akezq_26 ._cardTitle_akezq_34{margin-bottom:0}._note_akezq_44{font-size:12px;color:var(--text-muted);margin:4px 0 10px;line-height:1.5}._metrics_akezq_52{display:flex;gap:var(--space-4);flex-wrap:wrap;align-items:flex-end}._metric_akezq_52{display:flex;flex-direction:column;gap:2px}._metricValue_akezq_65{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}._metricLabel_akezq_72,._metricSub_akezq_77{font-size:12px;color:var(--text-muted)}._toggle_akezq_83{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}._toggleBtn_akezq_90{border:none;background:var(--surface-alt);color:var(--text);font-size:12px;padding:4px 10px;cursor:pointer}._toggleBtn_akezq_90+._toggleBtn_akezq_90{border-left:1px solid var(--border)}._toggleActive_akezq_103{background:var(--accent);color:#fff}._chartWrap_akezq_109{margin-top:10px;overflow-x:auto}._chart_akezq_109{display:block;width:100%;max-height:160px;height:auto}._bar_akezq_121{fill:var(--accent)}._barCount_akezq_125{fill:var(--text-muted);font-size:10px;font-variant-numeric:tabular-nums}._barLabel_akezq_131{fill:var(--text-muted);font-size:9px;font-variant-numeric:tabular-nums}._table_akezq_138{width:100%;border-collapse:collapse;font-size:13px}._table_akezq_138 caption{text-align:left}._table_akezq_138 th,._table_akezq_138 td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}._table_akezq_138 th{font-size:11px;color:var(--text-muted);font-weight:600}._table_akezq_138 td{font-variant-numeric:tabular-nums}._bId_akezq_166{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._empty_akezq_172{color:var(--text-muted);padding:var(--space-6) var(--space-5);text-align:center;grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:var(--space-6)}._heatmapWrap_akezq_186{margin-top:10px;overflow-x:auto}._heatmapGrid_akezq_191{display:grid;grid-template-columns:28px repeat(24,1fr);gap:2px;min-width:420px}._heatmapHourLabel_akezq_199{font-size:9px;color:var(--text-muted);text-align:center;padding-bottom:2px;font-variant-numeric:tabular-nums}._heatmapDowLabel_akezq_207{font-size:10px;color:var(--text-muted);display:flex;align-items:center;justify-content:flex-end;padding-right:4px}._heatmapCell_akezq_216{aspect-ratio:1;border-radius:2px;background:var(--accent);opacity:var(--cell-alpha, .06);min-height:10px}._srOnly_akezq_226{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}._overlay_1mlzx_1{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;justify-content:flex-end;z-index:90}._panel_1mlzx_10{background:var(--surface);width:100%;max-width:640px;height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-panel)}._header_1mlzx_20{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}._id_1mlzx_28{font-size:12px;font-weight:700;color:var(--text-muted)}._title_1mlzx_34{font-size:var(--fs-xl);font-weight:700;flex:1;word-break:break-word}._copyBtn_1mlzx_41{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:5px 10px;font-size:12px;color:var(--accent);white-space:nowrap}._copyBtn_1mlzx_41:hover{background:var(--accent-soft)}._copyBtn_1mlzx_41:focus-visible{box-shadow:var(--focus-ring)}._close_1mlzx_59{border:none;background:transparent;font-size:20px;color:var(--text-muted);line-height:1;padding:4px 8px}._close_1mlzx_59:hover{color:var(--text)}._tabs_1mlzx_72{display:flex;gap:2px;padding:8px 18px 0;border-bottom:1px solid var(--border)}._tab_1mlzx_72{border:none;background:transparent;padding:8px 14px;color:var(--text-muted);border-bottom:2px solid transparent;font-weight:600}._tab_1mlzx_72:hover{color:var(--text)}._tab_1mlzx_72:focus-visible{box-shadow:var(--focus-ring-tight)}._tabActive_1mlzx_96{color:var(--accent);border-bottom-color:var(--accent)}._body_1mlzx_101{flex:1;overflow-y:auto;padding:18px}._markdown_1mlzx_107{line-height:1.7;word-break:break-word}._markdown_1mlzx_107 h1,._markdown_1mlzx_107 h2,._markdown_1mlzx_107 h3{margin-top:1.2em}._markdown_1mlzx_107 code{background:var(--surface-alt);border-radius:3px;padding:1px 4px;font-size:.9em}._markdown_1mlzx_107 pre{background:var(--surface-alt);border-radius:var(--radius-sm);padding:10px;overflow-x:auto}._markdown_1mlzx_107 table{border-collapse:collapse}._markdown_1mlzx_107 th,._markdown_1mlzx_107 td{border:1px solid var(--border);padding:4px 8px}._editor_1mlzx_142{width:100%;min-height:360px;height:100%;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;resize:vertical}._timeline_1mlzx_155{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}._entry_1mlzx_164{display:flex;gap:10px;border-left:2px solid var(--border);padding-left:12px;position:relative}._entry_1mlzx_164:before{content:"";position:absolute;left:-5px;top:4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}._entryMeta_1mlzx_183{flex:0 0 auto;font-size:11px;color:var(--text-muted);min-width:120px}._entryMember_1mlzx_190{font-weight:700;color:var(--text)}._entryMessage_1mlzx_195{word-break:break-word}._mention_1mlzx_200{color:var(--accent);font-weight:600}._mentionSelf_1mlzx_205{background:var(--accent-soft);border-radius:var(--radius-sm);padding:0 3px}._emptyTimeline_1mlzx_211{color:var(--text-muted);font-size:13px}._timelineKind_1mlzx_217{display:inline-block;font-size:10px;font-weight:700;border-radius:var(--radius-sm);padding:0 5px;color:#fff;background:var(--text-muted);vertical-align:middle}._timelineKind_1mlzx_217[data-kind=log]{background:var(--accent)}._timelineKind_1mlzx_217[data-kind=comment]{background:var(--text-muted)}._timelineKind_1mlzx_217[data-kind=commit]{background:var(--border-strong);color:var(--text)}._footer_1mlzx_241{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--border)}._dirty_1mlzx_249{color:var(--priority-medium-fg);font-size:12px}._error_1mlzx_254{color:var(--danger);font-size:12px;flex:1}._spacer_1mlzx_260{flex:1}._btn_1mlzx_264{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:7px 14px}._btn_1mlzx_264:hover{background:var(--surface-alt)}._btn_1mlzx_264:focus-visible{box-shadow:var(--focus-ring)}._btnPrimary_1mlzx_279{background:var(--accent);border-color:var(--accent);color:#fff}._btnPrimary_1mlzx_279:disabled{opacity:.5;cursor:not-allowed}._commentInput_1mlzx_290{display:flex;gap:8px;align-items:center;margin-top:12px;border-top:1px solid var(--border);padding-top:12px}._commentInput_1mlzx_290 select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px}._commentField_1mlzx_305{flex:1;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 9px}._docsHint_1mlzx_313{font-size:12px;color:var(--text-muted);background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:6px 10px;margin:0 0 10px}._docsList_1mlzx_323{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:2px}._docRow_1mlzx_332{display:flex;align-items:center;gap:8px}._docLink_1mlzx_338{flex:1;text-align:left;border:none;background:transparent;color:var(--accent);padding:5px 6px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._docLink_1mlzx_338:hover{background:var(--surface-alt)}._docLink_1mlzx_338:focus-visible{box-shadow:var(--focus-ring)}._docLinkActive_1mlzx_361{background:var(--accent-soft)}._docBroken_1mlzx_365{font-size:11px;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);padding:1px 6px;flex:0 0 auto}._docRemove_1mlzx_374{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:2px 8px;color:var(--text-muted);cursor:pointer;flex:0 0 auto}._docRemove_1mlzx_374:focus-visible{box-shadow:var(--focus-ring)}._docRemove_1mlzx_374:disabled{opacity:.4;cursor:not-allowed}._docsActions_1mlzx_393{margin:4px 0 10px}._docsPicker_1mlzx_397{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;margin-bottom:12px;max-height:200px;overflow-y:auto;background:var(--surface-alt)}._docsPreview_1mlzx_407{border-top:2px solid var(--border);padding-top:10px}._docsPreviewPath_1mlzx_412{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted);margin:0 0 8px}._metaSection_1mlzx_420{margin-bottom:20px}._metaSection_1mlzx_420 select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;background:var(--surface);color:var(--text);font-size:13px}._metaSection_1mlzx_420 select:disabled{opacity:.5;cursor:not-allowed}._metaLabel_1mlzx_438{font-size:12px;font-weight:700;color:var(--text-muted);margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em}._depId_1mlzx_447{flex:1;font-size:13px;color:var(--text);padding:5px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}._btnDanger_1mlzx_456{border-color:var(--danger);color:var(--danger);background:var(--surface)}._btnDanger_1mlzx_456:hover{background:var(--surface-alt)}._btnDanger_1mlzx_456:focus-visible{box-shadow:var(--focus-ring)}._btnDanger_1mlzx_456:disabled{opacity:.4;cursor:not-allowed}._deleteConfirm_1mlzx_476{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--danger)}._view_1hota_1{flex:1;display:flex;overflow:hidden}._list_1hota_8{flex:0 0 clamp(180px,28vw,280px);display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}._search_1hota_18{padding:12px 12px 8px;border-bottom:1px solid var(--border)}._searchInput_1hota_23{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);font-size:13px;padding:6px 8px}._searchInput_1hota_23:focus-visible{outline:none;box-shadow:var(--focus-ring)}._listScroll_1hota_39{flex:1;overflow-y:auto;padding:8px 12px 12px}._taskList_1hota_45{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}._taskList_1hota_45>li{content-visibility:auto;contain-intrinsic-size:auto 44px}._taskBtn_1hota_61{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:13px;padding:5px 6px;border-radius:var(--radius-sm);cursor:pointer;overflow:hidden;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}._taskBtn_1hota_61:hover{background:var(--surface-alt)}._taskBtn_1hota_61:focus-visible{box-shadow:var(--focus-ring)}._taskBtnActive_1hota_84{background:var(--accent-soft);color:var(--accent);font-weight:600}._taskBtnActive_1hota_84:hover{background:var(--accent-soft)}._taskId_1hota_94{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._taskTitle_1hota_100{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._taskTime_1hota_107{display:block;font-size:10px;color:var(--text-muted)}._detail_1hota_114{flex:1;overflow-y:auto;padding:14px 18px;max-width:880px}._detailHeader_1hota_121{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}._detailHeadText_1hota_128{flex:1;min-width:0}._detailTitle_1hota_133{font-size:16px;font-weight:700;margin:0 0 4px;word-break:break-word}._meta_1hota_140{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:11px;color:var(--text-muted);margin:0}._metaId_1hota_149{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}._restoreBtn_1hota_153{flex:0 0 auto;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:600;padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease)}._restoreBtn_1hota_153:hover:not(:disabled){background:var(--accent-hover)}._restoreBtn_1hota_153:focus-visible{outline:none;box-shadow:var(--focus-ring)}._restoreBtn_1hota_153:disabled{opacity:.5;cursor:default}._diffWrap_1hota_181{margin-bottom:14px}._diffTitle_1hota_185,._previewTitle_1hota_186{font-size:12px;font-weight:700;margin:0 0 6px}._previewTitle_1hota_186{margin-top:14px}._diff_1hota_181{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:40vh;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;background:var(--surface)}._line_1hota_207{display:flex;white-space:pre-wrap;word-break:break-word;padding:0 8px}._sign_1hota_214{flex:0 0 16px;color:var(--text-muted);-webkit-user-select:none;user-select:none}._equal_1hota_220{color:var(--text)}._add_1hota_224{background:var(--success-soft);color:var(--success)}._remove_1hota_229{background:var(--danger-soft);color:var(--danger-strong)}._legend_1hota_234{display:flex;gap:14px;font-size:11px;color:var(--text-muted);margin:8px 0 0}._markdown_1hota_242{font-size:14px;line-height:1.65;word-break:break-word}._markdown_1hota_242 pre{background:var(--surface-alt);padding:10px 12px;border-radius:var(--radius);overflow-x:auto;font-size:12px}._markdown_1hota_242 code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}._muted_1hota_261{color:var(--text-muted);font-size:13px}._error_1hota_266{color:var(--danger);font-size:12px;margin:0 0 10px}._banner_1uu1k_1{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius);margin:0 16px 12px;padding:8px 12px}._summary_1uu1k_9{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;list-style:none}._summary_1uu1k_9::-webkit-details-marker{display:none}._icon_1uu1k_22{font-size:15px}._list_1uu1k_26{margin:8px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:13px}._item_1uu1k_35{color:var(--text)}._kind_1uu1k_39{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;border-radius:var(--radius-sm);padding:0 5px;margin-right:6px;background:var(--warn-border);color:#fff}._path_1uu1k_51{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}._renameBtn_1uu1k_57{margin-left:8px;border:1px solid var(--accent);background:var(--surface);color:var(--accent);border-radius:var(--radius-sm);padding:1px 8px;font-size:11px;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}._renameBtn_1uu1k_57:hover{background:var(--accent-soft)}._renameBtn_1uu1k_57:active{background:var(--accent-subtle)}._renameBtn_1uu1k_57:focus-visible{box-shadow:var(--focus-ring)}._app_168tj_1{display:flex;flex-direction:column;height:100%}._main_168tj_8{flex:1;display:flex;flex-direction:column;min-height:0}._header_168tj_15{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border)}._brand_168tj_26{font-size:18px;font-weight:var(--fw-bold);letter-spacing:.02em}._tabs_168tj_32{display:flex;gap:2px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:thin}._tab_168tj_32{flex:0 0 auto;white-space:nowrap;border:none;background:transparent;padding:8px 14px;color:var(--text-muted);border-bottom:2px solid transparent;font-weight:600;transition:color var(--dur) var(--ease)}._tab_168tj_32:hover{color:var(--text)}._tab_168tj_32:focus-visible{box-shadow:var(--focus-ring-tight)}._tabActive_168tj_64{color:var(--accent);border-bottom-color:var(--accent)}._project_168tj_69{color:var(--text-muted);font-size:13px}._spacer_168tj_74{flex:1}._status_168tj_78{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}._dot_168tj_86{width:8px;height:8px;border-radius:50%}._dotOn_168tj_92{background:var(--human);animation:_dotPulse_168tj_1 1.8s var(--ease) infinite}._dotOff_168tj_97{background:transparent;border:1.5px solid var(--text-muted)}@keyframes _dotPulse_168tj_1{0%,to{opacity:1}50%{opacity:.45}}._markAllReadBtn_168tj_113{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-subtle);border-radius:var(--radius-pill);padding:3px 10px;min-height:28px}._markAllReadBtn_168tj_113:hover{background:var(--accent-subtle)}._viewerSelect_168tj_132{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;min-height:32px;background:var(--surface);color:var(--text);max-width:200px}._langSelect_168tj_143{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;min-height:32px;background:var(--surface);color:var(--text)}._settingsBtn_168tj_152{display:inline-flex;align-items:center;min-height:32px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:8px 14px}._settingsBtn_168tj_152:hover{background:var(--surface-alt)}._addBtn_168tj_167{display:inline-flex;align-items:center;min-height:32px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 16px;font-weight:600}._addBtn_168tj_167:hover{background:var(--accent-hover)}._addBtn_168tj_167:active{transform:translateY(1px)}._banner_168tj_187{background:var(--danger);color:#fff;padding:8px 16px;font-size:13px;display:flex;align-items:center;gap:10px}._bannerClose_168tj_197{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.6);color:#fff;border-radius:3px;padding:1px 8px}._center_168tj_206{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted)}._app_156sn_1{display:flex;flex-direction:column;height:100%}._header_156sn_7{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}._brand_156sn_16{font-size:18px;font-weight:800;letter-spacing:.02em}._mode_156sn_22{color:var(--text-muted);font-size:13px}._spacer_156sn_27{flex:1}._status_156sn_31{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}._dot_156sn_39{width:8px;height:8px;border-radius:50%}._dotOn_156sn_45{background:var(--human)}._dotOff_156sn_49{background:var(--priority-low)}._langSelect_156sn_53{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px;font-size:12px;background:var(--surface);color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}._langSelect_156sn_53:focus-visible{box-shadow:var(--focus-ring)}._banner_156sn_69{background:var(--danger);color:#fff;padding:8px 16px;font-size:13px}._center_156sn_77{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}._main_156sn_85{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:24px;max-width:980px}._sectionTitle_156sn_95{font-size:15px;font-weight:700;margin:0 0 10px}._cards_156sn_102{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}._card_156sn_102{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:12px 14px;transition:box-shadow var(--dur) var(--ease)}._card_156sn_102:hover{box-shadow:var(--shadow-hover)}._cardName_156sn_121{font-size:14px;font-weight:700;margin:0}._cardDir_156sn_127{color:var(--text-muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin:2px 0 10px}._counts_156sn_134{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0}._count_156sn_134{display:flex;align-items:baseline;gap:4px}._count_156sn_134 dt{font-size:11px;color:var(--text-muted)}._count_156sn_134 dd{margin:0;font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}._badges_156sn_159{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}._badgeWip_156sn_166{background:var(--danger);color:#fff;font-size:11px;border-radius:var(--radius-sm);padding:2px 8px}._badgeWarn_156sn_174{background:var(--warn-bg);border:1px solid var(--warn-border);font-size:11px;border-radius:var(--radius-sm);padding:2px 8px}._tableWrap_156sn_183{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}._table_156sn_183{width:100%;border-collapse:collapse;font-size:13px}._table_156sn_183 th,._table_156sn_183 td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}._table_156sn_183 th{font-size:11px;color:var(--text-muted);font-weight:600}._taskId_156sn_211{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text-muted)}._empty_156sn_217{color:var(--text-muted);font-size:13px;padding:12px 0}