reviw 1.4.0 → 1.5.0

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.
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { dirname as dirname$2134, join as join$2108, resolve as resolve$2153, extname as extname$2141, basename as basename$2151 } from "node:path";
3
- import { spawnSync as spawnSync$2229, execSync as execSync$2196, spawn as spawn$2224 } from "node:child_process";
4
- import { createHash as createHash$2179 } from "node:crypto";
5
- import { createServer as createServer$2158 } from "node:http";
6
- import { statSync as statSync$2247, unwatchFile as unwatchFile$2184, readdirSync as readdirSync$2209, existsSync as existsSync$2117, rmSync as rmSync$2218, mkdtempSync as mkdtempSync$2199, appendFileSync as appendFileSync$2115, createReadStream as createReadStream$2251, writeFileSync as writeFileSync$2112, unlinkSync as unlinkSync$2119, readFileSync as readFileSync$2122, watchFile as watchFile$2285, mkdirSync as mkdirSync$2127 } from "node:fs";
7
- import { tmpdir as tmpdir$2105, homedir as homedir$2124 } from "node:os";
2
+ import { dirname as dirname$1978, join as join$1952, resolve as resolve$1997, extname as extname$1985, basename as basename$1995 } from "node:path";
3
+ import { spawnSync as spawnSync$2074, execSync as execSync$2041, spawn as spawn$2069 } from "node:child_process";
4
+ import { createHash as createHash$2023 } from "node:crypto";
5
+ import { createServer as createServer$2002 } from "node:http";
6
+ import { statSync as statSync$2092, unwatchFile as unwatchFile$2028, readdirSync as readdirSync$2054, existsSync as existsSync$1961, rmSync as rmSync$2063, mkdtempSync as mkdtempSync$2044, appendFileSync as appendFileSync$1959, createReadStream as createReadStream$2096, writeFileSync as writeFileSync$1956, unlinkSync as unlinkSync$1963, readFileSync as readFileSync$1966, watchFile as watchFile$2130, mkdirSync as mkdirSync$1971 } from "node:fs";
7
+ import { tmpdir as tmpdir$1949, homedir as homedir$1968 } from "node:os";
8
8
  class $PanicError extends Error {}
9
9
  function $panic() {
10
10
  throw new $PanicError();
@@ -12,22 +12,6 @@ function $panic() {
12
12
  function _M0TPB13StringBuilder(param0) {
13
13
  this.val = param0;
14
14
  }
15
- function $bound_check(arr, index) {
16
- if (index < 0 || index >= arr.length) throw new Error("Index out of bounds");
17
- }
18
- function _M0TPC16string10StringView(param0, param1, param2) {
19
- this.str = param0;
20
- this.start = param1;
21
- this.end = param2;
22
- }
23
- function _M0TPB13SourceLocRepr(param0, param1, param2, param3, param4, param5) {
24
- this.pkg = param0;
25
- this.filename = param1;
26
- this.start_line = param2;
27
- this.start_column = param3;
28
- this.end_line = param4;
29
- this.end_column = param5;
30
- }
31
15
  function $compare_int(a, b) {
32
16
  return (a >= b) - (a <= b);
33
17
  }
@@ -43,10 +27,18 @@ const _M0FPB12random__seed = () => {
43
27
  function _M0TPB6Hasher(param0) {
44
28
  this.acc = param0;
45
29
  }
30
+ function _M0TPC16string10StringView(param0, param1, param2) {
31
+ this.str = param0;
32
+ this.start = param1;
33
+ this.end = param2;
34
+ }
46
35
  const _M0FPB19int__to__string__js = (x, radix) => {
47
36
  return x.toString(radix);
48
37
  };
49
- function _M0TPC13ref3RefGiE(param0) {
38
+ function $bound_check(arr, index) {
39
+ if (index < 0 || index >= arr.length) throw new Error("Index out of bounds");
40
+ }
41
+ function _M0TPB8MutLocalGiE(param0) {
50
42
  this.val = param0;
51
43
  }
52
44
  function $make_array_len_and_init(a, b) {
@@ -55,7 +47,7 @@ function $make_array_len_and_init(a, b) {
55
47
  return arr;
56
48
  }
57
49
  const _M0MPB7JSArray4push = (arr, val) => { arr.push(val); };
58
- function _M0TPC13ref3RefGORPC16string10StringViewE(param0) {
50
+ function _M0TPB8MutLocalGORPC16string10StringViewE(param0) {
59
51
  this.val = param0;
60
52
  }
61
53
  function _M0TPB3MapGssE(param0, param1, param2, param3, param4, param5, param6) {
@@ -90,6 +82,9 @@ _M0DTPC16option6OptionGRPB5ArrayGsEE4Some.prototype.$tag = 1;
90
82
  function _M0TPC13ref3RefGsE(param0) {
91
83
  this.val = param0;
92
84
  }
85
+ function _M0TPC13ref3RefGiE(param0) {
86
+ this.val = param0;
87
+ }
93
88
  function _M0TP36kazuph5reviw4core13ReviwQuestion(param0, param1, param2, param3, param4) {
94
89
  this.id = param0;
95
90
  this.question = param1;
@@ -214,6 +209,7 @@ function _M0TP36kazuph5reviw4core12ReviewResult(param0, param1, param2, param3,
214
209
  this.decision = param6;
215
210
  this.action = param7;
216
211
  }
212
+ const _M0FP36kazuph5reviw6server21json__strip__decision = (s) => { try { const o = JSON.parse(s); delete o.decision; delete o.action; return JSON.stringify(o); } catch(e) { return s; } };
217
213
  const _M0FP36kazuph5reviw6server12set__timeout = (cb, ms) => setTimeout(cb, ms);
218
214
  const _M0FP36kazuph5reviw6server15js__stdio__pipe = () => ({ stdio: "pipe" });
219
215
  const _M0FP36kazuph5reviw6server15try__call__bool = (fn) => { try { return fn(); } catch(e) { return false; } };
@@ -314,144 +310,147 @@ function _M0TP36kazuph5reviw6server13ServerContext(param0, param1, param2, param
314
310
  this.finished = param9;
315
311
  }
316
312
  const _M0FP092moonbitlang_2fcore_2fbuiltin_2fStringBuilder_24as_24_40moonbitlang_2fcore_2fbuiltin_2eLogger = { method_0: _M0IPB13StringBuilderPB6Logger13write__string, method_1: _M0IP016_24default__implPB6Logger16write__substringGRPB13StringBuilderE, method_2: _M0IPB13StringBuilderPB6Logger11write__view, method_3: _M0IPB13StringBuilderPB6Logger11write__char };
317
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS557 = ":";
318
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558 = "#";
319
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559 = "'";
320
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560 = "\"";
321
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561 = "\n";
322
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562 = "[";
323
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563 = "]";
324
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564 = "{";
325
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565 = "}";
326
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566 = ",";
327
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567 = "&";
328
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568 = "*";
329
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569 = "!";
330
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570 = "|";
331
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571 = ">";
332
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572 = "%";
333
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573 = "@";
334
- const _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS638 = "\n";
335
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS661 = "- ";
336
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS662 = " -";
337
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS663 = " ";
338
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS664 = " ";
339
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS666 = "- ";
340
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS667 = " ";
341
- const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS671 = "- ";
342
- const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS672 = " ";
343
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS691 = "<details";
344
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS692 = "<div";
345
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS693 = "<section";
346
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS694 = "<article";
347
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS695 = "<aside";
348
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS696 = "<nav";
349
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS697 = "<header";
350
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS698 = "<footer";
351
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS700 = "#";
352
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS701 = "```";
353
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS702 = ">";
354
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS703 = "- ";
355
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS704 = "* ";
356
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS705 = "<";
357
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS706 = "graph ";
358
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS707 = "flowchart ";
359
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS708 = "sequenceDiagram";
360
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS709 = "classDiagram";
361
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS710 = "stateDiagram";
362
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS711 = "erDiagram";
363
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS712 = "journey";
364
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS713 = "gantt";
365
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS714 = "pie";
366
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS715 = "gitGraph";
367
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS716 = "mindmap";
368
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717 = "timeline";
369
- const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS718 = "|";
370
- const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS719 = "-";
371
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS741 = "|";
372
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS742 = "|";
373
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS743 = "|";
374
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS740 = "|";
375
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS744 = ".mp4";
376
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS745 = ".webm";
377
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS746 = ".mov";
378
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS747 = ".avi";
379
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS748 = ".mkv";
380
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS749 = ".m4v";
381
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS750 = ".ogv";
382
- const _M0FP36kazuph5reviw4core14render__inlineN7_2abindS756 = "javascript:";
383
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS769 = "expression(";
384
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS770 = "url(";
385
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS771 = "-moz-binding";
386
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS772 = "behavior:";
387
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS773 = "behaviour:";
388
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS774 = "javascript:";
389
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS775 = "vbscript:";
390
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS776 = "@import";
391
- const _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS777 = "on";
392
- const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS778 = "javascript:";
393
- const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS779 = "data:text/html";
394
- const _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS795 = ">";
395
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS797 = "<";
396
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS799 = "<summary>";
397
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS800 = "</details>";
398
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS802 = "</details>";
399
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS803 = "<details";
400
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS807 = "#";
401
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808 = "```";
402
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810 = "```";
403
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811 = ">";
404
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813 = ">";
405
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818 = "- ";
406
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819 = "* ";
407
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824 = "- ";
408
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825 = "* ";
409
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821 = "[ ] ";
410
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = "[x] ";
411
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823 = "[X] ";
412
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "|";
413
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS964 = "@@ ";
414
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS966 = "@@ ";
415
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS967 = "diff ";
416
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS968 = "--- ";
417
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS969 = "+";
418
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS970 = "-";
419
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS971 = " ";
420
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS972 = "diff ";
421
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS973 = "--- ";
422
- const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS975 = "a/";
423
- const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS976 = "b/";
424
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS978 = "diff --git ";
425
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS980 = "new file mode";
426
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS981 = "deleted file mode";
427
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS982 = "Binary files";
428
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS983 = "index ";
429
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS984 = "--- ";
430
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS985 = "+++ ";
431
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS986 = "--- ";
432
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS987 = "+++ ";
433
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f655 = 0;
434
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f656 = 1;
313
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558 = ":";
314
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559 = "#";
315
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560 = "'";
316
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561 = "\"";
317
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562 = "\n";
318
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563 = "[";
319
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564 = "]";
320
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565 = "{";
321
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566 = "}";
322
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567 = ",";
323
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568 = "&";
324
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569 = "*";
325
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570 = "!";
326
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571 = "|";
327
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572 = ">";
328
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573 = "%";
329
+ const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574 = "@";
330
+ const _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649 = "\n";
331
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672 = "- ";
332
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673 = " -";
333
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674 = " ";
334
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675 = " ";
335
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677 = "- ";
336
+ const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678 = " ";
337
+ const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682 = "- ";
338
+ const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683 = " ";
339
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702 = "<details";
340
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703 = "<div";
341
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704 = "<section";
342
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705 = "<article";
343
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706 = "<aside";
344
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707 = "<nav";
345
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708 = "<header";
346
+ const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709 = "<footer";
347
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS711 = "#";
348
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS712 = "```";
349
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS713 = ">";
350
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS714 = "- ";
351
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715 = "* ";
352
+ const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716 = "<";
353
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717 = "graph ";
354
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718 = "flowchart ";
355
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719 = "sequenceDiagram";
356
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720 = "classDiagram";
357
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721 = "stateDiagram";
358
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722 = "erDiagram";
359
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723 = "journey";
360
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724 = "gantt";
361
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725 = "pie";
362
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726 = "gitGraph";
363
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727 = "mindmap";
364
+ const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728 = "timeline";
365
+ const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729 = "|";
366
+ const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730 = "-";
367
+ const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752 = "|";
368
+ const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753 = "|";
369
+ const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754 = "|";
370
+ const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751 = "|";
371
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755 = ".mp4";
372
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756 = ".webm";
373
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757 = ".mov";
374
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758 = ".avi";
375
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759 = ".mkv";
376
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760 = ".m4v";
377
+ const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761 = ".ogv";
378
+ const _M0FP36kazuph5reviw4core14render__inlineN7_2abindS767 = "javascript:";
379
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780 = "expression(";
380
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781 = "url(";
381
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782 = "-moz-binding";
382
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783 = "behavior:";
383
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784 = "behaviour:";
384
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785 = "javascript:";
385
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786 = "vbscript:";
386
+ const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787 = "@import";
387
+ const _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788 = "on";
388
+ const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789 = "javascript:";
389
+ const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790 = "data:text/html";
390
+ const _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806 = ">";
391
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808 = "<";
392
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810 = "<summary>";
393
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811 = "</details>";
394
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813 = "</details>";
395
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814 = "<details";
396
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818 = "#";
397
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819 = "```";
398
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821 = "```";
399
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = ">";
400
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824 = ">";
401
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829 = "- ";
402
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830 = "* ";
403
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835 = "- ";
404
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "* ";
405
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832 = "[ ] ";
406
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833 = "[x] ";
407
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834 = "[X] ";
408
+ const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847 = "|";
409
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975 = "@@ ";
410
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977 = "@@ ";
411
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978 = "diff ";
412
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979 = "--- ";
413
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980 = "+";
414
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981 = "-";
415
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982 = " ";
416
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983 = "diff ";
417
+ const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984 = "--- ";
418
+ const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986 = "a/";
419
+ const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987 = "b/";
420
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS989 = "diff --git ";
421
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS991 = "new file mode";
422
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992 = "deleted file mode";
423
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993 = "Binary files";
424
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994 = "index ";
425
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995 = "--- ";
426
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996 = "+++ ";
427
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997 = "--- ";
428
+ const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998 = "+++ ";
429
+ const _M0FP36kazuph5reviw4core27from__string_2econstr_2f572 = 0;
430
+ const _M0FP36kazuph5reviw4core27from__string_2econstr_2f573 = 1;
431
+ const _M0FP36kazuph5reviw4core27from__string_2econstr_2f574 = 2;
432
+ const _M0FP36kazuph5reviw4core27from__string_2econstr_2f576 = 0;
433
+ const _M0FP36kazuph5reviw4core27from__string_2econstr_2f577 = 1;
435
434
  const _M0FP36kazuph5reviw6server15active__servers = [];
436
435
  const _M0FP36kazuph5reviw6server12all__results = [];
437
- const _M0FP36kazuph5reviw6server12print__usageN5usageS418 = "Usage: reviw <file...> [options]\n\nOptions:\n --port <n> Base port (default: 4989)\n --host <addr> Bind address (default: 127.0.0.1, use 0.0.0.0 for remote)\n --no-open Don't open browser\n -e, --encoding <enc> Force encoding (e.g. shift-jis, euc-jp)\n -h, --help Show help\n -v, --version Show version\n\nSupported formats: CSV, TSV, Markdown, Diff, Plain text\nPipe stdin for diff: git diff | reviw";
438
- const _M0FP36kazuph5reviw6server12detect__modeN7_2abindS461 = ".";
439
- const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS525 = "..";
440
- const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS529 = "scene_";
441
- const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530 = ".jpg";
442
- const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565 = "/";
443
- const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS563 = "..";
444
- const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564 = "video/";
445
- const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567 = "/";
446
- const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS566 = "..";
447
- const _M0FP36kazuph5reviw6server15handle__requestN7_2abindS568 = "/video-timeline?";
448
- const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS569 = "true";
436
+ const _M0FP36kazuph5reviw6server12print__usageN5usageS419 = "Usage: reviw <file...> [options]\n\nOptions:\n --port <n> Base port (default: 4989)\n --host <addr> Bind address (default: 127.0.0.1, use 0.0.0.0 for remote)\n --no-open Don't open browser\n -e, --encoding <enc> Force encoding (e.g. shift-jis, euc-jp)\n -h, --help Show help\n -v, --version Show version\n\nSupported formats: CSV, TSV, Markdown, Diff, Plain text\nPipe stdin for diff: git diff | reviw";
437
+ const _M0FP36kazuph5reviw6server12detect__modeN7_2abindS462 = ".";
438
+ const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS526 = "..";
439
+ const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530 = "scene_";
440
+ const _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS531 = ".jpg";
441
+ const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS566 = "/";
442
+ const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564 = "..";
443
+ const _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565 = "video/";
444
+ const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS568 = "/";
445
+ const _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567 = "..";
446
+ const _M0FP36kazuph5reviw6server15handle__requestN7_2abindS569 = "/video-timeline?";
449
447
  const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS570 = "true";
450
- const _M0FP017____moonbit__mainN7_2abindS589 = "-";
448
+ const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS571 = "true";
449
+ const _M0FP017____moonbit__mainN7_2abindS590 = "-";
451
450
  const _M0FP36kazuph5reviw6server15expected__count = _M0MPC13ref3Ref3newGiE(0);
452
451
  const _M0FP36kazuph5reviw6server18encoding__override = _M0MPC13ref3Ref3newGsE("");
453
- const _M0FPB33brute__force__find_2econstr_2f228 = 0;
454
- const _M0FPB43boyer__moore__horspool__find_2econstr_2f214 = 0;
452
+ const _M0FPB33brute__force__find_2econstr_2f153 = 0;
453
+ const _M0FPB43boyer__moore__horspool__find_2econstr_2f139 = 0;
455
454
  const _M0FP36kazuph5reviw6server10bind__host = _M0MPC13ref3Ref3newGsE("127.0.0.1");
456
455
  const _M0FP36kazuph5reviw6server13ui__js__cache = _M0MPC13ref3Ref3newGsE("");
457
456
  const _M0FPB4seed = _M0FPB12random__seed();
@@ -493,447 +492,6 @@ function _M0MPC16uint166UInt1623is__trailing__surrogate(self) {
493
492
  function _M0FPB32code__point__of__surrogate__pair(leading, trailing) {
494
493
  return (((Math.imul(leading - 55296 | 0, 1024) | 0) + trailing | 0) - 56320 | 0) + 65536 | 0;
495
494
  }
496
- function _M0MPC15array5Array2atGsE(self, index) {
497
- const len = self.length;
498
- if (index >= 0 && index < len) {
499
- $bound_check(self, index);
500
- return self[index];
501
- } else {
502
- return $panic();
503
- }
504
- }
505
- function _M0MPC15array5Array2atGcE(self, index) {
506
- const len = self.length;
507
- if (index >= 0 && index < len) {
508
- $bound_check(self, index);
509
- return self[index];
510
- } else {
511
- return $panic();
512
- }
513
- }
514
- function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
515
- const len = self.length;
516
- if (index >= 0 && index < len) {
517
- $bound_check(self, index);
518
- return self[index];
519
- } else {
520
- return $panic();
521
- }
522
- }
523
- function _M0MPC15array5Array2atGdE(self, index) {
524
- const len = self.length;
525
- if (index >= 0 && index < len) {
526
- $bound_check(self, index);
527
- return self[index];
528
- } else {
529
- return $panic();
530
- }
531
- }
532
- function _M0MPB13SourceLocRepr5parse(repr) {
533
- const _bind = new _M0TPC16string10StringView(repr, 0, repr.length);
534
- const _data = _bind.str;
535
- const _start = _bind.start;
536
- const _end = _start + (_bind.end - _bind.start | 0) | 0;
537
- let _cursor = _start;
538
- let accept_state = -1;
539
- let match_end = -1;
540
- let match_tag_saver_0 = -1;
541
- let match_tag_saver_1 = -1;
542
- let match_tag_saver_2 = -1;
543
- let match_tag_saver_3 = -1;
544
- let match_tag_saver_4 = -1;
545
- let tag_0 = -1;
546
- let tag_1 = -1;
547
- let tag_1_1 = -1;
548
- let tag_1_2 = -1;
549
- let tag_3 = -1;
550
- let tag_2 = -1;
551
- let tag_2_1 = -1;
552
- let tag_4 = -1;
553
- _L: {
554
- if (_cursor < _end) {
555
- const _p = _cursor;
556
- if (_data.charCodeAt(_p) === 64) {
557
- _cursor = _cursor + 1 | 0;
558
- _L$2: while (true) {
559
- tag_0 = _cursor;
560
- if (_cursor < _end) {
561
- const _p$2 = _cursor;
562
- const next_char = _data.charCodeAt(_p$2);
563
- _cursor = _cursor + 1 | 0;
564
- if (next_char === 58) {
565
- if (_cursor < _end) {
566
- _cursor = _cursor + 1 | 0;
567
- let _tmp = 0;
568
- _L$3: while (true) {
569
- const dispatch_15 = _tmp;
570
- _L$4: {
571
- _L$5: {
572
- switch (dispatch_15) {
573
- case 3: {
574
- tag_1_2 = tag_1_1;
575
- tag_1_1 = tag_1;
576
- tag_1 = _cursor;
577
- if (_cursor < _end) {
578
- _L$6: {
579
- const _p$3 = _cursor;
580
- const next_char$2 = _data.charCodeAt(_p$3);
581
- _cursor = _cursor + 1 | 0;
582
- if (next_char$2 < 58) {
583
- if (next_char$2 < 48) {
584
- break _L$6;
585
- } else {
586
- tag_1 = _cursor;
587
- tag_2_1 = tag_2;
588
- tag_2 = _cursor;
589
- tag_3 = _cursor;
590
- if (_cursor < _end) {
591
- _L$7: {
592
- const _p$4 = _cursor;
593
- const next_char$3 = _data.charCodeAt(_p$4);
594
- _cursor = _cursor + 1 | 0;
595
- if (next_char$3 < 48) {
596
- if (next_char$3 === 45) {
597
- break _L$4;
598
- } else {
599
- break _L$7;
600
- }
601
- } else {
602
- if (next_char$3 > 57) {
603
- if (next_char$3 < 59) {
604
- _tmp = 3;
605
- continue _L$3;
606
- } else {
607
- break _L$7;
608
- }
609
- } else {
610
- _tmp = 6;
611
- continue _L$3;
612
- }
613
- }
614
- }
615
- _tmp = 0;
616
- continue _L$3;
617
- } else {
618
- break _L;
619
- }
620
- }
621
- } else {
622
- if (next_char$2 > 58) {
623
- break _L$6;
624
- } else {
625
- _tmp = 1;
626
- continue _L$3;
627
- }
628
- }
629
- }
630
- _tmp = 0;
631
- continue _L$3;
632
- } else {
633
- break _L;
634
- }
635
- }
636
- case 2: {
637
- tag_1 = _cursor;
638
- tag_2 = _cursor;
639
- if (_cursor < _end) {
640
- _L$6: {
641
- const _p$3 = _cursor;
642
- const next_char$2 = _data.charCodeAt(_p$3);
643
- _cursor = _cursor + 1 | 0;
644
- if (next_char$2 < 58) {
645
- if (next_char$2 < 48) {
646
- break _L$6;
647
- } else {
648
- _tmp = 2;
649
- continue _L$3;
650
- }
651
- } else {
652
- if (next_char$2 > 58) {
653
- break _L$6;
654
- } else {
655
- _tmp = 3;
656
- continue _L$3;
657
- }
658
- }
659
- }
660
- _tmp = 0;
661
- continue _L$3;
662
- } else {
663
- break _L;
664
- }
665
- }
666
- case 0: {
667
- tag_1 = _cursor;
668
- if (_cursor < _end) {
669
- const _p$3 = _cursor;
670
- const next_char$2 = _data.charCodeAt(_p$3);
671
- _cursor = _cursor + 1 | 0;
672
- if (next_char$2 === 58) {
673
- _tmp = 1;
674
- continue _L$3;
675
- } else {
676
- _tmp = 0;
677
- continue _L$3;
678
- }
679
- } else {
680
- break _L;
681
- }
682
- }
683
- case 4: {
684
- tag_1 = _cursor;
685
- tag_4 = _cursor;
686
- if (_cursor < _end) {
687
- _L$6: {
688
- const _p$3 = _cursor;
689
- const next_char$2 = _data.charCodeAt(_p$3);
690
- _cursor = _cursor + 1 | 0;
691
- if (next_char$2 < 58) {
692
- if (next_char$2 < 48) {
693
- break _L$6;
694
- } else {
695
- _tmp = 4;
696
- continue _L$3;
697
- }
698
- } else {
699
- if (next_char$2 > 58) {
700
- break _L$6;
701
- } else {
702
- tag_1_2 = tag_1_1;
703
- tag_1_1 = tag_1;
704
- tag_1 = _cursor;
705
- if (_cursor < _end) {
706
- _L$7: {
707
- const _p$4 = _cursor;
708
- const next_char$3 = _data.charCodeAt(_p$4);
709
- _cursor = _cursor + 1 | 0;
710
- if (next_char$3 < 58) {
711
- if (next_char$3 < 48) {
712
- break _L$7;
713
- } else {
714
- tag_1 = _cursor;
715
- tag_2_1 = tag_2;
716
- tag_2 = _cursor;
717
- if (_cursor < _end) {
718
- _L$8: {
719
- const _p$5 = _cursor;
720
- const next_char$4 = _data.charCodeAt(_p$5);
721
- _cursor = _cursor + 1 | 0;
722
- if (next_char$4 < 58) {
723
- if (next_char$4 < 48) {
724
- break _L$8;
725
- } else {
726
- _tmp = 5;
727
- continue _L$3;
728
- }
729
- } else {
730
- if (next_char$4 > 58) {
731
- break _L$8;
732
- } else {
733
- _tmp = 3;
734
- continue _L$3;
735
- }
736
- }
737
- }
738
- _tmp = 0;
739
- continue _L$3;
740
- } else {
741
- break _L$5;
742
- }
743
- }
744
- } else {
745
- if (next_char$3 > 58) {
746
- break _L$7;
747
- } else {
748
- _tmp = 1;
749
- continue _L$3;
750
- }
751
- }
752
- }
753
- _tmp = 0;
754
- continue _L$3;
755
- } else {
756
- break _L;
757
- }
758
- }
759
- }
760
- }
761
- _tmp = 0;
762
- continue _L$3;
763
- } else {
764
- break _L;
765
- }
766
- }
767
- case 5: {
768
- tag_1 = _cursor;
769
- tag_2 = _cursor;
770
- if (_cursor < _end) {
771
- _L$6: {
772
- const _p$3 = _cursor;
773
- const next_char$2 = _data.charCodeAt(_p$3);
774
- _cursor = _cursor + 1 | 0;
775
- if (next_char$2 < 58) {
776
- if (next_char$2 < 48) {
777
- break _L$6;
778
- } else {
779
- _tmp = 5;
780
- continue _L$3;
781
- }
782
- } else {
783
- if (next_char$2 > 58) {
784
- break _L$6;
785
- } else {
786
- _tmp = 3;
787
- continue _L$3;
788
- }
789
- }
790
- }
791
- _tmp = 0;
792
- continue _L$3;
793
- } else {
794
- break _L$5;
795
- }
796
- }
797
- case 6: {
798
- tag_1 = _cursor;
799
- tag_2 = _cursor;
800
- tag_3 = _cursor;
801
- if (_cursor < _end) {
802
- _L$6: {
803
- const _p$3 = _cursor;
804
- const next_char$2 = _data.charCodeAt(_p$3);
805
- _cursor = _cursor + 1 | 0;
806
- if (next_char$2 < 48) {
807
- if (next_char$2 === 45) {
808
- break _L$4;
809
- } else {
810
- break _L$6;
811
- }
812
- } else {
813
- if (next_char$2 > 57) {
814
- if (next_char$2 < 59) {
815
- _tmp = 3;
816
- continue _L$3;
817
- } else {
818
- break _L$6;
819
- }
820
- } else {
821
- _tmp = 6;
822
- continue _L$3;
823
- }
824
- }
825
- }
826
- _tmp = 0;
827
- continue _L$3;
828
- } else {
829
- break _L;
830
- }
831
- }
832
- case 1: {
833
- tag_1_1 = tag_1;
834
- tag_1 = _cursor;
835
- if (_cursor < _end) {
836
- _L$6: {
837
- const _p$3 = _cursor;
838
- const next_char$2 = _data.charCodeAt(_p$3);
839
- _cursor = _cursor + 1 | 0;
840
- if (next_char$2 < 58) {
841
- if (next_char$2 < 48) {
842
- break _L$6;
843
- } else {
844
- _tmp = 2;
845
- continue _L$3;
846
- }
847
- } else {
848
- if (next_char$2 > 58) {
849
- break _L$6;
850
- } else {
851
- _tmp = 1;
852
- continue _L$3;
853
- }
854
- }
855
- }
856
- _tmp = 0;
857
- continue _L$3;
858
- } else {
859
- break _L;
860
- }
861
- }
862
- default: {
863
- break _L;
864
- }
865
- }
866
- }
867
- tag_1 = tag_1_2;
868
- tag_2 = tag_2_1;
869
- match_tag_saver_0 = tag_0;
870
- match_tag_saver_1 = tag_1;
871
- match_tag_saver_2 = tag_2;
872
- match_tag_saver_3 = tag_3;
873
- match_tag_saver_4 = tag_4;
874
- accept_state = 0;
875
- match_end = _cursor;
876
- break _L;
877
- }
878
- tag_1_1 = tag_1_2;
879
- tag_1 = _cursor;
880
- tag_2 = tag_2_1;
881
- if (_cursor < _end) {
882
- _L$5: {
883
- const _p$3 = _cursor;
884
- const next_char$2 = _data.charCodeAt(_p$3);
885
- _cursor = _cursor + 1 | 0;
886
- if (next_char$2 < 58) {
887
- if (next_char$2 < 48) {
888
- break _L$5;
889
- } else {
890
- _tmp = 4;
891
- continue;
892
- }
893
- } else {
894
- if (next_char$2 > 58) {
895
- break _L$5;
896
- } else {
897
- _tmp = 1;
898
- continue;
899
- }
900
- }
901
- }
902
- _tmp = 0;
903
- continue;
904
- } else {
905
- break _L;
906
- }
907
- }
908
- } else {
909
- break _L;
910
- }
911
- } else {
912
- continue;
913
- }
914
- } else {
915
- break _L;
916
- }
917
- }
918
- } else {
919
- break _L;
920
- }
921
- } else {
922
- break _L;
923
- }
924
- }
925
- if (accept_state === 0) {
926
- const start_line = _M0MPC16string6String4view(_data, match_tag_saver_1 + 1 | 0, match_tag_saver_2);
927
- const start_column = _M0MPC16string6String4view(_data, match_tag_saver_2 + 1 | 0, match_tag_saver_3);
928
- const pkg = _M0MPC16string6String4view(_data, _start + 1 | 0, match_tag_saver_0);
929
- const filename = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_tag_saver_1);
930
- const end_line = _M0MPC16string6String4view(_data, match_tag_saver_3 + 1 | 0, match_tag_saver_4);
931
- const end_column = _M0MPC16string6String4view(_data, match_tag_saver_4 + 1 | 0, match_end);
932
- return new _M0TPB13SourceLocRepr(pkg, filename, start_line, start_column, end_line, end_column);
933
- } else {
934
- return $panic();
935
- }
936
- }
937
495
  function _M0IPB13StringBuilderPB6Logger13write__string(self, str) {
938
496
  self.val = `${self.val}${str}`;
939
497
  }
@@ -1015,7 +573,8 @@ function _M0IP016_24default__implPB4Show10to__stringGiE(self) {
1015
573
  }
1016
574
  function _M0IP016_24default__implPB4Show10to__stringGRPB9SourceLocE(self) {
1017
575
  const logger = _M0MPB13StringBuilder11new_2einner(0);
1018
- _M0IPB9SourceLocPB4Show6output(self, { self: logger, method_table: _M0FP092moonbitlang_2fcore_2fbuiltin_2fStringBuilder_24as_24_40moonbitlang_2fcore_2fbuiltin_2eLogger });
576
+ const _p = { self: logger, method_table: _M0FP092moonbitlang_2fcore_2fbuiltin_2fStringBuilder_24as_24_40moonbitlang_2fcore_2fbuiltin_2eLogger };
577
+ _p.method_table.method_0(_p.self, self);
1019
578
  return logger.val;
1020
579
  }
1021
580
  function _M0MPB4Iter4nextGcE(self) {
@@ -1037,7 +596,7 @@ function _M0MPC16string10StringView12view_2einner(self, start_offset, end_offset
1037
596
  const _Some = end_offset;
1038
597
  end_offset$2 = _Some;
1039
598
  }
1040
- return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= (self.end - self.start | 0)) ? new _M0TPC16string10StringView(self.str, self.start + start_offset | 0, self.start + end_offset$2 | 0) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "@moonbitlang/core/builtin:stringview.mbt:113:5-113:36");
599
+ return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= (self.end - self.start | 0)) ? new _M0TPC16string10StringView(self.str, self.start + start_offset | 0, self.start + end_offset$2 | 0) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "builtin/stringview.mbt:113:5-113:36@moonbitlang/core");
1041
600
  }
1042
601
  function _M0IPC16string10StringViewPB4Show10to__string(self) {
1043
602
  return self.str.substring(self.start, self.end);
@@ -1045,7 +604,7 @@ function _M0IPC16string10StringViewPB4Show10to__string(self) {
1045
604
  function _M0MPC16string10StringView4iter(self) {
1046
605
  const start = self.start;
1047
606
  const end = self.end;
1048
- const index = new _M0TPC13ref3RefGiE(start);
607
+ const index = new _M0TPB8MutLocalGiE(start);
1049
608
  const _p = () => {
1050
609
  if (index.val < end) {
1051
610
  const c1 = self.str.charCodeAt(index.val);
@@ -1070,8 +629,8 @@ function _M0MPB5Iter23newGicE(f) {
1070
629
  function _M0MPC16string10StringView5iter2(self) {
1071
630
  const start = self.start;
1072
631
  const end = self.end;
1073
- const index = new _M0TPC13ref3RefGiE(start);
1074
- const char_index = new _M0TPC13ref3RefGiE(0);
632
+ const index = new _M0TPB8MutLocalGiE(start);
633
+ const char_index = new _M0TPB8MutLocalGiE(0);
1075
634
  return _M0MPB5Iter23newGicE(() => {
1076
635
  if (index.val < end) {
1077
636
  const c1 = self.str.charCodeAt(index.val);
@@ -1101,17 +660,7 @@ function _M0MPC16string6String12view_2einner(self, start_offset, end_offset) {
1101
660
  const _Some = end_offset;
1102
661
  end_offset$2 = _Some;
1103
662
  }
1104
- return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= self.length) ? new _M0TPC16string10StringView(self, start_offset, end_offset$2) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "@moonbitlang/core/builtin:stringview.mbt:399:5-399:36");
1105
- }
1106
- function _M0MPC16string6String4view(self, start_offset$46$opt, end_offset) {
1107
- let start_offset;
1108
- if (start_offset$46$opt === undefined) {
1109
- start_offset = 0;
1110
- } else {
1111
- const _Some = start_offset$46$opt;
1112
- start_offset = _Some;
1113
- }
1114
- return _M0MPC16string6String12view_2einner(self, start_offset, end_offset);
663
+ return start_offset >= 0 && (start_offset <= end_offset$2 && end_offset$2 <= self.length) ? new _M0TPC16string10StringView(self, start_offset, end_offset$2) : _M0FPB5abortGRPC16string10StringViewE("Invalid index for View", "builtin/stringview.mbt:398:5-398:36@moonbitlang/core");
1115
664
  }
1116
665
  function _M0IPB13StringBuilderPB6Logger11write__view(self, str) {
1117
666
  self.val = `${self.val}${_M0IPC16string10StringViewPB4Show10to__string(str)}`;
@@ -1174,7 +723,7 @@ function _M0FPB28boyer__moore__horspool__find(haystack, needle) {
1174
723
  return undefined;
1175
724
  }
1176
725
  } else {
1177
- return _M0FPB43boyer__moore__horspool__find_2econstr_2f214;
726
+ return _M0FPB43boyer__moore__horspool__find_2econstr_2f139;
1178
727
  }
1179
728
  }
1180
729
  function _M0FPB18brute__force__find(haystack, needle) {
@@ -1185,44 +734,32 @@ function _M0FPB18brute__force__find(haystack, needle) {
1185
734
  const _p = 0;
1186
735
  const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
1187
736
  const forward_len = haystack_len - needle_len | 0;
1188
- let i = 0;
737
+ let _tmp = 0;
1189
738
  while (true) {
739
+ const i = _tmp;
1190
740
  if (i <= forward_len) {
741
+ const _p$2 = haystack.str.charCodeAt(haystack.start + i | 0);
742
+ if (_p$2 !== needle_first) {
743
+ _tmp = i + 1 | 0;
744
+ continue;
745
+ }
746
+ let _tmp$2 = 1;
1191
747
  while (true) {
1192
- let _tmp;
1193
- if (i <= forward_len) {
1194
- const _p$2 = i;
1195
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1196
- _tmp = _p$3 !== needle_first;
1197
- } else {
1198
- _tmp = false;
1199
- }
1200
- if (_tmp) {
1201
- i = i + 1 | 0;
748
+ const j = _tmp$2;
749
+ if (j < needle_len) {
750
+ const _p$3 = i + j | 0;
751
+ const _p$4 = haystack.str.charCodeAt(haystack.start + _p$3 | 0);
752
+ const _p$5 = needle.str.charCodeAt(needle.start + j | 0);
753
+ if (_p$4 !== _p$5) {
754
+ break;
755
+ }
756
+ _tmp$2 = j + 1 | 0;
1202
757
  continue;
1203
758
  } else {
1204
- break;
1205
- }
1206
- }
1207
- if (i <= forward_len) {
1208
- let _tmp = 1;
1209
- while (true) {
1210
- const j = _tmp;
1211
- if (j < needle_len) {
1212
- const _p$2 = i + j | 0;
1213
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1214
- const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
1215
- if (_p$3 !== _p$4) {
1216
- break;
1217
- }
1218
- _tmp = j + 1 | 0;
1219
- continue;
1220
- } else {
1221
- return i;
1222
- }
759
+ return i;
1223
760
  }
1224
- i = i + 1 | 0;
1225
761
  }
762
+ _tmp = i + 1 | 0;
1226
763
  continue;
1227
764
  } else {
1228
765
  break;
@@ -1233,7 +770,7 @@ function _M0FPB18brute__force__find(haystack, needle) {
1233
770
  return undefined;
1234
771
  }
1235
772
  } else {
1236
- return _M0FPB33brute__force__find_2econstr_2f228;
773
+ return _M0FPB33brute__force__find_2econstr_2f153;
1237
774
  }
1238
775
  }
1239
776
  function _M0MPC16string10StringView4find(self, str) {
@@ -1323,44 +860,32 @@ function _M0FPB23brute__force__rev__find(haystack, needle) {
1323
860
  if (haystack_len >= needle_len) {
1324
861
  const _p = 0;
1325
862
  const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
1326
- let i = haystack_len - needle_len | 0;
863
+ let _tmp = haystack_len - needle_len | 0;
1327
864
  while (true) {
865
+ const i = _tmp;
1328
866
  if (i >= 0) {
867
+ const _p$2 = haystack.str.charCodeAt(haystack.start + i | 0);
868
+ if (_p$2 !== needle_first) {
869
+ _tmp = i - 1 | 0;
870
+ continue;
871
+ }
872
+ let _tmp$2 = 1;
1329
873
  while (true) {
1330
- let _tmp;
1331
- if (i >= 0) {
1332
- const _p$2 = i;
1333
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1334
- _tmp = _p$3 !== needle_first;
1335
- } else {
1336
- _tmp = false;
1337
- }
1338
- if (_tmp) {
1339
- i = i - 1 | 0;
874
+ const j = _tmp$2;
875
+ if (j < needle_len) {
876
+ const _p$3 = i + j | 0;
877
+ const _p$4 = haystack.str.charCodeAt(haystack.start + _p$3 | 0);
878
+ const _p$5 = needle.str.charCodeAt(needle.start + j | 0);
879
+ if (_p$4 !== _p$5) {
880
+ break;
881
+ }
882
+ _tmp$2 = j + 1 | 0;
1340
883
  continue;
1341
884
  } else {
1342
- break;
1343
- }
1344
- }
1345
- if (i >= 0) {
1346
- let _tmp = 1;
1347
- while (true) {
1348
- const j = _tmp;
1349
- if (j < needle_len) {
1350
- const _p$2 = i + j | 0;
1351
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1352
- const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
1353
- if (_p$3 !== _p$4) {
1354
- break;
1355
- }
1356
- _tmp = j + 1 | 0;
1357
- continue;
1358
- } else {
1359
- return i;
1360
- }
885
+ return i;
1361
886
  }
1362
- i = i - 1 | 0;
1363
887
  }
888
+ _tmp = i - 1 | 0;
1364
889
  continue;
1365
890
  } else {
1366
891
  break;
@@ -1424,7 +949,7 @@ function _M0MPC16string6String8contains(self, str) {
1424
949
  }
1425
950
  function _M0MPC16string6String4iter(self) {
1426
951
  const len = self.length;
1427
- const index = new _M0TPC13ref3RefGiE(0);
952
+ const index = new _M0TPB8MutLocalGiE(0);
1428
953
  const _p = () => {
1429
954
  if (index.val < len) {
1430
955
  const c1 = self.charCodeAt(index.val);
@@ -1464,7 +989,7 @@ function _M0MPC16string10StringView5split(self, sep) {
1464
989
  if (sep_len === 0) {
1465
990
  return _M0MPB4Iter3mapGcRPC16string10StringViewE(_M0MPC16string10StringView4iter(self), (c) => _M0MPC16string6String12view_2einner(_M0IPC14char4CharPB4Show10to__string(c), 0, undefined));
1466
991
  }
1467
- const remaining = new _M0TPC13ref3RefGORPC16string10StringViewE(self);
992
+ const remaining = new _M0TPB8MutLocalGORPC16string10StringViewE(self);
1468
993
  const _p = () => {
1469
994
  const _bind = remaining.val;
1470
995
  if (_bind === undefined) {
@@ -1890,91 +1415,6 @@ function _M0IPC16string6StringPB4Hash13hash__combine(self, hasher) {
1890
1415
  function _M0MPC16double6Double10to__string(self) {
1891
1416
  return _M0FPB15ryu__to__string(self);
1892
1417
  }
1893
- function _M0IPB13SourceLocReprPB4Show6output(self, logger) {
1894
- const pkg = self.pkg;
1895
- const _data = pkg.str;
1896
- const _start = pkg.start;
1897
- const _end = _start + (pkg.end - pkg.start | 0) | 0;
1898
- let _cursor = _start;
1899
- let accept_state = -1;
1900
- let match_end = -1;
1901
- let match_tag_saver_0 = -1;
1902
- let tag_0 = -1;
1903
- let _bind;
1904
- _L: {
1905
- _L$2: {
1906
- _L$3: while (true) {
1907
- if (_cursor < _end) {
1908
- const _p = _cursor;
1909
- const next_char = _data.charCodeAt(_p);
1910
- _cursor = _cursor + 1 | 0;
1911
- if (next_char === 47) {
1912
- _L$4: while (true) {
1913
- tag_0 = _cursor;
1914
- if (_cursor < _end) {
1915
- const _p$2 = _cursor;
1916
- const next_char$2 = _data.charCodeAt(_p$2);
1917
- _cursor = _cursor + 1 | 0;
1918
- if (next_char$2 === 47) {
1919
- while (true) {
1920
- if (_cursor < _end) {
1921
- _cursor = _cursor + 1 | 0;
1922
- continue;
1923
- } else {
1924
- match_tag_saver_0 = tag_0;
1925
- accept_state = 0;
1926
- match_end = _cursor;
1927
- break _L$2;
1928
- }
1929
- }
1930
- } else {
1931
- continue;
1932
- }
1933
- } else {
1934
- break _L$2;
1935
- }
1936
- }
1937
- } else {
1938
- continue;
1939
- }
1940
- } else {
1941
- break _L$2;
1942
- }
1943
- }
1944
- break _L;
1945
- }
1946
- if (accept_state === 0) {
1947
- const package_name = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_end);
1948
- const module_name = _M0MPC16string6String4view(_data, _start, match_tag_saver_0);
1949
- _bind = { _0: module_name, _1: package_name };
1950
- } else {
1951
- _bind = { _0: pkg, _1: undefined };
1952
- }
1953
- }
1954
- const _module_name = _bind._0;
1955
- const _package_name = _bind._1;
1956
- if (_package_name === undefined) {
1957
- } else {
1958
- const _Some = _package_name;
1959
- const _pkg_name = _Some;
1960
- logger.method_table.method_2(logger.self, _pkg_name);
1961
- logger.method_table.method_3(logger.self, 47);
1962
- }
1963
- logger.method_table.method_2(logger.self, self.filename);
1964
- logger.method_table.method_3(logger.self, 58);
1965
- logger.method_table.method_2(logger.self, self.start_line);
1966
- logger.method_table.method_3(logger.self, 58);
1967
- logger.method_table.method_2(logger.self, self.start_column);
1968
- logger.method_table.method_3(logger.self, 45);
1969
- logger.method_table.method_2(logger.self, self.end_line);
1970
- logger.method_table.method_3(logger.self, 58);
1971
- logger.method_table.method_2(logger.self, self.end_column);
1972
- logger.method_table.method_3(logger.self, 64);
1973
- logger.method_table.method_2(logger.self, _module_name);
1974
- }
1975
- function _M0IPB9SourceLocPB4Show6output(self, logger) {
1976
- _M0IPB13SourceLocReprPB4Show6output(_M0MPB13SourceLocRepr5parse(self), logger);
1977
- }
1978
1418
  function _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, new_len) {
1979
1419
  _M0MPB7JSArray11set__length(self, new_len);
1980
1420
  }
@@ -1996,7 +1436,7 @@ function _M0MPC15array5Array6removeGRP36kazuph5reviw6server7JsValueE(self, index
1996
1436
  _M0MPB7JSArray6splice(self, index, 1);
1997
1437
  return value;
1998
1438
  } else {
1999
- return _M0FPB5abortGRP36kazuph5reviw6server7JsValueE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "@moonbitlang/core/builtin:arraycore_js.mbt:251:5-253:6");
1439
+ return _M0FPB5abortGRP36kazuph5reviw6server7JsValueE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "builtin/arraycore_js.mbt:251:5-253:6@moonbitlang/core");
2000
1440
  }
2001
1441
  }
2002
1442
  function _M0MPC15array5Array6removeGsE(self, index) {
@@ -2006,12 +1446,48 @@ function _M0MPC15array5Array6removeGsE(self, index) {
2006
1446
  _M0MPB7JSArray6splice(self, index, 1);
2007
1447
  return value;
2008
1448
  } else {
2009
- return _M0FPB5abortGRPC16string10StringViewE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "@moonbitlang/core/builtin:arraycore_js.mbt:251:5-253:6");
1449
+ return _M0FPB5abortGRPC16string10StringViewE(`index out of bounds: the len is from 0 to ${_M0IP016_24default__implPB4Show10to__stringGiE(self.length)} but the index is ${_M0IP016_24default__implPB4Show10to__stringGiE(index)}`, "builtin/arraycore_js.mbt:251:5-253:6@moonbitlang/core");
2010
1450
  }
2011
1451
  }
2012
1452
  function _M0MPC15array5Array4copyGsE(self) {
2013
1453
  return _M0MPB7JSArray4copy(self);
2014
1454
  }
1455
+ function _M0MPC15array5Array2atGsE(self, index) {
1456
+ const len = self.length;
1457
+ if (index >= 0 && index < len) {
1458
+ $bound_check(self, index);
1459
+ return self[index];
1460
+ } else {
1461
+ return $panic();
1462
+ }
1463
+ }
1464
+ function _M0MPC15array5Array2atGcE(self, index) {
1465
+ const len = self.length;
1466
+ if (index >= 0 && index < len) {
1467
+ $bound_check(self, index);
1468
+ return self[index];
1469
+ } else {
1470
+ return $panic();
1471
+ }
1472
+ }
1473
+ function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
1474
+ const len = self.length;
1475
+ if (index >= 0 && index < len) {
1476
+ $bound_check(self, index);
1477
+ return self[index];
1478
+ } else {
1479
+ return $panic();
1480
+ }
1481
+ }
1482
+ function _M0MPC15array5Array2atGdE(self, index) {
1483
+ const len = self.length;
1484
+ if (index >= 0 && index < len) {
1485
+ $bound_check(self, index);
1486
+ return self[index];
1487
+ } else {
1488
+ return $panic();
1489
+ }
1490
+ }
2015
1491
  function _M0MPC15array5Array5clearGsE(self) {
2016
1492
  _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, 0);
2017
1493
  }
@@ -2021,38 +1497,38 @@ function _M0MPC13ref3Ref3newGsE(x) {
2021
1497
  function _M0MPC13ref3Ref3newGiE(x) {
2022
1498
  return new _M0TPC13ref3RefGiE(x);
2023
1499
  }
2024
- function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_439, _x_440) {
2025
- switch (_x_439) {
1500
+ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_440, _x_441) {
1501
+ switch (_x_440) {
2026
1502
  case 0: {
2027
- if (_x_440 === 0) {
1503
+ if (_x_441 === 0) {
2028
1504
  return true;
2029
1505
  } else {
2030
1506
  return false;
2031
1507
  }
2032
1508
  }
2033
1509
  case 1: {
2034
- if (_x_440 === 1) {
1510
+ if (_x_441 === 1) {
2035
1511
  return true;
2036
1512
  } else {
2037
1513
  return false;
2038
1514
  }
2039
1515
  }
2040
1516
  case 2: {
2041
- if (_x_440 === 2) {
1517
+ if (_x_441 === 2) {
2042
1518
  return true;
2043
1519
  } else {
2044
1520
  return false;
2045
1521
  }
2046
1522
  }
2047
1523
  case 3: {
2048
- if (_x_440 === 3) {
1524
+ if (_x_441 === 3) {
2049
1525
  return true;
2050
1526
  } else {
2051
1527
  return false;
2052
1528
  }
2053
1529
  }
2054
1530
  default: {
2055
- if (_x_440 === 4) {
1531
+ if (_x_441 === 4) {
2056
1532
  return true;
2057
1533
  } else {
2058
1534
  return false;
@@ -2061,7 +1537,7 @@ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_439, _x_440) {
2061
1537
  }
2062
1538
  }
2063
1539
  function _M0FP36kazuph5reviw4core20yaml__escape__string(s) {
2064
- const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS557, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS557.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572.length)) || _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573.length)))))))))))))))));
1540
+ const needs_quote = _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS558.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572.length)) || (_M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573.length)) || _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574.length)))))))))))))))));
2065
1541
  if (needs_quote) {
2066
1542
  const buf = _M0MPB13StringBuilder11new_2einner(0);
2067
1543
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 39);
@@ -2130,9 +1606,15 @@ function _M0MP36kazuph5reviw4core14ReviewDecision10to__string(self) {
2130
1606
  }
2131
1607
  function _M0FP36kazuph5reviw4core16review__to__yaml(result) {
2132
1608
  const buf = _M0MPB13StringBuilder11new_2einner(0);
2133
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "action: ");
2134
- _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core12ReviewAction10to__string(result.action));
2135
- _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
1609
+ const _bind = result.action;
1610
+ if (_bind === undefined) {
1611
+ } else {
1612
+ const _Some = _bind;
1613
+ const _a = _Some;
1614
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "action: ");
1615
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core12ReviewAction10to__string(_a));
1616
+ _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
1617
+ }
2136
1618
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "file: ");
2137
1619
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core20yaml__escape__string(result.file));
2138
1620
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
@@ -2140,13 +1622,13 @@ function _M0FP36kazuph5reviw4core16review__to__yaml(result) {
2140
1622
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core8FileMode10to__string(result.mode));
2141
1623
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
2142
1624
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "comments:\n");
2143
- const _bind = result.comments;
2144
- const _bind$2 = _bind.length;
1625
+ const _bind$2 = result.comments;
1626
+ const _bind$3 = _bind$2.length;
2145
1627
  let _tmp = 0;
2146
1628
  while (true) {
2147
1629
  const _ = _tmp;
2148
- if (_ < _bind$2) {
2149
- const comment = _bind[_];
1630
+ if (_ < _bind$3) {
1631
+ const comment = _bind$2[_];
2150
1632
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " - row: ");
2151
1633
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MPC13int3Int18to__string_2einner(comment.row, 10));
2152
1634
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
@@ -2177,13 +1659,13 @@ function _M0FP36kazuph5reviw4core16review__to__yaml(result) {
2177
1659
  }
2178
1660
  if (result.mermaid_errors.length > 0) {
2179
1661
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "mermaid_errors:\n");
2180
- const _bind$3 = result.mermaid_errors;
2181
- const _bind$4 = _bind$3.length;
1662
+ const _bind$4 = result.mermaid_errors;
1663
+ const _bind$5 = _bind$4.length;
2182
1664
  let _tmp$2 = 0;
2183
1665
  while (true) {
2184
1666
  const _ = _tmp$2;
2185
- if (_ < _bind$4) {
2186
- const err = _bind$3[_];
1667
+ if (_ < _bind$5) {
1668
+ const err = _bind$4[_];
2187
1669
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " - line: ");
2188
1670
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MPC13int3Int18to__string_2einner(err.line, 10));
2189
1671
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
@@ -2197,10 +1679,10 @@ function _M0FP36kazuph5reviw4core16review__to__yaml(result) {
2197
1679
  }
2198
1680
  }
2199
1681
  }
2200
- const _bind$3 = result.decision;
2201
- if (_bind$3 === undefined) {
1682
+ const _bind$4 = result.decision;
1683
+ if (_bind$4 === undefined) {
2202
1684
  } else {
2203
- const _Some = _bind$3;
1685
+ const _Some = _bind$4;
2204
1686
  const _d = _Some;
2205
1687
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "decision: ");
2206
1688
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core14ReviewDecision10to__string(_d));
@@ -2213,15 +1695,21 @@ function _M0FP36kazuph5reviw4core17reviews__to__yaml(results) {
2213
1695
  return _M0FP36kazuph5reviw4core16review__to__yaml(_M0MPC15array5Array2atGsE(results, 0));
2214
1696
  } else {
2215
1697
  const buf = _M0MPB13StringBuilder11new_2einner(0);
2216
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "action: ");
2217
- _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core12ReviewAction10to__string(_M0MPC15array5Array2atGsE(results, 0).action));
2218
- _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
1698
+ const _bind = _M0MPC15array5Array2atGsE(results, 0).action;
1699
+ if (_bind === undefined) {
1700
+ } else {
1701
+ const _Some = _bind;
1702
+ const _a = _Some;
1703
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "action: ");
1704
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core12ReviewAction10to__string(_a));
1705
+ _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
1706
+ }
2219
1707
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "files:\n");
2220
- const _bind = results.length;
1708
+ const _bind$2 = results.length;
2221
1709
  let _tmp = 0;
2222
1710
  while (true) {
2223
1711
  const _ = _tmp;
2224
- if (_ < _bind) {
1712
+ if (_ < _bind$2) {
2225
1713
  const result = results[_];
2226
1714
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " - file: ");
2227
1715
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core20yaml__escape__string(result.file));
@@ -2230,13 +1718,13 @@ function _M0FP36kazuph5reviw4core17reviews__to__yaml(results) {
2230
1718
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core8FileMode10to__string(result.mode));
2231
1719
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
2232
1720
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " comments:\n");
2233
- const _bind$2 = result.comments;
2234
- const _bind$3 = _bind$2.length;
1721
+ const _bind$3 = result.comments;
1722
+ const _bind$4 = _bind$3.length;
2235
1723
  let _tmp$2 = 0;
2236
1724
  while (true) {
2237
1725
  const _$2 = _tmp$2;
2238
- if (_$2 < _bind$3) {
2239
- const comment = _bind$2[_$2];
1726
+ if (_$2 < _bind$4) {
1727
+ const comment = _bind$3[_$2];
2240
1728
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " - row: ");
2241
1729
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MPC13int3Int18to__string_2einner(comment.row, 10));
2242
1730
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
@@ -2262,13 +1750,13 @@ function _M0FP36kazuph5reviw4core17reviews__to__yaml(results) {
2262
1750
  }
2263
1751
  if (result.mermaid_errors.length > 0) {
2264
1752
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " mermaid_errors:\n");
2265
- const _bind$4 = result.mermaid_errors;
2266
- const _bind$5 = _bind$4.length;
1753
+ const _bind$5 = result.mermaid_errors;
1754
+ const _bind$6 = _bind$5.length;
2267
1755
  let _tmp$3 = 0;
2268
1756
  while (true) {
2269
1757
  const _$2 = _tmp$3;
2270
- if (_$2 < _bind$5) {
2271
- const err = _bind$4[_$2];
1758
+ if (_$2 < _bind$6) {
1759
+ const err = _bind$5[_$2];
2272
1760
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " - line: ");
2273
1761
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MPC13int3Int18to__string_2einner(err.line, 10));
2274
1762
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 10);
@@ -2282,10 +1770,10 @@ function _M0FP36kazuph5reviw4core17reviews__to__yaml(results) {
2282
1770
  }
2283
1771
  }
2284
1772
  }
2285
- const _bind$4 = result.decision;
2286
- if (_bind$4 === undefined) {
1773
+ const _bind$5 = result.decision;
1774
+ if (_bind$5 === undefined) {
2287
1775
  } else {
2288
- const _Some = _bind$4;
1776
+ const _Some = _bind$5;
2289
1777
  const _d = _Some;
2290
1778
  _M0IPB13StringBuilderPB6Logger13write__string(buf, " decision: ");
2291
1779
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0MP36kazuph5reviw4core14ReviewDecision10to__string(_d));
@@ -2366,7 +1854,7 @@ function _M0FP36kazuph5reviw4core16parse__int__safe(s) {
2366
1854
  }
2367
1855
  function _M0FP36kazuph5reviw4core16split__to__lines(input) {
2368
1856
  const result = [];
2369
- const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS638, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS638.length));
1857
+ const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649.length));
2370
1858
  while (true) {
2371
1859
  const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
2372
1860
  if (_bind === undefined) {
@@ -2420,26 +1908,26 @@ function _M0MP36kazuph5reviw4core8FileMode15from__extension(ext) {
2420
1908
  function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
2421
1909
  switch (s) {
2422
1910
  case "handoff": {
2423
- return 0;
1911
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f572;
2424
1912
  }
2425
1913
  case "final_approve": {
2426
- return 1;
1914
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f573;
2427
1915
  }
2428
1916
  case "final_request_changes": {
2429
- return 2;
1917
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f574;
2430
1918
  }
2431
1919
  default: {
2432
- return 1;
1920
+ return undefined;
2433
1921
  }
2434
1922
  }
2435
1923
  }
2436
1924
  function _M0MP36kazuph5reviw4core14ReviewDecision12from__string(s) {
2437
1925
  switch (s) {
2438
1926
  case "approve": {
2439
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f655;
1927
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f576;
2440
1928
  }
2441
1929
  case "request_changes": {
2442
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f656;
1930
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f577;
2443
1931
  }
2444
1932
  default: {
2445
1933
  return undefined;
@@ -2541,10 +2029,10 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
2541
2029
  if (i < end) {
2542
2030
  const line = _M0MPC15array5Array2atGsE(lines, i);
2543
2031
  const trimmed = _M0FP36kazuph5reviw4core4trim(line);
2544
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS661, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS661.length)) && _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS662, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS662.length))) {
2032
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS672.length)) && _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673.length))) {
2545
2033
  break;
2546
2034
  }
2547
- if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS663, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS663.length)) && !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS664, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS664.length))) {
2035
+ if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674.length)) && !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675.length))) {
2548
2036
  break;
2549
2037
  }
2550
2038
  const content_colon = _M0FP36kazuph5reviw4core15index__of__char(trimmed, 58);
@@ -2569,7 +2057,7 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
2569
2057
  if (i < end) {
2570
2058
  const opt_line = _M0MPC15array5Array2atGsE(lines, i);
2571
2059
  const opt_trimmed = _M0FP36kazuph5reviw4core4trim(opt_line);
2572
- if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS666, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS666.length)) && _M0MPC16string6String11has__prefix(opt_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS667, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS667.length))) {
2060
+ if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS677.length)) && _M0MPC16string6String11has__prefix(opt_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678.length))) {
2573
2061
  _M0MPC15array5Array4pushGsE(options, _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(opt_trimmed, 2)));
2574
2062
  i = i + 1 | 0;
2575
2063
  } else {
@@ -2609,12 +2097,12 @@ function _M0FP36kazuph5reviw4core23parse__reviw__questions(lines, start, end) {
2609
2097
  if (i < end) {
2610
2098
  const item_line = _M0MPC15array5Array2atGsE(lines, i);
2611
2099
  const trimmed = _M0FP36kazuph5reviw4core4trim(item_line);
2612
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS671, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS671.length))) {
2100
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682.length))) {
2613
2101
  const q = _M0FP36kazuph5reviw4core23parse__single__question(lines, i, end);
2614
2102
  _M0MPC15array5Array4pushGsE(questions, q._0);
2615
2103
  i = q._1;
2616
2104
  } else {
2617
- if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS672, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS672.length))) {
2105
+ if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683.length))) {
2618
2106
  break;
2619
2107
  } else {
2620
2108
  i = i + 1 | 0;
@@ -2764,7 +2252,7 @@ function _M0FP36kazuph5reviw4core20is__horizontal__rule(line) {
2764
2252
  }
2765
2253
  function _M0FP36kazuph5reviw4core22is__html__block__start(line) {
2766
2254
  const t = _M0FP36kazuph5reviw4core4trim(line);
2767
- return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS691, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS691.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS692, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS692.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS693, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS693.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS694, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS694.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS695, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS695.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS696, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS696.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS697, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS697.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS698, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS698.length))))))));
2255
+ return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS702.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709.length))))))));
2768
2256
  }
2769
2257
  function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
2770
2258
  const chars = _M0MPC16string6String9to__array(line);
@@ -2783,15 +2271,15 @@ function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
2783
2271
  return i < (chars.length - 1 | 0) && (_M0MPC15array5Array2atGcE(chars, i) === 46 && _M0MPC15array5Array2atGcE(chars, i + 1 | 0) === 32);
2784
2272
  }
2785
2273
  function _M0FP36kazuph5reviw4core16is__block__start(line) {
2786
- return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS700, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS700.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS701, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS701.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS702, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS702.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS703, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS703.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS704, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS704.length)) || (_M0FP36kazuph5reviw4core23is__ordered__list__item(line) || (_M0FP36kazuph5reviw4core20is__horizontal__rule(line) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS705, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS705.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)))))));
2274
+ return _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS711, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS711.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS712, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS712.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS713, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS713.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS714, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS714.length)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS715, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715.length)) || (_M0FP36kazuph5reviw4core23is__ordered__list__item(line) || (_M0FP36kazuph5reviw4core20is__horizontal__rule(line) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS716, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)))))));
2787
2275
  }
2788
2276
  function _M0FP36kazuph5reviw4core20is__mermaid__content(text) {
2789
2277
  const t = _M0FP36kazuph5reviw4core4trim(text);
2790
- return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS706, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS706.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS707, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS707.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS708, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS708.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS709, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS709.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS710, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS710.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS711, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS711.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS712, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS712.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS713, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS713.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS714, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS714.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS715, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS715.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS716, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS716.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717.length))))))))))));
2278
+ return _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS717.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726.length)) || (_M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727.length)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728.length))))))))))));
2791
2279
  }
2792
2280
  function _M0FP36kazuph5reviw4core20is__table__separator(line) {
2793
2281
  const t = _M0FP36kazuph5reviw4core4trim(line);
2794
- if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS718, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS718.length)) || !_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS719, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS719.length))) {
2282
+ if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS729.length)) || !_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730.length))) {
2795
2283
  return false;
2796
2284
  }
2797
2285
  const chars = _M0MPC16string6String9to__array(t);
@@ -2846,8 +2334,8 @@ function _M0FP36kazuph5reviw4core18make__heading__key(text, counter) {
2846
2334
  function _M0FP36kazuph5reviw4core17parse__table__row(line) {
2847
2335
  const result = [];
2848
2336
  const t = _M0FP36kazuph5reviw4core4trim(line);
2849
- const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS741, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS741.length)) && _M0MPC16string6String11has__suffix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS742, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS742.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(t, 1, t.length - 1 | 0) : _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS743, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS743.length)) ? _M0FP36kazuph5reviw4core11safe__slice(t, 1) : t;
2850
- const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS740, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS740.length));
2337
+ const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752.length)) && _M0MPC16string6String11has__suffix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(t, 1, t.length - 1 | 0) : _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754.length)) ? _M0FP36kazuph5reviw4core11safe__slice(t, 1) : t;
2338
+ const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS751.length));
2851
2339
  while (true) {
2852
2340
  const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
2853
2341
  if (_bind === undefined) {
@@ -2863,7 +2351,7 @@ function _M0FP36kazuph5reviw4core17parse__table__row(line) {
2863
2351
  }
2864
2352
  function _M0FP36kazuph5reviw4core14is__video__url(url) {
2865
2353
  const lower = _M0MPC16string6String9to__lower(url);
2866
- return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS744, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS744.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS745, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS745.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS746, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS746.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS747, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS747.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS748, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS748.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS749, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS749.length)) || _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS750, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS750.length)))))));
2354
+ return _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS755.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759.length)) || (_M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760.length)) || _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761.length)))))));
2867
2355
  }
2868
2356
  function _M0FP36kazuph5reviw4core14render__inline(text) {
2869
2357
  const chars = _M0MPC16string6String9to__array(text);
@@ -2962,7 +2450,7 @@ function _M0FP36kazuph5reviw4core14render__inline(text) {
2962
2450
  const link_text = _M0FP36kazuph5reviw4core18safe__slice__range(text, text_start, text_end);
2963
2451
  const link_url = _M0FP36kazuph5reviw4core18safe__slice__range(text, url_start, url_end);
2964
2452
  const lower_url = _M0MPC16string6String9to__lower(link_url);
2965
- if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS756, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS756.length))) {
2453
+ if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS767, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS767.length))) {
2966
2454
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(link_text));
2967
2455
  } else {
2968
2456
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<a href=\"");
@@ -3159,18 +2647,18 @@ function _M0FP36kazuph5reviw4core17is__allowed__attr(name) {
3159
2647
  }
3160
2648
  function _M0FP36kazuph5reviw4core18is__dangerous__css(value) {
3161
2649
  const lower = _M0MPC16string6String9to__lower(value);
3162
- return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS769, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS769.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS770, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS770.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS771, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS771.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS772, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS772.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS773, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS773.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS774, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS774.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS775, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS775.length)) || _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS776, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS776.length))))))));
2650
+ return _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS780.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785.length)) || (_M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786.length)) || _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787.length))))))));
3163
2651
  }
3164
2652
  function _M0FP36kazuph5reviw4core24is__event__handler__attr(name) {
3165
- return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS777, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS777.length));
2653
+ return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788.length));
3166
2654
  }
3167
2655
  function _M0FP36kazuph5reviw4core13is__safe__url(url) {
3168
2656
  const lower = _M0MPC16string6String9to__lower(url);
3169
2657
  const trimmed = _M0FP36kazuph5reviw4core4trim(lower);
3170
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS778, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS778.length))) {
2658
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789.length))) {
3171
2659
  return false;
3172
2660
  }
3173
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS779, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS779.length))) {
2661
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790.length))) {
3174
2662
  return false;
3175
2663
  }
3176
2664
  return true;
@@ -3509,7 +2997,7 @@ function _M0FP36kazuph5reviw4core14sanitize__html(input) {
3509
2997
  if (!_M0FP36kazuph5reviw4core16is__allowed__tag(tag_name) && tag_name.length > 0) {
3510
2998
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "&lt;");
3511
2999
  const tag_content = _M0FP36kazuph5reviw4core18safe__slice__range(input, tag_start + 1 | 0, tag_end);
3512
- const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS795, 0, _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS795.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(tag_content, 0, tag_content.length - 1 | 0) : tag_content;
3000
+ const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806, 0, _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS806.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(tag_content, 0, tag_content.length - 1 | 0) : tag_content;
3513
3001
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(trimmed_content));
3514
3002
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "&gt;");
3515
3003
  i = tag_end;
@@ -3553,7 +3041,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3553
3041
  i = i + 1 | 0;
3554
3042
  continue;
3555
3043
  }
3556
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS797, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS797.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)) {
3044
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808.length)) && _M0FP36kazuph5reviw4core22is__html__block__start(line)) {
3557
3045
  const tag_name = _M0FP36kazuph5reviw4core24extract__html__tag__name(line);
3558
3046
  if (tag_name === "details") {
3559
3047
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<details>\n");
@@ -3561,13 +3049,13 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3561
3049
  while (true) {
3562
3050
  if (i < len) {
3563
3051
  const current = _M0FP36kazuph5reviw4core4trim(_M0MPC15array5Array2atGsE(lines, i));
3564
- if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS799, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS799.length))) {
3052
+ if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810.length))) {
3565
3053
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14sanitize__html(_M0MPC15array5Array2atGsE(lines, i)));
3566
3054
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
3567
3055
  i = i + 1 | 0;
3568
3056
  break;
3569
3057
  } else {
3570
- if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS800, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS800.length))) {
3058
+ if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811.length))) {
3571
3059
  break;
3572
3060
  }
3573
3061
  }
@@ -3582,14 +3070,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3582
3070
  while (true) {
3583
3071
  if (i < len && depth > 0) {
3584
3072
  const current = _M0MPC15array5Array2atGsE(lines, i);
3585
- if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS802, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS802.length))) {
3073
+ if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813.length))) {
3586
3074
  depth = depth - 1 | 0;
3587
3075
  if (depth === 0) {
3588
3076
  i = i + 1 | 0;
3589
3077
  break;
3590
3078
  }
3591
3079
  }
3592
- if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS803, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS803.length))) {
3080
+ if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814.length))) {
3593
3081
  depth = depth + 1 | 0;
3594
3082
  }
3595
3083
  _M0MPC15array5Array4pushGsE(inner_lines, current);
@@ -3634,7 +3122,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3634
3122
  }
3635
3123
  continue;
3636
3124
  }
3637
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS807, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS807.length))) {
3125
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818.length))) {
3638
3126
  const level = _M0FP36kazuph5reviw4core21count__heading__level(line);
3639
3127
  if (level >= 1 && level <= 6) {
3640
3128
  const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, level + 1 | 0));
@@ -3660,14 +3148,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3660
3148
  i = i + 1 | 0;
3661
3149
  continue;
3662
3150
  }
3663
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS808.length))) {
3151
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819.length))) {
3664
3152
  const lang = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, 3));
3665
3153
  const code_block_start_line = i + 1 | 0;
3666
3154
  i = i + 1 | 0;
3667
3155
  const code_buf = _M0MPB13StringBuilder11new_2einner(0);
3668
3156
  let code_first = true;
3669
3157
  while (true) {
3670
- if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810.length))) {
3158
+ if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821.length))) {
3671
3159
  if (!code_first) {
3672
3160
  _M0IPB13StringBuilderPB6Logger13write__string(code_buf, "\n");
3673
3161
  }
@@ -3709,10 +3197,10 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3709
3197
  }
3710
3198
  continue;
3711
3199
  }
3712
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811.length))) {
3200
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length))) {
3713
3201
  const quote_lines = [];
3714
3202
  while (true) {
3715
- if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813.length))) {
3203
+ if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824.length))) {
3716
3204
  const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 1));
3717
3205
  _M0MPC15array5Array4pushGsE(quote_lines, content);
3718
3206
  i = i + 1 | 0;
@@ -3740,16 +3228,16 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3740
3228
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</blockquote>\n");
3741
3229
  continue;
3742
3230
  }
3743
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819.length))) {
3231
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS829.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830.length))) {
3744
3232
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<ul>\n");
3745
3233
  while (true) {
3746
- if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824.length)) || _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825.length)))) {
3234
+ if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835.length)) || _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836.length)))) {
3747
3235
  const item_text = _M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 2);
3748
- if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821.length))) {
3236
+ if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832.length))) {
3749
3237
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" disabled /> ");
3750
3238
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
3751
3239
  } else {
3752
- if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length)) || _M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823.length))) {
3240
+ if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833.length)) || _M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834.length))) {
3753
3241
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" checked disabled /> ");
3754
3242
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
3755
3243
  } else {
@@ -3806,7 +3294,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3806
3294
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</tr>\n</thead>\n<tbody>\n");
3807
3295
  i = i + 2 | 0;
3808
3296
  while (true) {
3809
- if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836.length))) {
3297
+ if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847.length))) {
3810
3298
  const cells = _M0FP36kazuph5reviw4core17parse__table__row(_M0MPC15array5Array2atGsE(lines, i));
3811
3299
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<tr>\n");
3812
3300
  const _bind$2 = cells.length;
@@ -4070,7 +3558,7 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
4070
3558
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/styles/github.min.css\" id=\"hljs-theme-light\">");
4071
3559
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<script src=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js\"></script>");
4072
3560
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<style>");
4073
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "/* Dark theme (default) */\n:root {\n color-scheme: dark;\n --bg: #0f172a;\n --bg-gradient: radial-gradient(circle at 20% 20%, #1e293b 0%, #0b1224 35%, #0b1224 60%, #0f172a 100%);\n --panel: #111827;\n --panel-alpha: rgba(15, 23, 42, 0.9);\n --panel-solid: #0b1224;\n --card-bg: rgba(11, 18, 36, 0.95);\n --input-bg: rgba(15, 23, 42, 0.6);\n --border: #1f2937;\n --accent: #60a5fa;\n --accent-2: #f472b6;\n --text: #e5e7eb;\n --text-inverse: #0b1224;\n --muted: #94a3b8;\n --comment: #0f766e;\n --badge: #22c55e;\n --table-bg: rgba(15, 23, 42, 0.7);\n --row-even: rgba(30, 41, 59, 0.4);\n --row-odd: rgba(15, 23, 42, 0.2);\n --selected-bg: rgba(96,165,250,0.15);\n --hover-bg: rgba(96,165,250,0.08);\n --shadow-color: rgba(0,0,0,0.35);\n --code-bg: #1e293b;\n --error: #dc3545;\n}\n/* Light theme */\n[data-theme=\"light\"] {\n color-scheme: light;\n --bg: #f8fafc;\n --bg-gradient: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);\n --panel: #ffffff;\n --panel-alpha: rgba(255, 255, 255, 0.95);\n --panel-solid: #ffffff;\n --card-bg: rgba(255, 255, 255, 0.98);\n --input-bg: #f1f5f9;\n --border: #e2e8f0;\n --accent: #3b82f6;\n --accent-2: #ec4899;\n --text: #1e293b;\n --text-inverse: #ffffff;\n --muted: #64748b;\n --comment: #14b8a6;\n --badge: #22c55e;\n --table-bg: #ffffff;\n --row-even: #f8fafc;\n --row-odd: #ffffff;\n --selected-bg: rgba(59,130,246,0.12);\n --hover-bg: rgba(59,130,246,0.06);\n --shadow-color: rgba(0,0,0,0.1);\n --code-bg: #f1f5f9;\n --error: #dc3545;\n}\n* { box-sizing: border-box; }\nbody {\n margin: 0;\n font-family: \"Inter\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif;\n background: var(--bg-gradient);\n color: var(--text);\n min-height: 100vh;\n transition: background 200ms ease, color 200ms ease;\n}\nheader {\n position: sticky;\n top: 0;\n z-index: 5;\n padding: 12px 16px;\n background: var(--panel-alpha);\n backdrop-filter: blur(8px);\n border-bottom: 1px solid var(--border);\n display: flex;\n gap: 12px;\n align-items: center;\n justify-content: space-between;\n transition: background 200ms ease, border-color 200ms ease;\n}\nheader .meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }\nheader .actions { display: flex; gap: 8px; align-items: center; }\nheader h1 { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }\nheader h1 .title-path { font-size: 11px; font-weight: 400; color: var(--muted); }\nheader h1 .title-file { font-size: 16px; font-weight: 700; }\nheader .badge {\n background: var(--selected-bg);\n color: var(--text);\n padding: 6px 10px;\n border-radius: 8px;\n font-size: 12px;\n border: 1px solid var(--border);\n}\nheader button {\n background: linear-gradient(135deg, #38bdf8, #6366f1);\n color: var(--text-inverse);\n border: none;\n border-radius: 10px;\n padding: 10px 14px;\n font-weight: 700;\n cursor: pointer;\n box-shadow: 0 10px 30px var(--shadow-color);\n transition: transform 120ms ease, box-shadow 120ms ease;\n}\nheader button:hover { transform: translateY(-1px); box-shadow: 0 16px 36px var(--shadow-color); }\nheader button:active { transform: translateY(0); }\n/* Theme toggle button */\n.theme-toggle {\n background: var(--selected-bg);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 8px 10px;\n font-size: 16px;\n cursor: pointer;\n transition: background 120ms ease, transform 120ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n height: 38px;\n}\n.theme-toggle:hover { background: var(--hover-bg); transform: scale(1.05); }\n\n.wrap { padding: 12px 16px 12px; }\n.toolbar {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n margin: 10px 0 12px;\n color: var(--muted);\n font-size: 13px;\n}\n.toolbar button {\n background: rgba(96,165,250,0.12);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 8px 10px;\n font-size: 13px;\n cursor: pointer;\n}\n.toolbar button:hover { background: rgba(96,165,250,0.2); }\n\n.table-box {\n background: var(--table-bg);\n border: 1px solid var(--border);\n border-radius: 12px;\n overflow: auto;\n max-height: calc(100vh - 110px);\n box-shadow: 0 20px 50px var(--shadow-color);\n transition: background 200ms ease, border-color 200ms ease;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n min-width: 540px;\n table-layout: fixed;\n}\nthead th {\n position: sticky;\n top: 0;\n z-index: 3;\n background: var(--panel-solid) !important;\n color: var(--muted);\n font-size: 12px;\n text-align: center;\n padding: 0;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n white-space: nowrap;\n transition: background 200ms ease;\n}\nthead th:not(.selected) {\n background: var(--panel-solid) !important;\n}\nthead th:first-child,\ntbody th {\n width: 28px;\n min-width: 28px;\n max-width: 28px;\n}\nthead th .th-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 6px;\n position: relative;\n height: 100%;\n}\nthead th.filtered .th-inner {\n background: linear-gradient(135deg, rgba(96,165,250,0.18), rgba(34,197,94,0.18));\n color: #e5e7eb;\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 rgba(255,255,255,0.05);\n}\nthead th.filtered .th-inner::after {\n content: 'FILTER';\n font-size: 10px;\n color: #c7d2fe;\n background: rgba(99,102,241,0.24);\n border: 1px solid rgba(99,102,241,0.45);\n padding: 1px 6px;\n border-radius: 999px;\n position: absolute;\n bottom: 4px;\n right: 6px;\n}\n.resizer {\n position: absolute;\n right: 2px;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n touch-action: none;\n opacity: 0.6;\n}\n.resizer::after {\n content: '';\n position: absolute;\n top: 10%;\n bottom: 10%;\n left: 2px;\n width: 2px;\n background: rgba(96,165,250,0.6);\n border-radius: 2px;\n opacity: 0;\n transition: opacity 120ms ease;\n}\nthead th:hover .resizer::after { opacity: 1; }\n\n.freeze {\n position: sticky !important;\n background: var(--panel-solid);\n z-index: 4;\n}\n.freeze-row {\n position: sticky !important;\n background: var(--panel-solid);\n}\n.freeze-row.freeze {\n z-index: 6;\n}\nth.freeze-row {\n z-index: 6;\n}\ntbody th {\n position: sticky;\n left: 0;\n z-index: 2;\n background: var(--panel-solid);\n color: var(--muted);\n text-align: right;\n padding: 8px 10px;\n font-size: 12px;\n border-right: 1px solid var(--border);\n border-bottom: 1px solid var(--border);\n transition: background 200ms ease;\n}\ntd {\n padding: 10px 10px;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n background: var(--row-odd);\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n cursor: pointer;\n transition: background 120ms ease, box-shadow 120ms ease;\n position: relative;\n white-space: pre-wrap;\n word-break: break-word;\n max-width: 320px;\n}\ntr:nth-child(even) td:not(.selected):not(.has-comment) { background: var(--row-even); }\ntd:hover:not(.selected) { background: var(--hover-bg); box-shadow: inset 0 0 0 1px rgba(96,165,250,0.25); }\ntd.has-comment { background: rgba(34,197,94,0.12); box-shadow: inset 0 0 0 1px rgba(34,197,94,0.35); }\ntd.selected, tbody th.selected { background: rgba(99,102,241,0.22) !important; box-shadow: inset 0 0 0 1px rgba(99,102,241,0.45); }\n.preview-highlight { background: rgba(167,139,250,0.18) !important; box-shadow: inset 0 0 0 2px rgba(139,92,246,0.35); border-radius: 4px; transition: background 150ms ease, box-shadow 150ms ease; padding-left: 8px; margin-left: -8px; }\nthead th.selected { background: #c7d2fe !important; box-shadow: inset 0 0 0 1px rgba(99,102,241,0.45); }\n[data-theme=\"dark\"] thead th.selected { background: #3730a3 !important; }\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging td, body.dragging tbody th { cursor: crosshair; }\ntbody th { cursor: pointer; }\ntd .dot {\n position: absolute;\n right: 6px;\n top: 6px;\n width: 8px;\n height: 8px;\n border-radius: 99px;\n background: var(--badge);\n box-shadow: 0 0 0 4px rgba(34,197,94,0.15);\n}\n.floating {\n position: fixed;\n z-index: 10;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 12px;\n padding: 12px;\n width: min(420px, calc(100vw - 32px));\n box-shadow: 0 20px 40px var(--shadow-color);\n display: none;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.card-close-x {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 28px;\n height: 28px;\n padding: 0;\n background: transparent;\n border: none;\n color: var(--muted);\n font-size: 20px;\n line-height: 1;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: background 120ms ease, color 120ms ease;\n}\n.card-close-x:hover { background: var(--border); color: var(--text);\n}\n.floating header {\n position: static;\n background: transparent;\n backdrop-filter: none;\n border: none;\n padding: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.floating h2 { font-size: 14px; margin: 0; color: var(--text); }\n.floating button {\n margin-left: 8px;\n background: var(--accent);\n color: var(--text-inverse);\n border: 1px solid var(--accent);\n padding: 6px 10px;\n border-radius: 8px;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 120ms ease, opacity 120ms ease;\n}\n.floating button.icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n}\n.floating button:hover { opacity: 0.85; }\n.copy-btn-float {\n position: absolute;\n top: 4px;\n right: 4px;\n z-index: 2;\n background: var(--panel-solid) !important;\n border: 1px solid var(--border) !important;\n color: var(--muted) !important;\n opacity: 0.7;\n}\n.copy-btn-float:hover { opacity: 1 !important; }\n.card-actions-split {\n display: flex;\n justify-content: space-between !important;\n align-items: center;\n margin-top: 8px;\n}\n.danger-text {\n background: transparent !important;\n border: none !important;\n color: #ef4444 !important;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n padding: 4px 8px;\n}\n.danger-text:hover { color: #dc2626 !important; text-decoration: underline; }\n.floating textarea {\n width: 100%;\n min-height: 70px;\n resize: vertical;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n padding: 10px;\n font-size: 13px;\n line-height: 1.4;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.floating textarea:focus {\n outline: none;\n border-color: var(--accent);\n}\n.floating .actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 10px;\n}\n.floating .actions button.primary {\n background: linear-gradient(135deg, #22c55e, #16a34a);\n color: var(--text-inverse);\n border: none;\n font-weight: 700;\n box-shadow: 0 10px 30px rgba(22,163,74,0.35);\n}\n.comment-list {\n position: fixed;\n right: 14px;\n bottom: 14px;\n width: 320px;\n max-height: 60vh;\n overflow: auto;\n border: 1px solid var(--border);\n border-radius: 12px;\n background: var(--card-bg);\n box-shadow: 0 18px 40px var(--shadow-color);\n padding: 12px;\n backdrop-filter: blur(6px);\n transition: opacity 120ms ease, transform 120ms ease, background 200ms ease;\n}\n.comment-list h3 { margin: 0 0 8px 0; font-size: 13px; color: var(--muted); }\n.comment-list ol {\n margin: 0;\n padding-left: 18px;\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n}\n.comment-list li { margin-bottom: 6px; }\n.comment-list .hint { color: var(--muted); font-size: 12px; }\n.pill { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 999px; background: var(--selected-bg); border: 1px solid var(--border); font-size: 12px; color: var(--text); cursor: pointer; transition: background 150ms ease, border-color 150ms ease; }\n.pill:hover { background: var(--hover-bg); border-color: var(--accent); }\n.pill strong { color: var(--text); font-weight: 700; }\n.comment-list.collapsed {\n opacity: 0;\n pointer-events: none;\n transform: translateY(8px) scale(0.98);\n}\n.md-preview {\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: 12px;\n padding: 14px;\n margin-bottom: 12px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.md-layout {\n display: flex;\n gap: 16px;\n align-items: stretch;\n margin-top: 8px;\n height: calc(100vh - 80px);\n}\n.md-left {\n flex: 1;\n min-width: 200px;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-left .md-preview {\n max-height: none;\n}\n.md-right {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-right .table-box {\n max-width: none;\n min-width: 0;\n max-height: none;\n overflow: visible;\n}\n/* Ensure thead is opaque in md-right to prevent content showing through */\n.md-right thead th {\n background: var(--panel-solid) !important;\n}\n.md-right thead th.selected {\n background: #c7d2fe !important;\n}\n[data-theme=\"dark\"] .md-right thead th {\n background: var(--panel-solid) !important;\n}\n[data-theme=\"dark\"] .md-right thead th.selected {\n background: #3730a3 !important;\n}\n\n/* === Media Sidebar === */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden {\n display: none;\n}\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar {\n width: 4px;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-track {\n background: transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 4px;\n}\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover {\n border-color: var(--accent);\n transform: scale(1.05);\n box-shadow: 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb.active {\n border-color: var(--accent);\n box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.media-sidebar-thumb svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n}\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img {\n max-width: none;\n max-height: none;\n border-radius: 0;\n}\n.media-sidebar-viewer-content video {\n max-width: 100%;\n max-height: 100vh;\n border-radius: 8px;\n background: #000;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap {\n width: 100%;\n overflow: auto;\n display: flex;\n justify-content: center;\n background: var(--panel);\n border-radius: 8px;\n padding: 16px;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap svg {\n width: 100% !important;\n height: auto !important;\n max-height: calc(100vh - 200px);\n}\n\n/* === Sidebar Rich Viewer: Mermaid zoom/pan/minimap === */\n.sidebar-mermaid-controls {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n margin-bottom: 8px;\n width: 100%;\n box-sizing: border-box;\n}\n.sidebar-mermaid-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 5px;\n padding: 4px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n line-height: 1;\n transition: background 0.15s ease;\n}\n.sidebar-mermaid-controls button:hover { background: var(--hover-bg); }\n.sidebar-mermaid-controls .sidebar-zoom-info {\n font-size: 11px;\n color: var(--muted);\n min-width: 40px;\n text-align: center;\n user-select: none;\n}\n.sidebar-mermaid-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n background: var(--panel);\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.sidebar-mermaid-viewport:active { cursor: grabbing; }\n.sidebar-mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.sidebar-mermaid-wrapper svg {\n display: block;\n}\n.sidebar-minimap {\n position: absolute;\n top: 12px;\n right: 8px;\n bottom: auto;\n left: auto;\n width: 140px;\n height: 100px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n z-index: 3;\n}\n.sidebar-minimap-content {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px;\n}\n.sidebar-minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.sidebar-minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n\n/* === Sidebar Rich Viewer: Image zoom/pan === */\n.sidebar-image-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.sidebar-image-viewport.panning { cursor: grabbing; }\n.sidebar-image-viewport img {\n transform-origin: 0 0;\n max-width: none !important;\n max-height: none !important;\n border-radius: 0 !important;\n user-select: none;\n -webkit-user-drag: none;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 10px;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.65);\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n pointer-events: none;\n z-index: 3;\n backdrop-filter: blur(4px);\n transition: opacity 0.3s ease;\n user-select: none;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-image-hint {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n color: var(--muted);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.4s ease;\n text-align: center;\n z-index: 2;\n}\n\n/* === Sidebar Rich Viewer: Video container (timeline uses shared .video-timeline classes) === */\n.sidebar-video-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n.sidebar-video-container video {\n width: 100%;\n border-radius: 8px 8px 0 0;\n background: #000;\n max-height: calc(100vh - 260px);\n}\n\n.media-sidebar-viewer-label {\n margin-top: 12px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n word-break: break-all;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 8px;\n left: 8px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n z-index: 2;\n transition: background 0.15s ease;\n}\n.media-sidebar-viewer-close:hover {\n background: var(--hover-bg);\n}\n.sidebar-viewer-settings-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n background: rgba(0,0,0,0.5);\n border: none;\n border-radius: 8px;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n font-size: 16px;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-viewer-settings-btn:hover {\n background: rgba(0,0,0,0.8);\n}\n.sidebar-viewer-settings-btn + .video-settings-panel {\n position: absolute;\n top: 44px;\n right: 8px;\n}\n\n.media-sidebar-toggle {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 0.15s ease, border-color 0.15s ease;\n display: none;\n}\n.media-sidebar-toggle.has-media {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n}\n.media-sidebar-toggle:hover {\n background: var(--hover-bg);\n border-color: var(--accent);\n}\n.media-sidebar-toggle .toggle-count {\n font-size: 10px;\n font-weight: 700;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 1px 5px;\n border-radius: 8px;\n line-height: 1.4;\n}\n.view-toggle {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 0.15s ease, border-color 0.15s ease;\n}\n.view-toggle:hover { background: rgba(96,165,250,0.2); }\n.view-toggle.active { background: var(--accent); color: #fff; }\n@media (max-width: 1200px) {\n .media-sidebar-viewer.open {\n width: 40vw;\n max-width: calc(100vw - 350px);\n }\n}\n@media (max-width: 900px) {\n .media-sidebar-thumbs {\n width: 72px;\n }\n .media-sidebar-thumb {\n width: 56px;\n height: 42px;\n }\n .media-sidebar-viewer.open {\n width: 35vw;\n max-width: calc(100vw - 300px);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .media-sidebar,\n .media-sidebar-viewer,\n .media-sidebar-thumb {\n transition: none !important;\n }\n}\n\n.md-preview h1, .md-preview h2, .md-preview h3, .md-preview h4 {\n margin: 0.4em 0 0.2em;\n}\n/* Heading toggle feature */\n.md-preview .md-heading-toggle {\n margin: 0;\n}\n.md-preview .heading-toggle-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 0.6em;\n transition: transform 150ms ease;\n color: var(--muted);\n flex-shrink: 0;\n cursor: pointer;\n padding: 4px 8px;\n margin: -4px 0 -4px -8px;\n border-radius: 4px;\n}\n.md-preview .heading-toggle-icon:hover {\n background: var(--hover-bg);\n color: var(--accent);\n}\n.md-preview .md-heading-toggle.collapsed .heading-toggle-icon {\n transform: rotate(-90deg);\n}\n.md-preview details.heading-toggle {\n margin: 0.2em 0;\n}\n.md-preview details.heading-toggle > summary {\n list-style: none;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.md-preview details.heading-toggle > summary::-webkit-details-marker {\n display: none;\n}\n.md-preview details.heading-toggle > summary > .md-heading-toggle {\n flex: 1;\n}\n.md-preview details.heading-toggle:not([open]) > .toggle-content {\n display: none;\n}\n.md-preview .heading-section-content {\n /* Content wrapper for collapsible sections */\n}\n.md-preview .heading-section-content.hidden {\n display: none;\n}\n.md-preview p { margin: 0.3em 0; line-height: 1.5; }\n.md-preview img { max-width: 100%; height: auto; border-radius: 8px; }\n.md-preview video.video-preview { max-width: 100%; height: auto; border-radius: 8px; background: #000; }\n.md-preview table video.video-preview {\n display: block;\n width: 100%;\n height: auto;\n}\n.md-preview code { background: rgba(255,255,255,0.08); padding: 2px 4px; border-radius: 4px; }\n.md-preview pre {\n background: var(--code-bg);\n padding: 12px 16px;\n border-radius: 8px;\n overflow: auto;\n border: 1px solid var(--border);\n}\n.md-preview pre code {\n background: none;\n padding: 0;\n font-size: 13px;\n line-height: 1.5;\n}\n.md-preview pre code.hljs {\n background: transparent;\n padding: 0;\n}\n/* YAML Frontmatter table */\n.frontmatter-table {\n margin-bottom: 20px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.frontmatter-table table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n.frontmatter-table thead th {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.15), rgba(96, 165, 250, 0.15));\n color: var(--text);\n font-size: 12px;\n font-weight: 600;\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.frontmatter-table tbody th {\n background: rgba(147, 51, 234, 0.08);\n color: #c084fc;\n font-weight: 500;\n font-size: 12px;\n padding: 8px 10px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n}\n.frontmatter-table tbody td {\n padding: 8px 14px;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n word-break: break-word;\n}\n.frontmatter-table tbody tr:last-child th,\n.frontmatter-table tbody tr:last-child td {\n border-bottom: none;\n}\n.frontmatter-table .fm-tag {\n display: inline-block;\n background: rgba(96, 165, 250, 0.15);\n color: var(--accent);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n margin-right: 4px;\n margin-bottom: 4px;\n}\n.frontmatter-table pre {\n margin: 0;\n background: var(--code-bg);\n padding: 8px;\n border-radius: 4px;\n font-size: 11px;\n}\n/* Reviw questions preview cards */\n.reviw-questions-preview {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.reviw-q-card {\n background: var(--code-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 10px 12px;\n}\n.reviw-q-card.resolved {\n border-left: 3px solid #22c55e;\n}\n.reviw-q-card.pending {\n border-left: 3px solid #f59e0b;\n}\n.reviw-q-header {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-q-header strong {\n color: var(--accent);\n}\n.reviw-q-question {\n font-size: 13px;\n color: var(--text);\n margin-bottom: 6px;\n}\n.reviw-q-options {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 6px;\n}\n.reviw-q-answer {\n font-size: 12px;\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n}\n[data-theme=\"light\"] .frontmatter-table tbody th {\n color: #7c3aed;\n}\n/* Table scroll container and indicator */\n.table-scroll-container {\n position: relative;\n margin: 16px 0;\n}\n.table-scroll-wrapper {\n overflow-x: auto;\n border-radius: 8px;\n}\n.scroll-hint {\n text-align: right;\n font-size: 12px;\n color: var(--accent);\n padding: 4px 8px;\n margin-bottom: 4px;\n opacity: 0;\n visibility: hidden;\n transition: opacity 200ms ease;\n}\n.table-scroll-container.can-scroll .scroll-hint {\n opacity: 0.8;\n visibility: visible;\n}\n.table-scroll-container.scrolled-end .scroll-hint {\n opacity: 0;\n visibility: hidden;\n}\n/* Markdown tables in preview */\n.md-preview table:not(.frontmatter-table table) {\n min-width: 100%;\n width: max-content;\n border-collapse: collapse;\n border: 1px solid var(--border);\n border-radius: 8px;\n}\n.md-preview table:not(.frontmatter-table table) th,\n.md-preview table:not(.frontmatter-table table) td {\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n word-break: break-word;\n overflow-wrap: anywhere;\n width: auto;\n}\n/* Force equal column widths when colgroup is not specified */\n.md-preview table:not(.frontmatter-table table) colgroup ~ * th,\n.md-preview table:not(.frontmatter-table table) colgroup ~ * td {\n width: auto;\n}\n.md-preview table:not(.frontmatter-table table) td:has(video),\n.md-preview table:not(.frontmatter-table table) td:has(img) {\n padding: 4px;\n line-height: 0;\n}\n.md-preview table:not(.frontmatter-table table) td video,\n.md-preview table:not(.frontmatter-table table) td img {\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n.md-preview table:not(.frontmatter-table table) th {\n background: var(--panel);\n font-weight: 600;\n font-size: 13px;\n}\n.md-preview table:not(.frontmatter-table table) td {\n font-size: 13px;\n}\n.md-preview table:not(.frontmatter-table table) tr:last-child td {\n border-bottom: none;\n}\n.md-preview table:not(.frontmatter-table table) tr:hover td {\n background: var(--hover-bg);\n}\n/* Source table (右ペイン) */\n.table-box table {\n table-layout: fixed;\n width: 100%;\n}\n.table-box th,\n.table-box td {\n word-break: break-word;\n min-width: 140px;\n}\n.table-box th:first-child,\n.table-box td:first-child {\n min-width: 320px;\n max-width: 480px;\n}\n/* Image fullscreen overlay */\n.image-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1001;\n display: none;\n flex-direction: column;\n}\n.image-fullscreen-overlay.visible {\n display: flex;\n}\n.image-fs-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.image-fs-content:active { cursor: grabbing; }\n.image-fs-content .image-fs-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.image-fs-content .image-fs-wrapper img {\n display: block;\n}\n/* Video fullscreen overlay */\n.video-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.95);\n z-index: 1001;\n display: none;\n justify-content: center;\n align-items: center;\n}\n.video-fullscreen-overlay.visible {\n display: flex;\n}\n.video-close-btn {\n position: absolute;\n top: 14px;\n right: 14px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-close-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-container {\n width: 90vw;\n height: 90vh;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.video-container video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);\n}\n/* Video Timeline - shared base styles (used by both fullscreen and sidebar) */\n.video-timeline {\n background: rgba(0, 0, 0, 0.85);\n display: flex;\n overflow-x: auto;\n backdrop-filter: blur(8px);\n height: 80px;\n padding: 8px;\n gap: 4px;\n}\n.video-timeline::-webkit-scrollbar {\n height: 6px;\n}\n.video-timeline::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n/* Fullscreen-specific video timeline positioning */\n.video-container .video-timeline {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n}\n/* Sidebar-specific video timeline sizing */\n.sidebar-video-container .video-timeline {\n width: 100%;\n height: 72px;\n padding: 6px;\n gap: 3px;\n border-radius: 0 0 8px 8px;\n background: rgba(0, 0, 0, 0.88);\n}\n.sidebar-video-container .video-timeline::-webkit-scrollbar { height: 5px; }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.25); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.4); }\n.timeline-thumb {\n height: 64px;\n cursor: pointer;\n border: 2px solid transparent;\n border-radius: 4px;\n flex-shrink: 0;\n transition: border-color 0.2s, transform 0.15s;\n opacity: 0.85;\n}\n.sidebar-video-container .timeline-thumb {\n height: 52px;\n opacity: 0.8;\n}\n.timeline-thumb:hover {\n border-color: rgba(59, 130, 246, 0.5);\n opacity: 1;\n transform: scale(1.05);\n}\n.timeline-thumb.active {\n border-color: #3b82f6;\n opacity: 1;\n box-shadow: 0 0 12px rgba(59, 130, 246, 0.5);\n}\n.sidebar-video-container .timeline-thumb.active {\n box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);\n}\n.timeline-loading {\n color: rgba(255, 255, 255, 0.6);\n font-size: 12px;\n padding: 8px 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.sidebar-video-container .timeline-loading {\n font-size: 11px;\n padding: 6px 10px;\n gap: 6px;\n color: rgba(255, 255, 255, 0.5);\n}\n.timeline-loading::before {\n content: '';\n width: 14px;\n height: 14px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: timeline-spin 0.8s linear infinite;\n}\n.sidebar-video-container .timeline-loading::before {\n width: 12px;\n height: 12px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 0.25);\n border-top-color: #3b82f6;\n}\n@keyframes timeline-spin {\n to { transform: rotate(360deg); }\n}\n.timeline-time {\n position: absolute;\n bottom: 2px;\n right: 4px;\n font-size: 9px;\n color: #fff;\n background: rgba(0, 0, 0, 0.7);\n padding: 1px 4px;\n border-radius: 2px;\n pointer-events: none;\n}\n.sidebar-video-container .timeline-time {\n font-size: 8px;\n right: 3px;\n padding: 1px 3px;\n}\n.timeline-thumb-wrapper {\n position: relative;\n flex-shrink: 0;\n}\n/* Video threshold settings panel */\n.video-settings-btn {\n position: absolute;\n top: 14px;\n right: 64px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-settings-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-settings-panel {\n position: absolute;\n top: 60px;\n right: 14px;\n background: rgba(0, 0, 0, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 12px;\n padding: 16px;\n z-index: 15;\n min-width: 280px;\n display: none;\n backdrop-filter: blur(8px);\n}\n.video-settings-panel.visible {\n display: block;\n}\n.video-settings-panel h4 {\n margin: 0 0 8px;\n color: #fff;\n font-size: 14px;\n font-weight: 500;\n}\n.video-settings-desc {\n margin: 0 0 12px;\n color: rgba(255, 255, 255, 0.6);\n font-size: 11px;\n line-height: 1.4;\n}\n.video-settings-buttons {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n}\n.video-settings-buttons button {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 6px;\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n font-size: 11px;\n cursor: pointer;\n transition: all 120ms ease;\n}\n.video-settings-buttons button:hover {\n background: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n.video-settings-buttons button.selected {\n background: #3b82f6;\n border-color: #3b82f6;\n color: #fff;\n}\n.video-settings-actions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n.video-settings-actions button {\n flex: 1;\n padding: 8px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n cursor: pointer;\n transition: background 120ms ease;\n}\n.video-settings-actions .reset-btn {\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n}\n.video-settings-actions .reset-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n/* Video Shortcuts Help */\n.video-shortcuts-help {\n opacity: 0.85;\n transition: opacity 0.2s;\n}\n.video-shortcuts-help:hover {\n opacity: 1;\n}\n.video-shortcuts-help .shortcuts-title {\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n color: rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.video-shortcuts-help .shortcuts-title::before {\n content: '\\u2328';\n font-size: 14px;\n}\n.video-shortcuts-help .shortcut-item {\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n.video-shortcuts-help .shortcut-item:last-child {\n margin-bottom: 0;\n}\n.video-shortcuts-help kbd {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 10px;\n font-weight: 500;\n min-width: 18px;\n text-align: center;\n margin-right: 2px;\n}\n/* Reviw Questions Modal */\n.reviw-questions-overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.8);\n z-index: 1100;\n justify-content: center;\n align-items: center;\n}\n.reviw-questions-overlay.visible {\n display: flex;\n}\n.reviw-questions-modal {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: 16px;\n width: 90%;\n max-width: 600px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 25px 80px rgba(0, 0, 0, 0.5);\n}\n.reviw-questions-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-questions-header h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--text);\n}\n.reviw-questions-header h2 span {\n font-size: 14px;\n color: var(--text-dim);\n font-weight: 400;\n}\n.reviw-questions-close {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: var(--text-dim);\n font-size: 18px;\n cursor: pointer;\n border-radius: 8px;\n transition: all 150ms ease;\n}\n.reviw-questions-close:hover {\n background: var(--border);\n color: var(--text);\n}\n.reviw-questions-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px 20px;\n}\n.reviw-questions-footer {\n padding: 12px 20px;\n border-top: 1px solid var(--border);\n display: flex;\n justify-content: flex-end;\n}\n.reviw-questions-later {\n padding: 8px 16px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text-dim);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-questions-later:hover {\n background: var(--border);\n color: var(--text);\n}\n/* Question Item */\n.reviw-question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-question-item:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.reviw-question-text {\n font-size: 14px;\n color: var(--text);\n margin-bottom: 12px;\n line-height: 1.5;\n}\n.reviw-question-options {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n}\n.reviw-question-option {\n padding: 8px 14px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-question-option:hover {\n border-color: var(--accent);\n background: rgba(96, 165, 250, 0.1);\n}\n.reviw-question-option.selected {\n border-color: var(--accent);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.reviw-question-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n border-radius: 8px;\n font-size: 13px;\n resize: vertical;\n min-height: 60px;\n}\n.reviw-question-input:focus {\n outline: none;\n border-color: var(--accent);\n}\n.reviw-question-input::placeholder {\n color: var(--text-dim);\n}\n.reviw-check-mark {\n color: #22c55e;\n font-weight: bold;\n}\n.reviw-question-item.answered {\n border-color: #22c55e;\n background: rgba(34, 197, 94, 0.05);\n}\n.reviw-question-submit {\n margin-top: 10px;\n padding: 8px 16px;\n border: none;\n background: var(--accent);\n color: var(--text-inverse);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 150ms ease;\n}\n.reviw-question-submit:hover {\n filter: brightness(1.1);\n}\n.reviw-question-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n/* Resolved Section */\n.reviw-resolved-section {\n margin-top: 16px;\n border-top: 1px solid var(--border);\n padding-top: 12px;\n}\n.reviw-resolved-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n color: var(--text-dim);\n font-size: 13px;\n cursor: pointer;\n padding: 4px 0;\n}\n.reviw-resolved-toggle:hover {\n color: var(--text);\n}\n.reviw-resolved-toggle .arrow {\n transition: transform 150ms ease;\n}\n.reviw-resolved-toggle.open .arrow {\n transform: rotate(90deg);\n}\n.reviw-resolved-list {\n display: none;\n margin-top: 12px;\n}\n.reviw-resolved-list.visible {\n display: block;\n}\n.reviw-resolved-item {\n padding: 10px 12px;\n background: var(--input-bg);\n border-radius: 8px;\n margin-bottom: 8px;\n opacity: 0.7;\n}\n.reviw-resolved-item:last-child {\n margin-bottom: 0;\n}\n.reviw-resolved-q {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-resolved-a {\n font-size: 13px;\n color: var(--text);\n}\n/* Notice Bar */\n.reviw-questions-bar {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n font-size: 13px;\n z-index: 1050;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n.reviw-questions-bar.visible {\n display: flex;\n}\n.reviw-questions-bar button {\n padding: 4px 12px;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.1);\n color: var(--text-inverse);\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 150ms ease;\n}\n.reviw-questions-bar button:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n/* Adjust layout when bar is visible */\nbody.has-questions-bar header {\n top: 36px;\n}\nbody.has-questions-bar .toolbar,\nbody.has-questions-bar .table-wrap {\n margin-top: 36px;\n}\n/* Copy notification toast */\n.copy-toast {\n position: fixed;\n bottom: 60px;\n left: 50%;\n transform: translateX(-50%) translateY(20px);\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n border-radius: 8px;\n font-size: 13px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms ease, transform 200ms ease;\n z-index: 1000;\n}\n.copy-toast.visible {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n}\n@media (max-width: 960px) {\n .md-layout { flex-direction: column; }\n .md-left { max-width: 100%; flex: 1 1 0; min-height: 0; }\n .md-right { display: none; }\n .media-sidebar { display: none; }\n .media-sidebar-toggle { display: none !important; }\n}\n.md-layout.preview-only .md-right { display: none; }\n.md-layout.preview-only .md-left { flex: 1 1 0; min-height: 0; max-width: 100%; }\n.filter-menu {\n position: absolute;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 10px;\n box-shadow: 0 14px 30px var(--shadow-color);\n padding: 8px;\n display: none;\n z-index: 12;\n width: 180px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.filter-menu button {\n width: 100%;\n display: block;\n margin: 4px 0;\n padding: 8px 10px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n}\n.filter-menu button:hover { background: var(--hover-bg); }\n.modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.6);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n.modal-overlay.visible { display: flex; }\n/* Submit modal: top-right position, no blocking overlay */\n#submit-modal {\n background: transparent;\n pointer-events: none;\n align-items: flex-start;\n justify-content: flex-end;\n}\n#submit-modal.visible { display: flex; }\n#submit-modal .modal-dialog {\n pointer-events: auto;\n margin: 60px 20px 20px 20px; /* top margin avoids header button overlap */\n}\n.modal-dialog {\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 14px;\n padding: 20px;\n width: 90%;\n max-width: 480px;\n box-shadow: 0 20px 40px var(--shadow-color);\n transition: background 200ms ease, border-color 200ms ease;\n}\n.modal-dialog h3 { margin: 0 0 12px; font-size: 18px; color: var(--accent); }\n.modal-summary { color: var(--muted); font-size: 13px; margin-bottom: 12px; }\n.modal-dialog label { display: block; font-size: 13px; margin-bottom: 6px; color: var(--muted); }\n.modal-dialog textarea {\n width: 100%;\n min-height: 100px;\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n padding: 10px;\n font-size: 14px;\n resize: vertical;\n box-sizing: border-box;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.modal-dialog textarea:focus { outline: none; border-color: var(--accent); }\n.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 16px; }\n.modal-actions button {\n padding: 8px 16px;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--selected-bg);\n color: var(--text);\n cursor: pointer;\n font-size: 14px;\n}\n.modal-actions button:hover { background: var(--hover-bg); }\n.modal-actions button.primary { background: var(--accent); color: var(--text-inverse); border-color: var(--accent); }\n.image-attach-area { margin: 12px 0; }\n.image-attach-area label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }\n.image-attach-area.image-attach-small { margin: 8px 0; }\n.image-attach-area.image-attach-small label { font-size: 11px; }\n.image-preview-list { display: flex; flex-wrap: wrap; gap: 8px; min-height: 24px; }\n.image-preview-item { position: relative; }\n.image-preview-item img { max-width: 80px; max-height: 60px; border-radius: 4px; border: 1px solid var(--border); object-fit: cover; }\n.image-preview-item .remove-image { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: var(--error, #ef4444); color: #fff; border: none; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; }\n.image-preview-item .remove-image:hover { background: #dc2626; }\n.modal-actions button.primary:hover { background: #7dd3fc; }\n.modal-actions-decision { justify-content: space-between; align-items: center; }\n.kbd-hint { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 3px; background: rgba(255,255,255,0.15); margin-left: 6px; font-family: system-ui; opacity: 0.8; }\n[data-theme=\"light\"] .kbd-hint { background: rgba(0,0,0,0.08); }\n.decision-btn { padding: 8px 16px; border-radius: 8px; border: 1px solid var(--border); cursor: pointer; font-size: 14px; font-weight: 600; transition: all 0.15s ease; }\n.decision-approve { background: #166534; color: #bbf7d0; border-color: #22c55e; }\n.decision-approve:hover { background: #15803d; }\n.decision-request-changes { background: #92400e; color: #fef3c7; border-color: #f59e0b; }\n.decision-request-changes:hover { background: #a16207; }\n[data-theme=\"light\"] .decision-approve { background: #dcfce7; color: #166534; border-color: #22c55e; }\n[data-theme=\"light\"] .decision-approve:hover { background: #bbf7d0; }\n[data-theme=\"light\"] .decision-request-changes { background: #fef9c3; color: #92400e; border-color: #f59e0b; }\n[data-theme=\"light\"] .decision-request-changes:hover { background: #fef3c7; }\n.comment-sent-badge { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle; }\n.comment-sent-badge.sent { background: #166534; color: #bbf7d0; }\n.comment-sent-badge.failed { background: #7f1d1d; color: #fecaca; }\n[data-theme=\"light\"] .comment-sent-badge.sent { background: #dcfce7; color: #166534; }\n[data-theme=\"light\"] .comment-sent-badge.failed { background: #fee2e2; color: #991b1b; }\n\n/* Send to AI fixed bottom bar */\n.send-to-ai-bar { position: fixed; bottom: 0; left: 0; right: 0; z-index: 10; background: var(--panel-solid); border-top: 1px solid var(--border); padding: 8px 16px; }\n.send-to-ai-inner { display: flex; align-items: center; gap: 10px; max-width: 1200px; margin: 0 auto; }\n.sse-status { font-size: 12px; flex-shrink: 0; }\n.send-to-ai-input { flex: 1; min-width: 120px; height: 34px; padding: 0 10px; border-radius: 0; border: none; border-bottom: 1px solid var(--border); background: transparent; color: var(--text); font-size: 13px; outline: none; box-sizing: border-box; }\n.send-to-ai-input:focus { border-bottom-color: var(--accent); }\n.send-to-ai-btn.sent { background: #16a34a; pointer-events: none; }\n.send-to-ai-btn.sent:hover { background: #16a34a; }\n.send-to-ai-btn:disabled { opacity: 0.4; cursor: not-allowed; }\n#send-and-exit:disabled { opacity: 0.4; cursor: not-allowed; }\n.send-to-ai-btn { height: 34px; padding: 0 20px; border-radius: 6px; border: none; background: #2563eb; color: #fff; font-size: 13px; font-weight: 600; cursor: pointer; transition: background 0.15s ease; flex-shrink: 0; box-sizing: border-box; }\n.send-to-ai-btn:hover { background: #1d4ed8; }\n.send-to-ai-btn:active { background: #1e40af; }\n[data-theme=\"light\"] .send-to-ai-btn { background: #3b82f6; }\n[data-theme=\"light\"] .send-to-ai-btn:hover { background: #2563eb; }\n/* Ensure content is not hidden behind the fixed Send to AI bar */\nbody { padding-bottom: 72px; }\n.md-left, .md-right, .text-view, .diff-view, .table-box { padding-bottom: 72px !important; }\n\n.modal-checkboxes { margin: 12px 0; }\n.modal-checkboxes label {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n color: var(--text);\n margin-bottom: 8px;\n cursor: pointer;\n}\n.modal-checkboxes input[type=\"checkbox\"] {\n margin-top: 2px;\n accent-color: var(--accent);\n}\n\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging .diff-line { cursor: crosshair; }\n@media (max-width: 840px) {\n header { flex-direction: column; align-items: flex-start; }\n .comment-list { width: calc(100% - 24px); right: 12px; }\n}\n/* Mermaid diagram styles */\n.mermaid-container {\n position: relative;\n margin: 16px 0;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 16px;\n overflow: hidden;\n}\n.mermaid-container .mermaid {\n display: flex;\n justify-content: center;\n}\n.mermaid-container .mermaid svg {\n max-width: 100%;\n height: auto;\n cursor: pointer;\n pointer-events: auto;\n}\n.mermaid-error-banner {\n background: #fff3f3;\n color: #c33;\n border: 1px solid #e88;\n border-radius: 4px;\n padding: 6px 10px;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n}\n[data-theme=\"dark\"] .mermaid-error-banner {\n background: #3a1a1a;\n color: #f88;\n border-color: #744;\n}\n.mermaid-fullscreen-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 12px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.mermaid-fullscreen-btn:hover { background: var(--hover-bg); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1000;\n display: none;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: var(--panel-alpha);\n border-bottom: 1px solid var(--border);\n}\n.fullscreen-header h3 { margin: 0; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 8px; align-items: center; }\n.fullscreen-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 12px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n}\n.fullscreen-controls button:hover { background: var(--hover-bg); }\n.fullscreen-controls .zoom-info { font-size: 12px; color: var(--muted); min-width: 50px; text-align: center; }\n.fullscreen-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.fullscreen-content:active { cursor: grabbing; }\n.fullscreen-content .mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n padding: 40px;\n}\n.fullscreen-content .mermaid svg {\n display: block;\n}\n/* Minimap */\n.minimap {\n position: absolute;\n top: 70px;\n right: 20px;\n width: 200px;\n height: 150px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n.minimap-content {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n}\n.minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n/* Error toast */\n.mermaid-error-toast {\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--error);\n color: white;\n padding: 12px 24px;\n border-radius: 8px;\n font-size: 13px;\n max-width: 80%;\n z-index: 2000;\n display: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.3);\n white-space: pre-wrap;\n font-family: monospace;\n}\n.mermaid-error-toast.visible { display: block; }\n\n/* History Panel - Push layout */\nbody { transition: margin-right 0.25s ease; }\nbody.history-open { margin-right: 320px; }\nbody.history-open header { right: 320px; }\nheader { transition: right 0.25s ease; right: 0; }\n\n.history-toggle {\n background: var(--selected-bg);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 8px;\n font-size: 14px;\n cursor: pointer;\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.history-toggle:hover { background: var(--border); }\n.history-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 320px;\n height: 100vh;\n background: var(--panel-solid);\n border-left: 1px solid var(--border);\n z-index: 90;\n transform: translateX(100%);\n transition: transform 0.25s ease;\n display: flex;\n flex-direction: column;\n}\n.history-panel.open { transform: translateX(0); }\n.history-panel-header {\n padding: 16px;\n border-bottom: 1px solid var(--border);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.history-panel-header h3 { margin: 0; font-size: 14px; font-weight: 600; }\n.history-panel-close {\n background: transparent;\n border: none;\n color: var(--muted);\n cursor: pointer;\n font-size: 18px;\n padding: 4px;\n}\n.history-panel-close:hover { color: var(--text); }\n.history-panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.history-empty {\n color: var(--muted);\n font-size: 13px;\n text-align: center;\n padding: 40px 20px;\n}\n.history-date-group { margin-bottom: 16px; }\n.history-date {\n font-size: 11px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 8px;\n text-transform: uppercase;\n}\n.history-item {\n background: var(--bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n margin-bottom: 8px;\n overflow: hidden;\n}\n.history-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 10px;\n background: var(--selected-bg);\n cursor: pointer;\n}\n.history-item-header:hover { background: var(--hover-bg); }\n.history-item-file {\n font-size: 12px;\n font-weight: 600;\n color: var(--text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 180px;\n}\n.history-item-time { font-size: 10px; color: var(--muted); }\n.history-item-body {\n display: none;\n padding: 10px;\n font-size: 12px;\n border-top: 1px solid var(--border);\n}\n.history-item.expanded .history-item-body { display: block; }\n.history-summary {\n color: var(--text);\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--border);\n}\n.history-summary-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 4px;\n}\n.history-summary-text { white-space: pre-wrap; line-height: 1.4; }\n.history-comments-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 6px;\n}\n.history-comment {\n padding: 6px 0;\n border-bottom: 1px solid var(--border);\n}\n.history-comment:last-child { border-bottom: none; }\n.history-comment-line {\n font-size: 10px;\n color: var(--accent);\n font-weight: 600;\n margin-bottom: 2px;\n}\n.history-comment-quote {\n background: rgba(0, 0, 0, 0.3);\n border-left: 2px solid var(--accent);\n padding: 4px 8px;\n margin: 4px 0;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n color: var(--muted);\n white-space: pre-wrap;\n word-break: break-all;\n max-height: 80px;\n overflow-y: auto;\n}\n.history-comment-text {\n color: var(--text);\n line-height: 1.4;\n white-space: pre-wrap;\n}\n.history-badge {\n display: inline-block;\n background: var(--accent);\n color: var(--text-inverse);\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 10px;\n margin-left: 6px;\n}\n/* Table scroll container */\n.table-container {\n overflow-x: auto;\n margin: 16px 0;\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.table-container table {\n margin: 0;\n border: none;\n border-radius: 0;\n}\n.table-container::-webkit-scrollbar {\n height: 6px;\n}\n.table-container::-webkit-scrollbar-track {\n background: var(--bg);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb:hover {\n background: var(--muted);\n}\n/* Media sidebar */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden { display: none; }\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar { width: 4px; }\n.media-sidebar-thumbs::-webkit-scrollbar-track { background: transparent; }\n.media-sidebar-thumbs::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover { border-color: var(--accent); transform: scale(1.05); box-shadow: 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb.active { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.media-sidebar-thumb svg { width: 100%; height: 100%; display: block; }\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video { width: 100%; height: 100%; object-fit: cover; }\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg { width: 100% !important; height: 100% !important; max-width: 100%; max-height: 100%; display: block; }\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 10;\n background: rgba(0,0,0,0.5);\n border: none;\n color: #fff;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img { max-width: none; max-height: none; border-radius: 0; }\n.media-sidebar-viewer-content video { max-width: 100%; max-height: 100vh; border-radius: 0; background: #000; }\n.media-sidebar-viewer-label {\n margin-top: 8px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 12px;\n right: 12px;\n background: rgba(0,0,0,0.7);\n color: #fff;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n pointer-events: none;\n transition: opacity 0.3s ease;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-maximize-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-maximize-btn:hover { background: rgba(0,0,0,0.8); }\n.sidebar-mermaid-viewport { overflow: hidden; position: relative; cursor: grab; }\n.sidebar-mermaid-wrapper { position: absolute; left: 0; top: 0; transform-origin: 0 0; }\n.sidebar-video-container { width: 100%; }\n.sidebar-video-container video { width: 100%; max-height: calc(100vh - 200px); border-radius: 8px; background: #000; }\n/* Video timeline */\n.video-timeline {\n display: flex;\n gap: 8px;\n padding: 8px;\n overflow-x: auto;\n background: var(--panel);\n border-radius: 8px;\n margin-top: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.timeline-loading { color: var(--muted); font-size: 12px; padding: 8px; }\n.timeline-thumb-wrapper {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n}\n.timeline-thumb {\n width: 80px;\n height: 60px;\n object-fit: cover;\n border-radius: 4px;\n border: 2px solid transparent;\n transition: border-color 0.2s ease;\n}\n.timeline-thumb.active { border-color: var(--accent); }\n.timeline-thumb:hover { border-color: var(--accent); opacity: 0.8; }\n.timeline-time { font-size: 10px; color: var(--muted); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.9);\n z-index: 1000;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: rgba(0,0,0,0.8);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n.fullscreen-header h3 { margin: 0; color: #fff; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 6px; align-items: center; }\n.fullscreen-controls button {\n background: rgba(255,255,255,0.1);\n border: 1px solid rgba(255,255,255,0.2);\n color: #fff;\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n}\n.fullscreen-controls button:hover { background: rgba(255,255,255,0.2); }\n.fullscreen-controls .zoom-info { color: #fff; font-size: 12px; min-width: 40px; text-align: center; }\n@media (max-width: 960px) {\n .media-sidebar { display: none !important; }\n .media-sidebar-toggle { display: none !important; }\n}\n.video-overlay-wrapper {\n position: relative;\n display: inline-block;\n}\n.video-fs-overlay-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.video-fs-overlay-btn:hover { background: rgba(0,0,0,0.8); }\n@media (max-width: 600px) {\n .minimap { display: none !important; }\n .fullscreen-header { padding: 8px 12px; }\n .fullscreen-controls { gap: 4px; }\n .fullscreen-controls button { padding: 6px 8px; font-size: 11px; }\n .fullscreen-controls .zoom-info { font-size: 11px; min-width: 32px; }\n .history-panel { width: 100vw; }\n body.history-open header { right: 0; }\n}");
3561
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "/* Dark theme (default) — warm-modern with copper accent */\n:root {\n color-scheme: dark;\n --bg: #14110f;\n --bg-gradient: radial-gradient(120% 80% at 15% 0%, #26201b 0%, #1a1612 40%, #14110f 80%);\n --panel: #1c1815;\n --panel-alpha: rgba(20, 17, 15, 0.82);\n --panel-solid: #1a1612;\n --card-bg: rgba(28, 24, 21, 0.96);\n --input-bg: rgba(32, 27, 23, 0.75);\n --border: #2e2822;\n --border-strong: #3a322b;\n --accent: #d7a67a;\n --accent-strong: #e7b98b;\n --accent-2: #a8765a;\n --accent-soft: rgba(215, 166, 122, 0.14);\n --text: #f1ebe1;\n --text-inverse: #1a1612;\n --muted: #9f9488;\n --comment: #b78a5a;\n --badge: #6bbf86;\n --table-bg: rgba(28, 24, 21, 0.72);\n --row-even: rgba(46, 40, 34, 0.5);\n --row-odd: rgba(28, 24, 21, 0.25);\n --selected-bg: rgba(215, 166, 122, 0.16);\n --hover-bg: rgba(215, 166, 122, 0.08);\n --shadow-color: rgba(0,0,0,0.45);\n --shadow-soft: 0 10px 30px rgba(0,0,0,0.35);\n --shadow-card: 0 20px 40px rgba(0,0,0,0.4);\n --code-bg: #23201c;\n --error: #e06862;\n --success: #6bbf86;\n --warning: #e8b574;\n --radius-sm: 8px;\n --radius-md: 12px;\n --radius-lg: 16px;\n --radius-pill: 999px;\n --font-display: \"Inter\", \"Hiragino Kaku Gothic ProN\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif;\n}\n/* Light theme — warm beige / tan palette (no blue) */\n[data-theme=\"light\"] {\n color-scheme: light;\n --bg: #f6efe1;\n --bg-gradient: linear-gradient(180deg, #fbf6ea 0%, #efe6d3 100%);\n --panel: #fffaf0;\n --panel-alpha: rgba(255, 250, 240, 0.92);\n --panel-solid: #fffaf0;\n --card-bg: rgba(255, 252, 244, 0.98);\n --input-bg: #f4ead7;\n --border: #e4d6bc;\n --border-strong: #d1bf9e;\n --accent: #a8785a;\n --accent-strong: #8c5f43;\n --accent-2: #c89a70;\n --accent-soft: rgba(168, 120, 90, 0.12);\n --text: #3b2d20;\n --text-inverse: #fffaf0;\n --muted: #87735b;\n --comment: #a8785a;\n --badge: #4d9d63;\n --table-bg: #fffaf0;\n --row-even: #f6ecd8;\n --row-odd: #fffaf0;\n --selected-bg: rgba(168, 120, 90, 0.12);\n --hover-bg: rgba(168, 120, 90, 0.06);\n --shadow-color: rgba(60, 40, 20, 0.08);\n --shadow-soft: 0 6px 18px rgba(60, 40, 20, 0.08);\n --shadow-card: 0 18px 36px rgba(60, 40, 20, 0.12);\n --code-bg: #f4ead7;\n --error: #c9564f;\n --success: #4d9d63;\n --warning: #c58a40;\n}\n* { box-sizing: border-box; }\n:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }\nbody {\n margin: 0;\n font-family: var(--font-display, \"Inter\", \"Hiragino Kaku Gothic ProN\", \"Hiragino Sans\", system-ui, -apple-system, sans-serif);\n background: var(--bg-gradient);\n color: var(--text);\n min-height: 100vh;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n letter-spacing: -0.005em;\n transition: background 240ms ease, color 240ms ease;\n}\nheader {\n position: sticky;\n top: 0;\n z-index: 5;\n padding: 14px 20px;\n background: var(--panel-alpha);\n backdrop-filter: saturate(140%) blur(18px);\n -webkit-backdrop-filter: saturate(140%) blur(18px);\n border-bottom: 1px solid var(--border);\n display: flex;\n gap: 14px;\n align-items: center;\n justify-content: space-between;\n transition: background 240ms ease, border-color 240ms ease;\n}\nheader .meta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }\nheader .actions { display: flex; gap: 6px; align-items: center; }\nheader h1 { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }\nheader h1 .title-path { font-size: 11px; font-weight: 500; color: var(--muted); letter-spacing: 0.02em; }\nheader h1 .title-file { font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }\nheader .badge {\n background: var(--accent-soft);\n color: var(--accent-strong);\n padding: 5px 12px;\n border-radius: var(--radius-pill);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n border: 1px solid transparent;\n}\n/* Default header icon buttons (ghost) */\nheader button {\n background: transparent;\n color: var(--text);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 12px;\n height: 34px;\n min-width: 34px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n box-shadow: none;\n transition: background 160ms ease, border-color 160ms ease, transform 120ms ease, color 160ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\nheader button:hover { background: var(--hover-bg); border-color: var(--border); transform: none; box-shadow: none; }\nheader button:active { transform: translateY(0); background: var(--selected-bg); }\n/* Primary submit button */\nheader button.submit-exit-btn {\n background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);\n color: var(--text-inverse);\n border: none;\n padding: 0 18px;\n font-weight: 700;\n letter-spacing: 0.01em;\n box-shadow: var(--shadow-soft);\n}\nheader button.submit-exit-btn:hover {\n background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%);\n border: none;\n transform: translateY(-1px);\n box-shadow: var(--shadow-card);\n}\nheader button.submit-exit-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n box-shadow: none;\n}\n/* Theme toggle button */\n.theme-toggle {\n background: transparent;\n color: var(--muted);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n font-size: 15px;\n cursor: pointer;\n transition: background 160ms ease, transform 160ms ease, color 160ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 34px;\n height: 34px;\n}\n.theme-toggle:hover { background: var(--hover-bg); color: var(--text); transform: rotate(-12deg); }\n/* SSE status dot (header) */\n.sse-dot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n margin-right: 2px;\n border-radius: 50%;\n position: relative;\n cursor: default;\n flex-shrink: 0;\n}\n.sse-dot::before {\n content: \"\";\n display: block;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background: var(--muted);\n box-shadow: 0 0 0 0 currentColor;\n transition: background 200ms ease;\n}\n.sse-dot-connected::before { background: var(--success); box-shadow: 0 0 8px rgba(107, 191, 134, 0.45); }\n.sse-dot-reconnecting::before { background: var(--error); animation: sseBlink 1.1s ease-in-out infinite; }\n.sse-dot-sending::before { background: var(--warning); animation: sseBlink 0.9s ease-in-out infinite; }\n.sse-dot-label { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }\n@keyframes sseBlink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }\n\n.wrap { padding: 12px 16px 12px; }\n.toolbar {\n display: flex;\n gap: 12px;\n align-items: center;\n flex-wrap: wrap;\n margin: 10px 0 12px;\n color: var(--muted);\n font-size: 13px;\n}\n.toolbar button {\n background: var(--accent-soft);\n color: var(--text);\n border: 1px solid var(--border);\n border-radius: var(--radius-sm);\n padding: 8px 12px;\n font-size: 13px;\n cursor: pointer;\n transition: background 160ms ease, border-color 160ms ease;\n}\n.toolbar button:hover { background: var(--hover-bg); border-color: var(--border-strong); }\n\n.table-box {\n background: var(--table-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n overflow: auto;\n max-height: calc(100vh - 110px);\n box-shadow: var(--shadow-soft);\n transition: background 240ms ease, border-color 240ms ease;\n}\ntable {\n border-collapse: collapse;\n width: 100%;\n min-width: 540px;\n table-layout: fixed;\n}\n.table-box thead th,\n.md-right thead th,\n#csv-table thead th {\n position: sticky;\n top: 0;\n z-index: 3;\n background: var(--panel-solid) !important;\n color: var(--muted);\n font-size: 12px;\n text-align: center;\n padding: 0;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n white-space: nowrap;\n transition: background 200ms ease;\n}\n.table-box thead th:not(.selected),\n.md-right thead th:not(.selected),\n#csv-table thead th:not(.selected) {\n background: var(--panel-solid) !important;\n}\n.md-right thead th:first-child,\n.md-right tbody th {\n width: 28px;\n min-width: 28px;\n max-width: 28px;\n}\nthead th .th-inner {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: 8px 6px;\n position: relative;\n height: 100%;\n}\nthead th.filtered .th-inner {\n background: var(--accent-soft);\n color: var(--accent-strong);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 rgba(255,255,255,0.04);\n}\nthead th.filtered .th-inner::after {\n content: 'FILTER';\n font-size: 10px;\n color: var(--accent-strong);\n background: var(--accent-soft);\n border: 1px solid var(--border-strong);\n padding: 1px 6px;\n border-radius: var(--radius-pill);\n position: absolute;\n bottom: 4px;\n right: 6px;\n}\n.resizer {\n position: absolute;\n right: 2px;\n top: 0;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n touch-action: none;\n opacity: 0.6;\n}\n.resizer::after {\n content: '';\n position: absolute;\n top: 10%;\n bottom: 10%;\n left: 2px;\n width: 2px;\n background: var(--accent);\n border-radius: 2px;\n opacity: 0;\n transition: opacity 120ms ease;\n}\nthead th:hover .resizer::after { opacity: 1; }\n\n.freeze {\n position: sticky !important;\n background: var(--panel-solid);\n z-index: 4;\n}\n.freeze-row {\n position: sticky !important;\n background: var(--panel-solid);\n}\n.freeze-row.freeze {\n z-index: 6;\n}\nth.freeze-row {\n z-index: 6;\n}\ntbody th {\n position: sticky;\n left: 0;\n z-index: 2;\n background: var(--panel-solid);\n color: var(--muted);\n text-align: right;\n padding: 8px 10px;\n font-size: 12px;\n border-right: 1px solid var(--border);\n border-bottom: 1px solid var(--border);\n transition: background 200ms ease;\n}\ntd {\n padding: 10px 10px;\n border-bottom: 1px solid var(--border);\n border-right: 1px solid var(--border);\n background: var(--row-odd);\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n cursor: pointer;\n transition: background 120ms ease, box-shadow 120ms ease;\n position: relative;\n white-space: pre-wrap;\n word-break: break-word;\n max-width: 320px;\n}\ntr:nth-child(even) td:not(.selected):not(.has-comment) { background: var(--row-even); }\ntd:hover:not(.selected) { background: var(--hover-bg); box-shadow: inset 0 0 0 1px var(--accent-soft); }\ntd.has-comment { background: rgba(77, 157, 99, 0.12); box-shadow: inset 0 0 0 1px rgba(77, 157, 99, 0.32); }\n[data-theme=\"dark\"] td.has-comment { background: rgba(107, 191, 134, 0.14); box-shadow: inset 0 0 0 1px rgba(107, 191, 134, 0.32); }\ntd.selected, tbody th.selected { background: var(--selected-bg) !important; box-shadow: inset 0 0 0 1px var(--accent) !important; }\n.preview-highlight { background: var(--selected-bg) !important; box-shadow: inset 0 0 0 2px var(--accent); border-radius: 4px; transition: background 150ms ease, box-shadow 150ms ease; padding-left: 8px; margin-left: -8px; }\nthead th.selected { background: var(--accent-soft) !important; color: var(--accent-strong); box-shadow: inset 0 0 0 1px var(--accent); }\n[data-theme=\"dark\"] thead th.selected { background: var(--accent-soft) !important; color: var(--accent-strong); }\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging td, body.dragging tbody th { cursor: crosshair; }\ntbody th { cursor: pointer; }\ntd .dot {\n position: absolute;\n right: 6px;\n top: 6px;\n width: 8px;\n height: 8px;\n border-radius: 99px;\n background: var(--badge);\n box-shadow: 0 0 0 4px rgba(77, 157, 99, 0.18);\n}\n.floating {\n position: fixed;\n z-index: 10;\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 16px;\n width: min(440px, calc(100vw - 32px));\n box-shadow: var(--shadow-card);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n display: none;\n transition: background 240ms ease, border-color 240ms ease;\n}\n.card-close-x {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 28px;\n height: 28px;\n padding: 0;\n background: transparent;\n border: none;\n color: var(--muted);\n font-size: 20px;\n line-height: 1;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n transition: background 120ms ease, color 120ms ease;\n}\n.card-close-x:hover { background: var(--border); color: var(--text);\n}\n.floating header {\n position: static;\n background: transparent;\n backdrop-filter: none;\n border: none;\n padding: 0 0 8px 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.floating h2 { font-size: 14px; font-weight: 600; margin: 0; color: var(--text); letter-spacing: -0.005em; }\n.floating button {\n margin-left: 8px;\n background: var(--accent);\n color: var(--text-inverse);\n border: 1px solid var(--accent);\n padding: 7px 12px;\n border-radius: var(--radius-sm);\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n transition: background 160ms ease, opacity 160ms ease, transform 120ms ease;\n}\n.floating button.icon-only {\n width: 32px;\n height: 32px;\n padding: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 14px;\n line-height: 1;\n}\n.floating button:hover { opacity: 0.85; }\n.copy-btn-float {\n position: absolute;\n top: 4px;\n right: 4px;\n z-index: 2;\n background: var(--panel-solid) !important;\n border: 1px solid var(--border) !important;\n color: var(--muted) !important;\n opacity: 0.7;\n}\n.copy-btn-float:hover { opacity: 1 !important; }\n.card-actions-split {\n display: flex;\n justify-content: space-between !important;\n align-items: center;\n margin-top: 8px;\n}\n.danger-text {\n background: transparent !important;\n border: none !important;\n color: #ef4444 !important;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n padding: 4px 8px;\n}\n.danger-text:hover { color: #dc2626 !important; text-decoration: underline; }\n.floating textarea {\n width: 100%;\n min-height: 70px;\n resize: vertical;\n border-radius: 8px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n padding: 10px;\n font-size: 13px;\n line-height: 1.4;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.floating textarea:focus {\n outline: none;\n border-color: var(--accent);\n}\n.floating .actions {\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n margin-top: 10px;\n}\n.floating .actions button.primary {\n background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);\n color: var(--text-inverse);\n border: none;\n padding: 8px 18px;\n font-weight: 700;\n letter-spacing: 0.01em;\n box-shadow: var(--shadow-soft);\n}\n.floating .actions button.primary:hover {\n background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%);\n box-shadow: var(--shadow-card);\n}\n.comment-list {\n position: fixed;\n right: 14px;\n bottom: 14px;\n width: 320px;\n max-height: 60vh;\n overflow: auto;\n border: 1px solid var(--border);\n border-radius: 12px;\n background: var(--card-bg);\n box-shadow: 0 18px 40px var(--shadow-color);\n padding: 12px;\n backdrop-filter: blur(6px);\n transition: opacity 120ms ease, transform 120ms ease, background 200ms ease;\n}\n.comment-list h3 { margin: 0 0 8px 0; font-size: 13px; color: var(--muted); }\n.comment-list ol {\n margin: 0;\n padding-left: 18px;\n color: var(--text);\n font-size: 13px;\n line-height: 1.45;\n}\n.comment-list li { margin-bottom: 6px; }\n.comment-list .hint { color: var(--muted); font-size: 12px; }\n.pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: var(--radius-pill); background: var(--accent-soft); border: 1px solid transparent; font-size: 12px; font-weight: 500; color: var(--accent-strong); cursor: pointer; transition: background 160ms ease, border-color 160ms ease, transform 120ms ease; }\n.pill:hover { background: var(--hover-bg); border-color: var(--border-strong); transform: translateY(-1px); }\n.pill strong { color: var(--accent-strong); font-weight: 700; }\n.comment-list.collapsed {\n opacity: 0;\n pointer-events: none;\n transform: translateY(8px) scale(0.98);\n}\n.md-preview {\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 20px 24px;\n margin-bottom: 12px;\n box-shadow: var(--shadow-soft);\n line-height: 1.65;\n transition: background 240ms ease, border-color 240ms ease;\n}\n.md-layout {\n display: flex;\n gap: 16px;\n align-items: stretch;\n margin-top: 8px;\n height: calc(100vh - 80px);\n}\n.md-left {\n flex: 1;\n min-width: 200px;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-left .md-preview {\n max-height: none;\n}\n.md-right {\n flex: 1;\n min-width: 0;\n overflow-y: auto;\n overflow-x: auto;\n overscroll-behavior: contain;\n}\n.md-right .table-box {\n max-width: none;\n min-width: 0;\n max-height: none;\n overflow: visible;\n}\n/* Ensure thead is opaque in md-right to prevent content showing through */\n.md-right thead th {\n background: var(--panel-solid) !important;\n}\n.md-right thead th.selected {\n background: var(--accent-soft) !important;\n color: var(--accent-strong);\n}\n[data-theme=\"dark\"] .md-right thead th {\n background: var(--panel-solid) !important;\n}\n[data-theme=\"dark\"] .md-right thead th.selected {\n background: var(--accent-soft) !important;\n color: var(--accent-strong);\n}\n\n/* === Media Sidebar === */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden {\n display: none;\n}\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar {\n width: 4px;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-track {\n background: transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 4px;\n}\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover {\n border-color: var(--accent);\n transform: scale(1.05);\n box-shadow: 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb.active {\n border-color: var(--accent);\n box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color);\n}\n.media-sidebar-thumb img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n.media-sidebar-thumb svg {\n width: 100%;\n height: 100%;\n display: block;\n}\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg {\n width: 100% !important;\n height: 100% !important;\n max-width: 100%;\n max-height: 100%;\n display: block;\n}\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img {\n max-width: none;\n max-height: none;\n border-radius: 0;\n}\n.media-sidebar-viewer-content video {\n max-width: 100%;\n max-height: 100vh;\n border-radius: 8px;\n background: #000;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap {\n width: 100%;\n overflow: auto;\n display: flex;\n justify-content: center;\n background: var(--panel);\n border-radius: 8px;\n padding: 16px;\n}\n.media-sidebar-viewer-content .viewer-mermaid-wrap svg {\n width: 100% !important;\n height: auto !important;\n max-height: calc(100vh - 200px);\n}\n\n/* === Sidebar Rich Viewer: Mermaid zoom/pan/minimap === */\n.sidebar-mermaid-controls {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n margin-bottom: 8px;\n width: 100%;\n box-sizing: border-box;\n}\n.sidebar-mermaid-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 5px;\n padding: 4px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n line-height: 1;\n transition: background 0.15s ease;\n}\n.sidebar-mermaid-controls button:hover { background: var(--hover-bg); }\n.sidebar-mermaid-controls .sidebar-zoom-info {\n font-size: 11px;\n color: var(--muted);\n min-width: 40px;\n text-align: center;\n user-select: none;\n}\n.sidebar-mermaid-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n background: var(--panel);\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.sidebar-mermaid-viewport:active { cursor: grabbing; }\n.sidebar-mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.sidebar-mermaid-wrapper svg {\n display: block;\n}\n.sidebar-minimap {\n position: absolute;\n top: 12px;\n right: 8px;\n bottom: auto;\n left: auto;\n width: 140px;\n height: 100px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 6px;\n overflow: hidden;\n box-shadow: 0 2px 8px rgba(0,0,0,0.12);\n z-index: 3;\n}\n.sidebar-minimap-content {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px;\n}\n.sidebar-minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.sidebar-minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n\n/* === Sidebar Rich Viewer: Image zoom/pan === */\n.sidebar-image-viewport {\n width: 100%;\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.sidebar-image-viewport.panning { cursor: grabbing; }\n.sidebar-image-viewport img {\n transform-origin: 0 0;\n max-width: none !important;\n max-height: none !important;\n border-radius: 0 !important;\n user-select: none;\n -webkit-user-drag: none;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 10px;\n left: 50%;\n transform: translateX(-50%);\n background: rgba(0, 0, 0, 0.65);\n color: #fff;\n font-size: 11px;\n font-weight: 600;\n padding: 3px 10px;\n border-radius: 12px;\n pointer-events: none;\n z-index: 3;\n backdrop-filter: blur(4px);\n transition: opacity 0.3s ease;\n user-select: none;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-image-hint {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 11px;\n color: var(--muted);\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.4s ease;\n text-align: center;\n z-index: 2;\n}\n\n/* === Sidebar Rich Viewer: Video container (timeline uses shared .video-timeline classes) === */\n.sidebar-video-container {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 0;\n}\n.sidebar-video-container video {\n width: 100%;\n border-radius: 8px 8px 0 0;\n background: #000;\n max-height: calc(100vh - 260px);\n}\n\n.media-sidebar-viewer-label {\n margin-top: 12px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n word-break: break-all;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 8px;\n left: 8px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 6px;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n z-index: 2;\n transition: background 0.15s ease;\n}\n.media-sidebar-viewer-close:hover {\n background: var(--hover-bg);\n}\n.sidebar-viewer-settings-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n background: rgba(0,0,0,0.5);\n border: none;\n border-radius: 8px;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #fff;\n font-size: 16px;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-viewer-settings-btn:hover {\n background: rgba(0,0,0,0.8);\n}\n.sidebar-viewer-settings-btn + .video-settings-panel {\n position: absolute;\n top: 44px;\n right: 8px;\n}\n\n.media-sidebar-toggle {\n background: transparent;\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 10px;\n height: 34px;\n min-width: 34px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 160ms ease, border-color 160ms ease;\n display: none;\n align-items: center;\n justify-content: center;\n gap: 6px;\n}\n.media-sidebar-toggle.has-media {\n display: inline-flex;\n}\n.media-sidebar-toggle:hover {\n background: var(--hover-bg);\n border-color: var(--border);\n}\n.media-sidebar-toggle .toggle-count {\n font-size: 10px;\n font-weight: 700;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 1px 6px;\n border-radius: var(--radius-pill);\n line-height: 1.4;\n}\n.view-toggle {\n background: transparent;\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0 10px;\n height: 34px;\n min-width: 34px;\n cursor: pointer;\n color: var(--text);\n font-size: 14px;\n transition: background 160ms ease, border-color 160ms ease, color 160ms ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.view-toggle:hover { background: var(--hover-bg); border-color: var(--border); }\n.view-toggle.active { background: var(--accent-soft); color: var(--accent-strong); border-color: transparent; }\n@media (max-width: 1200px) {\n .media-sidebar-viewer.open {\n width: 40vw;\n max-width: calc(100vw - 350px);\n }\n}\n@media (max-width: 900px) {\n .media-sidebar-thumbs {\n width: 72px;\n }\n .media-sidebar-thumb {\n width: 56px;\n height: 42px;\n }\n .media-sidebar-viewer.open {\n width: 35vw;\n max-width: calc(100vw - 300px);\n }\n}\n@media (prefers-reduced-motion: reduce) {\n .media-sidebar,\n .media-sidebar-viewer,\n .media-sidebar-thumb {\n transition: none !important;\n }\n}\n\n.md-preview h1, .md-preview h2, .md-preview h3, .md-preview h4 {\n margin: 0.4em 0 0.2em;\n}\n/* Heading toggle feature */\n.md-preview .md-heading-toggle {\n margin: 0;\n}\n.md-preview .heading-toggle-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 0.6em;\n transition: transform 150ms ease;\n color: var(--muted);\n flex-shrink: 0;\n cursor: pointer;\n padding: 4px 8px;\n margin: -4px 0 -4px -8px;\n border-radius: 4px;\n}\n.md-preview .heading-toggle-icon:hover {\n background: var(--hover-bg);\n color: var(--accent);\n}\n.md-preview .md-heading-toggle.collapsed .heading-toggle-icon {\n transform: rotate(-90deg);\n}\n.md-preview details.heading-toggle {\n margin: 0.2em 0;\n}\n.md-preview details.heading-toggle > summary {\n list-style: none;\n cursor: default;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.md-preview details.heading-toggle > summary::-webkit-details-marker {\n display: none;\n}\n.md-preview details.heading-toggle > summary > .md-heading-toggle {\n flex: 1;\n}\n.md-preview details.heading-toggle:not([open]) > .toggle-content {\n display: none;\n}\n.md-preview .heading-section-content {\n /* Content wrapper for collapsible sections */\n}\n.md-preview .heading-section-content.hidden {\n display: none;\n}\n.md-preview p { margin: 0.3em 0; line-height: 1.5; }\n.md-preview img { max-width: 100%; height: auto; border-radius: 8px; }\n.md-preview video.video-preview { max-width: 100%; height: auto; border-radius: 8px; background: #000; }\n.md-preview table video.video-preview {\n display: block;\n width: 100%;\n height: auto;\n}\n.md-preview code { background: rgba(255,255,255,0.08); padding: 2px 4px; border-radius: 4px; }\n.md-preview pre {\n background: var(--code-bg);\n padding: 12px 16px;\n border-radius: 8px;\n overflow: auto;\n border: 1px solid var(--border);\n}\n.md-preview pre code {\n background: none;\n padding: 0;\n font-size: 13px;\n line-height: 1.5;\n}\n.md-preview pre code.hljs {\n background: transparent;\n padding: 0;\n}\n/* YAML Frontmatter table */\n.frontmatter-table {\n margin-bottom: 20px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--border);\n background: var(--panel);\n}\n.frontmatter-table table {\n width: 100%;\n border-collapse: collapse;\n table-layout: fixed;\n}\n.frontmatter-table thead th {\n background: linear-gradient(135deg, rgba(147, 51, 234, 0.15), rgba(96, 165, 250, 0.15));\n color: var(--text);\n font-size: 12px;\n font-weight: 600;\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n}\n.frontmatter-table tbody th {\n background: rgba(147, 51, 234, 0.08);\n color: #c084fc;\n font-weight: 500;\n font-size: 12px;\n padding: 8px 10px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n}\n.frontmatter-table tbody td {\n padding: 8px 14px;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n word-break: break-word;\n}\n.frontmatter-table tbody tr:last-child th,\n.frontmatter-table tbody tr:last-child td {\n border-bottom: none;\n}\n.frontmatter-table .fm-tag {\n display: inline-block;\n background: rgba(96, 165, 250, 0.15);\n color: var(--accent);\n padding: 2px 8px;\n border-radius: 12px;\n font-size: 11px;\n margin-right: 4px;\n margin-bottom: 4px;\n}\n.frontmatter-table pre {\n margin: 0;\n background: var(--code-bg);\n padding: 8px;\n border-radius: 4px;\n font-size: 11px;\n}\n/* Reviw questions preview cards */\n.reviw-questions-preview {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n.reviw-q-card {\n background: var(--code-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 10px 12px;\n}\n.reviw-q-card.resolved {\n border-left: 3px solid #22c55e;\n}\n.reviw-q-card.pending {\n border-left: 3px solid #f59e0b;\n}\n.reviw-q-header {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-q-header strong {\n color: var(--accent);\n}\n.reviw-q-question {\n font-size: 13px;\n color: var(--text);\n margin-bottom: 6px;\n}\n.reviw-q-options {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-bottom: 6px;\n}\n.reviw-q-answer {\n font-size: 12px;\n color: #22c55e;\n background: rgba(34, 197, 94, 0.1);\n padding: 4px 8px;\n border-radius: 4px;\n}\n[data-theme=\"light\"] .frontmatter-table tbody th {\n color: #7c3aed;\n}\n/* Table scroll container and indicator */\n.table-scroll-container {\n position: relative;\n margin: 16px 0;\n}\n.table-scroll-wrapper {\n overflow-x: auto;\n border-radius: 8px;\n}\n.scroll-hint {\n text-align: right;\n font-size: 12px;\n color: var(--accent);\n padding: 4px 8px;\n margin-bottom: 4px;\n opacity: 0;\n visibility: hidden;\n transition: opacity 200ms ease;\n}\n.table-scroll-container.can-scroll .scroll-hint {\n opacity: 0.8;\n visibility: visible;\n}\n.table-scroll-container.scrolled-end .scroll-hint {\n opacity: 0;\n visibility: hidden;\n}\n/* Markdown tables in preview — blends with md-preview panel */\n.md-preview table:not(.frontmatter-table table) {\n min-width: 100%;\n width: max-content;\n border-collapse: collapse;\n border: none;\n background: transparent;\n margin: 12px 0 16px;\n}\n.md-preview table:not(.frontmatter-table table) th,\n.md-preview table:not(.frontmatter-table table) td {\n padding: 10px 16px;\n text-align: left;\n border-bottom: 1px solid var(--border);\n vertical-align: top;\n word-break: break-word;\n overflow-wrap: anywhere;\n width: auto;\n}\n/* Force equal column widths when colgroup is not specified */\n.md-preview table:not(.frontmatter-table table) colgroup ~ * th,\n.md-preview table:not(.frontmatter-table table) colgroup ~ * td {\n width: auto;\n}\n.md-preview table:not(.frontmatter-table table) td:has(video),\n.md-preview table:not(.frontmatter-table table) td:has(img) {\n padding: 4px;\n line-height: 0;\n}\n.md-preview table:not(.frontmatter-table table) td video,\n.md-preview table:not(.frontmatter-table table) td img {\n width: 100%;\n max-width: 100%;\n height: auto;\n}\n.md-preview table:not(.frontmatter-table table) thead th {\n background: transparent;\n color: var(--accent-strong);\n font-weight: 700;\n font-size: 11px;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n border-bottom: 2px solid var(--accent);\n padding-top: 8px;\n padding-bottom: 10px;\n}\n.md-preview table:not(.frontmatter-table table) tbody td {\n font-size: 13px;\n color: var(--text);\n}\n.md-preview table:not(.frontmatter-table table) tr:last-child td {\n border-bottom: none;\n}\n.md-preview table:not(.frontmatter-table table) tbody tr:hover td {\n background: var(--hover-bg);\n}\n/* Source table (右ペイン) */\n.table-box table {\n table-layout: fixed;\n width: 100%;\n}\n.table-box th,\n.table-box td {\n word-break: break-word;\n min-width: 140px;\n}\n.table-box th:first-child,\n.table-box td:first-child {\n min-width: 320px;\n max-width: 480px;\n}\n/* Image fullscreen overlay */\n.image-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1001;\n display: none;\n flex-direction: column;\n}\n.image-fullscreen-overlay.visible {\n display: flex;\n}\n.image-fs-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.image-fs-content:active { cursor: grabbing; }\n.image-fs-content .image-fs-wrapper {\n position: absolute;\n transform-origin: 0 0;\n}\n.image-fs-content .image-fs-wrapper img {\n display: block;\n}\n/* Video fullscreen overlay */\n.video-fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.95);\n z-index: 1001;\n display: none;\n justify-content: center;\n align-items: center;\n}\n.video-fullscreen-overlay.visible {\n display: flex;\n}\n.video-close-btn {\n position: absolute;\n top: 14px;\n right: 14px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-close-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-container {\n width: 90vw;\n height: 90vh;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.video-container video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n border-radius: 8px;\n box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);\n}\n/* Video Timeline - shared base styles (used by both fullscreen and sidebar) */\n.video-timeline {\n background: rgba(0, 0, 0, 0.85);\n display: flex;\n overflow-x: auto;\n backdrop-filter: blur(8px);\n height: 80px;\n padding: 8px;\n gap: 4px;\n}\n.video-timeline::-webkit-scrollbar {\n height: 6px;\n}\n.video-timeline::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 3px;\n}\n.video-timeline::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n/* Fullscreen-specific video timeline positioning */\n.video-container .video-timeline {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n}\n/* Sidebar-specific video timeline sizing */\n.sidebar-video-container .video-timeline {\n width: 100%;\n height: 72px;\n padding: 6px;\n gap: 3px;\n border-radius: 0 0 8px 8px;\n background: rgba(0, 0, 0, 0.88);\n}\n.sidebar-video-container .video-timeline::-webkit-scrollbar { height: 5px; }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.08); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.25); }\n.sidebar-video-container .video-timeline::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.4); }\n.timeline-thumb {\n height: 64px;\n cursor: pointer;\n border: 2px solid transparent;\n border-radius: 4px;\n flex-shrink: 0;\n transition: border-color 0.2s, transform 0.15s;\n opacity: 0.85;\n}\n.sidebar-video-container .timeline-thumb {\n height: 52px;\n opacity: 0.8;\n}\n.timeline-thumb:hover {\n border-color: rgba(59, 130, 246, 0.5);\n opacity: 1;\n transform: scale(1.05);\n}\n.timeline-thumb.active {\n border-color: #3b82f6;\n opacity: 1;\n box-shadow: 0 0 12px rgba(59, 130, 246, 0.5);\n}\n.sidebar-video-container .timeline-thumb.active {\n box-shadow: 0 0 8px rgba(59, 130, 246, 0.4);\n}\n.timeline-loading {\n color: rgba(255, 255, 255, 0.6);\n font-size: 12px;\n padding: 8px 12px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.sidebar-video-container .timeline-loading {\n font-size: 11px;\n padding: 6px 10px;\n gap: 6px;\n color: rgba(255, 255, 255, 0.5);\n}\n.timeline-loading::before {\n content: '';\n width: 14px;\n height: 14px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: timeline-spin 0.8s linear infinite;\n}\n.sidebar-video-container .timeline-loading::before {\n width: 12px;\n height: 12px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 0.25);\n border-top-color: #3b82f6;\n}\n@keyframes timeline-spin {\n to { transform: rotate(360deg); }\n}\n.timeline-time {\n position: absolute;\n bottom: 2px;\n right: 4px;\n font-size: 9px;\n color: #fff;\n background: rgba(0, 0, 0, 0.7);\n padding: 1px 4px;\n border-radius: 2px;\n pointer-events: none;\n}\n.sidebar-video-container .timeline-time {\n font-size: 8px;\n right: 3px;\n padding: 1px 3px;\n}\n.timeline-thumb-wrapper {\n position: relative;\n flex-shrink: 0;\n}\n/* Video threshold settings panel */\n.video-settings-btn {\n position: absolute;\n top: 14px;\n right: 64px;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba(0, 0, 0, 0.55);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 50%;\n cursor: pointer;\n color: #fff;\n font-size: 18px;\n z-index: 10;\n backdrop-filter: blur(4px);\n transition: background 120ms ease, transform 120ms ease;\n}\n.video-settings-btn:hover {\n background: rgba(0, 0, 0, 0.75);\n transform: scale(1.04);\n}\n.video-settings-panel {\n position: absolute;\n top: 60px;\n right: 14px;\n background: rgba(0, 0, 0, 0.9);\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 12px;\n padding: 16px;\n z-index: 15;\n min-width: 280px;\n display: none;\n backdrop-filter: blur(8px);\n}\n.video-settings-panel.visible {\n display: block;\n}\n.video-settings-panel h4 {\n margin: 0 0 8px;\n color: #fff;\n font-size: 14px;\n font-weight: 500;\n}\n.video-settings-desc {\n margin: 0 0 12px;\n color: rgba(255, 255, 255, 0.6);\n font-size: 11px;\n line-height: 1.4;\n}\n.video-settings-buttons {\n display: flex;\n gap: 6px;\n margin-bottom: 12px;\n}\n.video-settings-buttons button {\n flex: 1;\n padding: 8px 4px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n border-radius: 6px;\n background: rgba(255, 255, 255, 0.1);\n color: rgba(255, 255, 255, 0.8);\n font-size: 11px;\n cursor: pointer;\n transition: all 120ms ease;\n}\n.video-settings-buttons button:hover {\n background: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n.video-settings-buttons button.selected {\n background: #3b82f6;\n border-color: #3b82f6;\n color: #fff;\n}\n.video-settings-actions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n.video-settings-actions button {\n flex: 1;\n padding: 8px 12px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n cursor: pointer;\n transition: background 120ms ease;\n}\n.video-settings-actions .reset-btn {\n background: rgba(255, 255, 255, 0.15);\n color: #fff;\n}\n.video-settings-actions .reset-btn:hover {\n background: rgba(255, 255, 255, 0.25);\n}\n/* Video Shortcuts Help */\n.video-shortcuts-help {\n opacity: 0.85;\n transition: opacity 0.2s;\n}\n.video-shortcuts-help:hover {\n opacity: 1;\n}\n.video-shortcuts-help .shortcuts-title {\n font-weight: 600;\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.5px;\n margin-bottom: 10px;\n color: rgba(255, 255, 255, 0.7);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n.video-shortcuts-help .shortcuts-title::before {\n content: '\\u2328';\n font-size: 14px;\n}\n.video-shortcuts-help .shortcut-item {\n margin-bottom: 6px;\n display: flex;\n align-items: center;\n gap: 4px;\n flex-wrap: wrap;\n}\n.video-shortcuts-help .shortcut-item:last-child {\n margin-bottom: 0;\n}\n.video-shortcuts-help kbd {\n display: inline-block;\n background: rgba(255, 255, 255, 0.15);\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 4px;\n padding: 2px 6px;\n font-family: system-ui, -apple-system, sans-serif;\n font-size: 10px;\n font-weight: 500;\n min-width: 18px;\n text-align: center;\n margin-right: 2px;\n}\n/* Reviw Questions Modal */\n.reviw-questions-overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.8);\n z-index: 1100;\n justify-content: center;\n align-items: center;\n}\n.reviw-questions-overlay.visible {\n display: flex;\n}\n.reviw-questions-modal {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: 16px;\n width: 90%;\n max-width: 600px;\n max-height: 80vh;\n display: flex;\n flex-direction: column;\n box-shadow: 0 25px 80px rgba(0, 0, 0, 0.5);\n}\n.reviw-questions-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-questions-header h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--text);\n}\n.reviw-questions-header h2 span {\n font-size: 14px;\n color: var(--text-dim);\n font-weight: 400;\n}\n.reviw-questions-close {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n color: var(--text-dim);\n font-size: 18px;\n cursor: pointer;\n border-radius: 8px;\n transition: all 150ms ease;\n}\n.reviw-questions-close:hover {\n background: var(--border);\n color: var(--text);\n}\n.reviw-questions-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px 20px;\n}\n.reviw-questions-footer {\n padding: 12px 20px;\n border-top: 1px solid var(--border);\n display: flex;\n justify-content: flex-end;\n}\n.reviw-questions-later {\n padding: 8px 16px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text-dim);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-questions-later:hover {\n background: var(--border);\n color: var(--text);\n}\n/* Question Item */\n.reviw-question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid var(--border);\n}\n.reviw-question-item:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: none;\n}\n.reviw-question-text {\n font-size: 14px;\n color: var(--text);\n margin-bottom: 12px;\n line-height: 1.5;\n}\n.reviw-question-options {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 12px;\n}\n.reviw-question-option {\n padding: 8px 14px;\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n transition: all 150ms ease;\n}\n.reviw-question-option:hover {\n border-color: var(--accent);\n background: rgba(96, 165, 250, 0.1);\n}\n.reviw-question-option.selected {\n border-color: var(--accent);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.reviw-question-input {\n width: 100%;\n padding: 10px 12px;\n border: 1px solid var(--border);\n background: var(--input-bg);\n color: var(--text);\n border-radius: 8px;\n font-size: 13px;\n resize: vertical;\n min-height: 60px;\n}\n.reviw-question-input:focus {\n outline: none;\n border-color: var(--accent);\n}\n.reviw-question-input::placeholder {\n color: var(--text-dim);\n}\n.reviw-check-mark {\n color: #22c55e;\n font-weight: bold;\n}\n.reviw-question-item.answered {\n border-color: #22c55e;\n background: rgba(34, 197, 94, 0.05);\n}\n.reviw-question-submit {\n margin-top: 10px;\n padding: 8px 16px;\n border: none;\n background: var(--accent);\n color: var(--text-inverse);\n border-radius: 8px;\n cursor: pointer;\n font-size: 13px;\n font-weight: 500;\n transition: all 150ms ease;\n}\n.reviw-question-submit:hover {\n filter: brightness(1.1);\n}\n.reviw-question-submit:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n/* Resolved Section */\n.reviw-resolved-section {\n margin-top: 16px;\n border-top: 1px solid var(--border);\n padding-top: 12px;\n}\n.reviw-resolved-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n background: none;\n border: none;\n color: var(--text-dim);\n font-size: 13px;\n cursor: pointer;\n padding: 4px 0;\n}\n.reviw-resolved-toggle:hover {\n color: var(--text);\n}\n.reviw-resolved-toggle .arrow {\n transition: transform 150ms ease;\n}\n.reviw-resolved-toggle.open .arrow {\n transform: rotate(90deg);\n}\n.reviw-resolved-list {\n display: none;\n margin-top: 12px;\n}\n.reviw-resolved-list.visible {\n display: block;\n}\n.reviw-resolved-item {\n padding: 10px 12px;\n background: var(--input-bg);\n border-radius: 8px;\n margin-bottom: 8px;\n opacity: 0.7;\n}\n.reviw-resolved-item:last-child {\n margin-bottom: 0;\n}\n.reviw-resolved-q {\n font-size: 12px;\n color: var(--text-dim);\n margin-bottom: 4px;\n}\n.reviw-resolved-a {\n font-size: 13px;\n color: var(--text);\n}\n/* Notice Bar */\n.reviw-questions-bar {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n font-size: 13px;\n z-index: 1050;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n.reviw-questions-bar.visible {\n display: flex;\n}\n.reviw-questions-bar button {\n padding: 4px 12px;\n border: 1px solid rgba(255, 255, 255, 0.3);\n background: rgba(255, 255, 255, 0.1);\n color: var(--text-inverse);\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n transition: all 150ms ease;\n}\n.reviw-questions-bar button:hover {\n background: rgba(255, 255, 255, 0.2);\n}\n/* Adjust layout when bar is visible */\nbody.has-questions-bar header {\n top: 36px;\n}\nbody.has-questions-bar .toolbar,\nbody.has-questions-bar .table-wrap {\n margin-top: 36px;\n}\n/* Copy notification toast */\n.copy-toast {\n position: fixed;\n bottom: 60px;\n left: 50%;\n transform: translateX(-50%) translateY(20px);\n background: var(--accent);\n color: var(--text-inverse);\n padding: 8px 16px;\n border-radius: 8px;\n font-size: 13px;\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms ease, transform 200ms ease;\n z-index: 1000;\n}\n.copy-toast.visible {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n}\n@media (max-width: 960px) {\n .md-layout { flex-direction: column; }\n .md-left { max-width: 100%; flex: 1 1 0; min-height: 0; }\n .md-right { display: none; }\n .media-sidebar { display: none; }\n .media-sidebar-toggle { display: none !important; }\n}\n.md-layout.preview-only .md-right { display: none; }\n.md-layout.preview-only .md-left { flex: 1 1 0; min-height: 0; max-width: 100%; }\n.filter-menu {\n position: absolute;\n background: var(--panel-solid);\n border: 1px solid var(--border);\n border-radius: 10px;\n box-shadow: 0 14px 30px var(--shadow-color);\n padding: 8px;\n display: none;\n z-index: 12;\n width: 180px;\n transition: background 200ms ease, border-color 200ms ease;\n}\n.filter-menu button {\n width: 100%;\n display: block;\n margin: 4px 0;\n padding: 8px 10px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 8px;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n text-align: left;\n}\n.filter-menu button:hover { background: var(--hover-bg); }\n.modal-overlay {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.6);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 100;\n}\n.modal-overlay.visible { display: flex; }\n/* Submit modal: top-right position, no blocking overlay */\n#submit-modal {\n background: transparent;\n pointer-events: none;\n align-items: flex-start;\n justify-content: flex-end;\n}\n#submit-modal.visible { display: flex; }\n#submit-modal .modal-dialog {\n pointer-events: auto;\n margin: 60px 20px 20px 20px; /* top margin avoids header button overlap */\n}\n.modal-dialog {\n background: var(--card-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 24px;\n width: 90%;\n max-width: 480px;\n box-shadow: var(--shadow-card);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n transition: background 240ms ease, border-color 240ms ease;\n}\n.modal-dialog h3 { margin: 0 0 14px; font-size: 18px; font-weight: 700; color: var(--text); letter-spacing: -0.01em; }\n.modal-summary { color: var(--muted); font-size: 13px; margin-bottom: 14px; line-height: 1.5; }\n.modal-dialog label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 8px; color: var(--muted); letter-spacing: 0.02em; text-transform: uppercase; }\n.modal-dialog textarea {\n width: 100%;\n min-height: 100px;\n background: var(--input-bg);\n border: 1px solid var(--border);\n border-radius: var(--radius-sm);\n color: var(--text);\n padding: 12px 14px;\n font-size: 14px;\n font-family: inherit;\n line-height: 1.5;\n resize: vertical;\n box-sizing: border-box;\n transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease;\n}\n.modal-dialog textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }\n.modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }\n.modal-actions button {\n padding: 9px 16px;\n border-radius: var(--radius-sm);\n border: 1px solid var(--border);\n background: transparent;\n color: var(--text);\n cursor: pointer;\n font-size: 13px;\n font-weight: 600;\n transition: background 160ms ease, border-color 160ms ease, transform 120ms ease;\n}\n.modal-actions button:hover { background: var(--hover-bg); border-color: var(--border-strong); }\n.modal-actions button.primary { background: var(--accent); color: var(--text-inverse); border-color: var(--accent); }\n.image-attach-area { margin: 12px 0; }\n.image-attach-area label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }\n.image-attach-area.image-attach-small { margin: 8px 0; }\n.image-attach-area.image-attach-small label { font-size: 11px; }\n.image-preview-list { display: flex; flex-wrap: wrap; gap: 8px; min-height: 24px; }\n.image-preview-item { position: relative; }\n.image-preview-item img { max-width: 80px; max-height: 60px; border-radius: 4px; border: 1px solid var(--border); object-fit: cover; }\n.image-preview-item .remove-image { position: absolute; top: -6px; right: -6px; width: 18px; height: 18px; border-radius: 50%; background: var(--error, #ef4444); color: #fff; border: none; cursor: pointer; font-size: 12px; line-height: 1; display: flex; align-items: center; justify-content: center; }\n.image-preview-item .remove-image:hover { background: #dc2626; }\n.modal-actions button.primary:hover { background: #7dd3fc; }\n.modal-actions-decision { justify-content: space-between; align-items: center; }\n.kbd-hint { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 3px; background: rgba(255,255,255,0.15); margin-left: 6px; font-family: system-ui; opacity: 0.8; }\n[data-theme=\"light\"] .kbd-hint { background: rgba(0,0,0,0.08); }\n.decision-btn { padding: 9px 16px; border-radius: var(--radius-sm); border: 1px solid var(--border); cursor: pointer; font-size: 13px; font-weight: 700; letter-spacing: 0.01em; transition: background 160ms ease, border-color 160ms ease, transform 120ms ease, box-shadow 160ms ease; }\n.decision-btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-soft); }\n.decision-approve { background: rgba(107, 191, 134, 0.14); color: var(--success); border-color: rgba(107, 191, 134, 0.42); }\n.decision-approve:hover { background: rgba(107, 191, 134, 0.22); border-color: var(--success); }\n.decision-request-changes { background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%); color: var(--text-inverse); border-color: transparent; }\n.decision-request-changes:hover { background: linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 100%); }\n[data-theme=\"light\"] .decision-approve { background: rgba(77, 157, 99, 0.14); color: var(--success); border-color: rgba(77, 157, 99, 0.38); }\n[data-theme=\"light\"] .decision-approve:hover { background: rgba(77, 157, 99, 0.22); }\n.comment-sent-badge { display: inline-block; font-size: 10px; padding: 1px 6px; border-radius: 4px; margin-left: 6px; vertical-align: middle; }\n.comment-sent-badge.sent { background: #166534; color: #bbf7d0; }\n.comment-sent-badge.failed { background: #7f1d1d; color: #fecaca; }\n[data-theme=\"light\"] .comment-sent-badge.sent { background: #dcfce7; color: #166534; }\n[data-theme=\"light\"] .comment-sent-badge.failed { background: #fee2e2; color: #991b1b; }\n\n/* Submit & Exit disabled state */\n#send-and-exit:disabled { opacity: 0.4; cursor: not-allowed; }\n\n.modal-checkboxes { margin: 12px 0; }\n.modal-checkboxes label {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n font-size: 12px;\n color: var(--text);\n margin-bottom: 8px;\n cursor: pointer;\n}\n.modal-checkboxes input[type=\"checkbox\"] {\n margin-top: 2px;\n accent-color: var(--accent);\n}\n\nbody.dragging { user-select: none; cursor: crosshair; }\nbody.dragging .diff-line { cursor: crosshair; }\n\n/* === Diff viewer === */\n.diff-view {\n margin: 20px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 0;\n box-shadow: var(--shadow-soft);\n overflow: hidden;\n font-family: \"JetBrains Mono\", \"SF Mono\", \"Menlo\", \"Consolas\", ui-monospace, monospace;\n font-size: 13px;\n line-height: 1.55;\n}\n.diff-file-header {\n padding: 12px 20px;\n background: var(--accent-soft);\n color: var(--accent-strong);\n font-weight: 700;\n font-size: 13px;\n border-bottom: 1px solid var(--border);\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.diff-file-header:not(:first-child) { border-top: 1px solid var(--border); }\n.diff-label {\n font-size: 10px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n padding: 2px 8px;\n border-radius: var(--radius-pill);\n background: var(--accent);\n color: var(--text-inverse);\n}\n.diff-label.new { background: rgba(77, 157, 99, 0.18); color: var(--success); }\n.diff-label.deleted { background: rgba(201, 86, 79, 0.18); color: var(--error); }\n.diff-label.binary { background: var(--accent-soft); color: var(--muted); }\n.diff-hunk-header {\n padding: 6px 20px;\n background: var(--input-bg);\n color: var(--muted);\n font-size: 12px;\n border-bottom: 1px solid var(--border);\n}\n.diff-line {\n display: flex;\n padding: 0 20px;\n white-space: pre;\n min-height: 20px;\n border-left: 3px solid transparent;\n transition: background 120ms ease;\n}\n.diff-line:hover { background: var(--hover-bg); }\n.diff-line.addition {\n background: rgba(77, 157, 99, 0.10);\n border-left-color: var(--success);\n color: var(--text);\n}\n.diff-line.deletion {\n background: rgba(201, 86, 79, 0.10);\n border-left-color: var(--error);\n color: var(--text);\n}\n[data-theme=\"dark\"] .diff-line.addition { background: rgba(107, 191, 134, 0.10); }\n[data-theme=\"dark\"] .diff-line.deletion { background: rgba(224, 104, 98, 0.12); }\n.diff-line .line-num {\n display: inline-block;\n width: 44px;\n min-width: 44px;\n text-align: right;\n padding-right: 10px;\n color: var(--muted);\n font-size: 11px;\n user-select: none;\n}\n.diff-line .line-content {\n flex: 1;\n padding-left: 4px;\n}\n.diff-line.addition .line-content::before { content: \"+ \"; color: var(--success); font-weight: 700; }\n.diff-line.deletion .line-content::before { content: \"- \"; color: var(--error); font-weight: 700; }\n.diff-line:not(.addition):not(.deletion) .line-content::before { content: \" \"; }\n.diff-line.has-comment { outline: 2px dashed var(--accent); outline-offset: -2px; }\n\n/* === Plain text viewer === */\n.text-view {\n margin: 20px;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: var(--radius-lg);\n padding: 16px 0;\n box-shadow: var(--shadow-soft);\n font-family: \"JetBrains Mono\", \"SF Mono\", \"Menlo\", \"Consolas\", ui-monospace, monospace;\n font-size: 13px;\n line-height: 1.65;\n}\n.text-line {\n display: flex;\n padding: 0 20px;\n white-space: pre-wrap;\n word-break: break-word;\n transition: background 120ms ease;\n cursor: text;\n}\n.text-line:hover { background: var(--hover-bg); }\n.text-line.has-comment { background: var(--selected-bg); border-left: 3px solid var(--accent); padding-left: 17px; }\n.text-line .line-num {\n display: inline-block;\n width: 44px;\n min-width: 44px;\n text-align: right;\n padding-right: 14px;\n color: var(--muted);\n font-size: 11px;\n user-select: none;\n}\n.text-line .line-content { flex: 1; color: var(--text); }\n\n@media (max-width: 840px) {\n header { flex-direction: column; align-items: flex-start; }\n .comment-list { width: calc(100% - 24px); right: 12px; }\n}\n/* Mermaid diagram styles */\n.mermaid-container {\n position: relative;\n margin: 16px 0;\n background: var(--panel);\n border: 1px solid var(--border);\n border-radius: 8px;\n padding: 16px;\n overflow: hidden;\n}\n.mermaid-container .mermaid {\n display: flex;\n justify-content: center;\n}\n.mermaid-container .mermaid svg {\n max-width: 100%;\n height: auto;\n cursor: pointer;\n pointer-events: auto;\n}\n.mermaid-error-banner {\n background: #fff3f3;\n color: #c33;\n border: 1px solid #e88;\n border-radius: 4px;\n padding: 6px 10px;\n margin-bottom: 8px;\n font-size: 12px;\n font-weight: 500;\n}\n[data-theme=\"dark\"] .mermaid-error-banner {\n background: #3a1a1a;\n color: #f88;\n border-color: #744;\n}\n.mermaid-fullscreen-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 10px;\n cursor: pointer;\n color: var(--text);\n font-size: 12px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 4px;\n}\n.mermaid-fullscreen-btn:hover { background: var(--hover-bg); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n position: fixed;\n inset: 0;\n background: var(--bg);\n z-index: 1000;\n display: none;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: var(--panel-alpha);\n border-bottom: 1px solid var(--border);\n}\n.fullscreen-header h3 { margin: 0; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 8px; align-items: center; }\n.fullscreen-controls button {\n background: var(--selected-bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n padding: 6px 12px;\n cursor: pointer;\n color: var(--text);\n font-size: 13px;\n}\n.fullscreen-controls button:hover { background: var(--hover-bg); }\n.fullscreen-controls .zoom-info { font-size: 12px; color: var(--muted); min-width: 50px; text-align: center; }\n.fullscreen-content {\n flex: 1;\n overflow: hidden;\n position: relative;\n cursor: grab;\n touch-action: none;\n}\n.fullscreen-content:active { cursor: grabbing; }\n.fullscreen-content .mermaid-wrapper {\n position: absolute;\n transform-origin: 0 0;\n padding: 40px;\n}\n.fullscreen-content .mermaid svg {\n display: block;\n}\n/* Minimap */\n.minimap {\n position: absolute;\n top: 70px;\n right: 20px;\n width: 200px;\n height: 150px;\n background: var(--panel-alpha);\n border: 1px solid var(--border);\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n.minimap-content {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 8px;\n}\n.minimap-content svg {\n max-width: 100%;\n max-height: 100%;\n opacity: 0.6;\n}\n.minimap-viewport {\n position: absolute;\n border: 2px solid var(--accent);\n background: rgba(102, 126, 234, 0.2);\n pointer-events: none;\n border-radius: 2px;\n}\n/* Error toast */\n.mermaid-error-toast {\n position: fixed;\n bottom: 20px;\n left: 50%;\n transform: translateX(-50%);\n background: var(--error);\n color: white;\n padding: 12px 24px;\n border-radius: 8px;\n font-size: 13px;\n max-width: 80%;\n z-index: 2000;\n display: none;\n box-shadow: 0 4px 12px rgba(0,0,0,0.3);\n white-space: pre-wrap;\n font-family: monospace;\n}\n.mermaid-error-toast.visible { display: block; }\n\n/* History Panel - Push layout */\nbody { transition: margin-right 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); }\nbody.history-open { margin-right: 340px; }\nbody.history-open header { right: 340px; }\nheader { transition: right 0.28s cubic-bezier(0.2, 0.8, 0.2, 1); right: 0; }\n\n.history-toggle {\n background: transparent;\n color: var(--text);\n border: 1px solid transparent;\n border-radius: var(--radius-sm);\n padding: 0;\n font-size: 14px;\n cursor: pointer;\n width: 34px;\n height: 34px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background 160ms ease, border-color 160ms ease;\n}\n.history-toggle:hover { background: var(--hover-bg); border-color: var(--border); }\n.history-panel {\n position: fixed;\n top: 0;\n right: 0;\n width: 340px;\n height: 100vh;\n background: var(--panel-alpha);\n border-left: 1px solid var(--border);\n backdrop-filter: saturate(140%) blur(24px);\n -webkit-backdrop-filter: saturate(140%) blur(24px);\n box-shadow: -20px 0 40px rgba(0, 0, 0, 0.08);\n z-index: 90;\n transform: translateX(100%);\n transition: transform 0.28s cubic-bezier(0.2, 0.8, 0.2, 1);\n display: flex;\n flex-direction: column;\n}\n.history-panel.open { transform: translateX(0); }\n.history-panel-header {\n padding: 16px;\n border-bottom: 1px solid var(--border);\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.history-panel-header h3 { margin: 0; font-size: 14px; font-weight: 600; }\n.history-panel-close {\n background: transparent;\n border: none;\n color: var(--muted);\n cursor: pointer;\n font-size: 18px;\n padding: 4px;\n}\n.history-panel-close:hover { color: var(--text); }\n.history-panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 12px;\n}\n.history-empty {\n color: var(--muted);\n font-size: 13px;\n text-align: center;\n padding: 40px 20px;\n}\n.history-date-group { margin-bottom: 16px; }\n.history-date {\n font-size: 11px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 8px;\n text-transform: uppercase;\n}\n.history-item {\n background: var(--bg);\n border: 1px solid var(--border);\n border-radius: 6px;\n margin-bottom: 8px;\n overflow: hidden;\n}\n.history-item-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px 10px;\n background: var(--selected-bg);\n cursor: pointer;\n}\n.history-item-header:hover { background: var(--hover-bg); }\n.history-item-file {\n font-size: 12px;\n font-weight: 600;\n color: var(--text);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 180px;\n}\n.history-item-time { font-size: 10px; color: var(--muted); }\n.history-item-body {\n display: none;\n padding: 10px;\n font-size: 12px;\n border-top: 1px solid var(--border);\n}\n.history-item.expanded .history-item-body { display: block; }\n.history-summary {\n color: var(--text);\n margin-bottom: 8px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--border);\n}\n.history-summary-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 4px;\n}\n.history-summary-text { white-space: pre-wrap; line-height: 1.4; }\n.history-comments-label {\n font-size: 10px;\n font-weight: 600;\n color: var(--muted);\n margin-bottom: 6px;\n}\n.history-comment {\n padding: 6px 0;\n border-bottom: 1px solid var(--border);\n}\n.history-comment:last-child { border-bottom: none; }\n.history-comment-line {\n font-size: 10px;\n color: var(--accent);\n font-weight: 600;\n margin-bottom: 2px;\n}\n.history-comment-quote {\n background: rgba(0, 0, 0, 0.3);\n border-left: 2px solid var(--accent);\n padding: 4px 8px;\n margin: 4px 0;\n font-family: 'SF Mono', Monaco, Consolas, monospace;\n font-size: 11px;\n color: var(--muted);\n white-space: pre-wrap;\n word-break: break-all;\n max-height: 80px;\n overflow-y: auto;\n}\n.history-comment-text {\n color: var(--text);\n line-height: 1.4;\n white-space: pre-wrap;\n}\n.history-badge {\n display: inline-block;\n background: var(--accent);\n color: var(--text-inverse);\n font-size: 10px;\n padding: 2px 6px;\n border-radius: 10px;\n margin-left: 6px;\n}\n/* Table scroll container */\n.table-container {\n overflow-x: auto;\n margin: 16px 0;\n border-radius: 8px;\n border: 1px solid var(--border);\n}\n.table-container table {\n margin: 0;\n border: none;\n border-radius: 0;\n}\n.table-container::-webkit-scrollbar {\n height: 6px;\n}\n.table-container::-webkit-scrollbar-track {\n background: var(--bg);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb {\n background: var(--border);\n border-radius: 3px;\n}\n.table-container::-webkit-scrollbar-thumb:hover {\n background: var(--muted);\n}\n/* Media sidebar */\n.media-sidebar {\n display: flex;\n flex-shrink: 0;\n height: calc(100vh - 80px);\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n z-index: 10;\n max-width: 60%;\n}\n.media-sidebar.hidden { display: none; }\n.media-sidebar-thumbs {\n width: 96px;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n gap: 8px;\n background: var(--panel);\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.media-sidebar-thumbs::-webkit-scrollbar { width: 4px; }\n.media-sidebar-thumbs::-webkit-scrollbar-track { background: transparent; }\n.media-sidebar-thumbs::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }\n.media-sidebar-thumb {\n width: 80px;\n height: 60px;\n border-radius: 6px;\n border: 2px solid var(--border);\n overflow: hidden;\n cursor: pointer;\n position: relative;\n flex-shrink: 0;\n background: var(--bg);\n transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;\n}\n.media-sidebar-thumb:hover { border-color: var(--accent); transform: scale(1.05); box-shadow: 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb.active { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent), 0 2px 8px var(--shadow-color); }\n.media-sidebar-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }\n.media-sidebar-thumb svg { width: 100%; height: 100%; display: block; }\n.media-sidebar-thumb-video {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #000;\n}\n.media-sidebar-thumb-video video { width: 100%; height: 100%; object-fit: cover; }\n.media-sidebar-thumb-video::after {\n content: '';\n position: absolute;\n width: 24px;\n height: 24px;\n background: rgba(255,255,255,0.85);\n border-radius: 50%;\n}\n.media-sidebar-thumb-video::before {\n content: '';\n position: absolute;\n z-index: 1;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 9px;\n border-color: transparent transparent transparent #000;\n margin-left: 2px;\n}\n.media-sidebar-thumb-mermaid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n padding: 2px;\n background: var(--panel);\n overflow: hidden;\n}\n.media-sidebar-thumb-mermaid svg { width: 100% !important; height: 100% !important; max-width: 100%; max-height: 100%; display: block; }\n.media-sidebar-thumb-index {\n position: absolute;\n top: 2px;\n left: 2px;\n background: rgba(0,0,0,0.6);\n color: #fff;\n font-size: 9px;\n font-weight: 600;\n padding: 1px 4px;\n border-radius: 3px;\n line-height: 1.2;\n pointer-events: none;\n z-index: 1;\n}\n.media-sidebar-viewer {\n width: 0;\n overflow: hidden;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n background: var(--bg);\n position: relative;\n}\n.media-sidebar-viewer.open {\n width: 45vw;\n max-width: calc(100vw - 400px);\n overflow: hidden;\n padding: 0;\n border-right: 1px solid var(--border);\n display: flex;\n flex-direction: column;\n}\n.media-sidebar-viewer-close {\n position: absolute;\n top: 4px;\n left: 4px;\n z-index: 10;\n background: rgba(0,0,0,0.5);\n border: none;\n color: #fff;\n width: 28px;\n height: 28px;\n border-radius: 50%;\n cursor: pointer;\n font-size: 14px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.media-sidebar-viewer-content {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: 0;\n}\n.media-sidebar-viewer-content img { max-width: none; max-height: none; border-radius: 0; }\n.media-sidebar-viewer-content video { max-width: 100%; max-height: 100vh; border-radius: 0; background: #000; }\n.media-sidebar-viewer-label {\n margin-top: 8px;\n font-size: 12px;\n color: var(--muted);\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n.sidebar-zoom-indicator {\n position: absolute;\n bottom: 12px;\n right: 12px;\n background: rgba(0,0,0,0.7);\n color: #fff;\n padding: 4px 8px;\n border-radius: 4px;\n font-size: 11px;\n pointer-events: none;\n transition: opacity 0.3s ease;\n}\n.sidebar-zoom-indicator.hidden { opacity: 0; }\n.sidebar-maximize-btn {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.sidebar-maximize-btn:hover { background: rgba(0,0,0,0.8); }\n.sidebar-mermaid-viewport { overflow: hidden; position: relative; cursor: grab; }\n.sidebar-mermaid-wrapper { position: absolute; left: 0; top: 0; transform-origin: 0 0; }\n.sidebar-video-container { width: 100%; }\n.sidebar-video-container video { width: 100%; max-height: calc(100vh - 200px); border-radius: 8px; background: #000; }\n/* Video timeline */\n.video-timeline {\n display: flex;\n gap: 8px;\n padding: 8px;\n overflow-x: auto;\n background: var(--panel);\n border-radius: 8px;\n margin-top: 8px;\n scrollbar-width: thin;\n scrollbar-color: var(--border) transparent;\n}\n.timeline-loading { color: var(--muted); font-size: 12px; padding: 8px; }\n.timeline-thumb-wrapper {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n}\n.timeline-thumb {\n width: 80px;\n height: 60px;\n object-fit: cover;\n border-radius: 4px;\n border: 2px solid transparent;\n transition: border-color 0.2s ease;\n}\n.timeline-thumb.active { border-color: var(--accent); }\n.timeline-thumb:hover { border-color: var(--accent); opacity: 0.8; }\n.timeline-time { font-size: 10px; color: var(--muted); }\n/* Fullscreen overlay */\n.fullscreen-overlay {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(0,0,0,0.9);\n z-index: 1000;\n flex-direction: column;\n}\n.fullscreen-overlay.visible { display: flex; }\n.fullscreen-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 16px;\n background: rgba(0,0,0,0.8);\n border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n.fullscreen-header h3 { margin: 0; color: #fff; font-size: 14px; }\n.fullscreen-controls { display: flex; gap: 6px; align-items: center; }\n.fullscreen-controls button {\n background: rgba(255,255,255,0.1);\n border: 1px solid rgba(255,255,255,0.2);\n color: #fff;\n padding: 6px 12px;\n border-radius: 6px;\n cursor: pointer;\n font-size: 12px;\n}\n.fullscreen-controls button:hover { background: rgba(255,255,255,0.2); }\n.fullscreen-controls .zoom-info { color: #fff; font-size: 12px; min-width: 40px; text-align: center; }\n@media (max-width: 960px) {\n .media-sidebar { display: none !important; }\n .media-sidebar-toggle { display: none !important; }\n}\n.video-overlay-wrapper {\n position: relative;\n display: inline-block;\n}\n.video-fs-overlay-btn {\n position: absolute;\n top: 8px;\n right: 8px;\n width: 36px;\n height: 36px;\n padding: 0;\n background: rgba(0,0,0,0.6);\n border: 1px solid rgba(255,255,255,0.3);\n color: #fff;\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 5;\n transition: background 120ms ease;\n}\n.video-fs-overlay-btn:hover { background: rgba(0,0,0,0.8); }\n@media (max-width: 600px) {\n .minimap { display: none !important; }\n .fullscreen-header { padding: 8px 12px; }\n .fullscreen-controls { gap: 4px; }\n .fullscreen-controls button { padding: 6px 8px; font-size: 11px; }\n .fullscreen-controls .zoom-info { font-size: 11px; min-width: 32px; }\n .history-panel { width: 100vw; }\n body.history-open header { right: 0; }\n}");
4074
3562
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</style></head><body>");
4075
3563
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<header><div class=\"meta\">");
4076
3564
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<h1>");
@@ -4106,11 +3594,12 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
4106
3594
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"badge\">Click to comment / ESC to cancel</span>");
4107
3595
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"pill\" id=\"pill-comments\" title=\"Toggle comment panel\">Comments <strong id=\"comment-count\">0</strong></button>");
4108
3596
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div><div class=\"actions\">");
3597
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"sse-dot sse-dot-connected\" id=\"sse-status\" role=\"status\" aria-live=\"polite\" title=\"Connected\"><span class=\"sse-dot-label\">Connected</span></span>");
4109
3598
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"media-sidebar-toggle\" id=\"media-sidebar-toggle\" title=\"Media Gallery\" aria-label=\"Toggle media gallery\">🖼<span class=\"toggle-count\" id=\"media-toggle-count\"></span></button>");
4110
3599
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"view-toggle\" id=\"view-toggle\" title=\"Hide source panel\">&#128221;</button>");
4111
3600
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"history-toggle\" id=\"history-toggle\" title=\"Review History\">&#9776;</button>");
4112
3601
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"theme-toggle\" id=\"theme-toggle\" title=\"Toggle theme\"><span id=\"theme-icon\">&#127769;</span></button>");
4113
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button id=\"send-and-exit\">Submit &amp; Exit</button>");
3602
+ _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button id=\"send-and-exit\" class=\"submit-exit-btn\">Submit &amp; Exit</button>");
4114
3603
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></header>");
4115
3604
  }
4116
3605
  function _M0FP36kazuph5reviw4core23build__questions__modal(buf, questions) {
@@ -4389,14 +3878,6 @@ function _M0FP36kazuph5reviw4core21build__script__footer(buf, port, mode, filena
4389
3878
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core18escape__js__string(filename));
4390
3879
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "\";</script></body></html>");
4391
3880
  }
4392
- function _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf) {
4393
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-bar\" id=\"send-to-ai-bar\">");
4394
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-inner\">");
4395
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"sse-status\" id=\"sse-status\">🟢 Connected</span>");
4396
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<input type=\"text\" class=\"send-to-ai-input\" id=\"send-to-ai-summary\" placeholder=\"Comment to AI (optional)\" />");
4397
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"send-to-ai-btn\" id=\"send-to-ai-btn\">📤 Send to AI</button>");
4398
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></div>");
4399
- }
4400
3881
  function _M0FP36kazuph5reviw4core20build__submit__modal(buf) {
4401
3882
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-overlay\" id=\"submit-modal\">");
4402
3883
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-dialog\">");
@@ -4586,7 +4067,6 @@ function _M0FP36kazuph5reviw4core29build__markdown__html_2einner(md, filename, p
4586
4067
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4587
4068
  _M0FP36kazuph5reviw4core27build__comment__list__aside(buf);
4588
4069
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4589
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4590
4070
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4591
4071
  _M0FP36kazuph5reviw4core26build__mermaid__fullscreen(buf);
4592
4072
  _M0FP36kazuph5reviw4core24build__image__fullscreen(buf);
@@ -4732,7 +4212,6 @@ function _M0FP36kazuph5reviw4core16build__csv__html(data, filename, port) {
4732
4212
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</tbody></table></div>");
4733
4213
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4734
4214
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4735
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4736
4215
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4737
4216
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4738
4217
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<script>const DATA = ");
@@ -4869,7 +4348,6 @@ function _M0FP36kazuph5reviw4core17build__diff__html(data, filename, port) {
4869
4348
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
4870
4349
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4871
4350
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4872
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4873
4351
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4874
4352
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4875
4353
  _M0FP36kazuph5reviw4core21build__script__footer(buf, port, "diff", filename);
@@ -4902,7 +4380,6 @@ function _M0FP36kazuph5reviw4core17build__text__html(lines, filename, port) {
4902
4380
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
4903
4381
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4904
4382
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4905
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4906
4383
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4907
4384
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4908
4385
  _M0FP36kazuph5reviw4core21build__script__footer(buf, port, "text", filename);
@@ -4987,23 +4464,23 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
4987
4464
  while (true) {
4988
4465
  if (i < len) {
4989
4466
  const line = _M0MPC15array5Array2atGsE(lines, i);
4990
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS964, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS964.length))) {
4467
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975.length))) {
4991
4468
  const header = _M0FP36kazuph5reviw4core19parse__hunk__header(line);
4992
4469
  const hunk_lines = [];
4993
4470
  i = i + 1 | 0;
4994
4471
  while (true) {
4995
4472
  if (i < len) {
4996
4473
  const l = _M0MPC15array5Array2atGsE(lines, i);
4997
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS966, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS966.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS967, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS967.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS968, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS968.length)))) {
4474
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS977.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979.length)))) {
4998
4475
  break;
4999
4476
  }
5000
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS969, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS969.length))) {
4477
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980.length))) {
5001
4478
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(1, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5002
4479
  } else {
5003
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS970, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS970.length))) {
4480
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981.length))) {
5004
4481
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(2, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5005
4482
  } else {
5006
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS971, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS971.length))) {
4483
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982.length))) {
5007
4484
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5008
4485
  } else {
5009
4486
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, l));
@@ -5018,7 +4495,7 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
5018
4495
  }
5019
4496
  _M0MPC15array5Array4pushGsE(hunks, new _M0TP36kazuph5reviw4core8DiffHunk(header._0, header._1, header._2, header._3, header._4, hunk_lines));
5020
4497
  } else {
5021
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS972, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS972.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS973, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS973.length))) {
4498
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984.length))) {
5022
4499
  break;
5023
4500
  } else {
5024
4501
  i = i + 1 | 0;
@@ -5058,7 +4535,7 @@ function _M0FP36kazuph5reviw4core19extract__git__paths(line) {
5058
4535
  }
5059
4536
  }
5060
4537
  function _M0FP36kazuph5reviw4core19strip__diff__prefix(path) {
5061
- return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS975, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS975.length)) || _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS976, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS976.length)) ? _M0FP36kazuph5reviw4core11safe__slice(path, 2) : path;
4538
+ return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS986.length)) || _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987.length)) ? _M0FP36kazuph5reviw4core11safe__slice(path, 2) : path;
5062
4539
  }
5063
4540
  function _M0FP36kazuph5reviw4core11parse__diff(input) {
5064
4541
  const files = [];
@@ -5068,7 +4545,7 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5068
4545
  while (true) {
5069
4546
  if (i < len) {
5070
4547
  const line = _M0MPC15array5Array2atGsE(lines, i);
5071
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS978, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS978.length))) {
4548
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS989, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS989.length))) {
5072
4549
  const paths = _M0FP36kazuph5reviw4core19extract__git__paths(line);
5073
4550
  let is_new = false;
5074
4551
  let is_deleted = false;
@@ -5077,19 +4554,19 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5077
4554
  while (true) {
5078
4555
  if (i < len) {
5079
4556
  const l = _M0MPC15array5Array2atGsE(lines, i);
5080
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS980, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS980.length))) {
4557
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS991, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS991.length))) {
5081
4558
  is_new = true;
5082
4559
  i = i + 1 | 0;
5083
4560
  } else {
5084
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS981, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS981.length))) {
4561
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS992, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992.length))) {
5085
4562
  is_deleted = true;
5086
4563
  i = i + 1 | 0;
5087
4564
  } else {
5088
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS982, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS982.length))) {
4565
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS993, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993.length))) {
5089
4566
  is_binary = true;
5090
4567
  i = i + 1 | 0;
5091
4568
  } else {
5092
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS983, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS983.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS984, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS984.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS985, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS985.length)))) {
4569
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS994, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994.length)) || (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS995, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995.length)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS996, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996.length)))) {
5093
4570
  i = i + 1 | 0;
5094
4571
  } else {
5095
4572
  break;
@@ -5106,11 +4583,11 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5106
4583
  i = result._1;
5107
4584
  _M0MPC15array5Array4pushGsE(files, new _M0TP36kazuph5reviw4core8DiffFile(paths._0, paths._1, is_new, is_deleted, is_binary, result._0));
5108
4585
  } else {
5109
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS986, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS986.length))) {
4586
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS997, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997.length))) {
5110
4587
  const old_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(line, 4));
5111
4588
  let new_path = "";
5112
4589
  i = i + 1 | 0;
5113
- if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS987, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS987.length))) {
4590
+ if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS998, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998.length))) {
5114
4591
  new_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 4));
5115
4592
  i = i + 1 | 0;
5116
4593
  }
@@ -5231,13 +4708,13 @@ function _M0FP36kazuph5reviw4core21csv__data__from__flat(flat) {
5231
4708
  }
5232
4709
  }
5233
4710
  function _M0FP36kazuph5reviw6server10os__tmpdir() {
5234
- return tmpdir$2105();
4711
+ return tmpdir$1949();
5235
4712
  }
5236
4713
  function _M0FP36kazuph5reviw6server10path__join(_tmp, _tmp$2) {
5237
- return join$2108(_tmp, _tmp$2);
4714
+ return join$1952(_tmp, _tmp$2);
5238
4715
  }
5239
4716
  function _M0FP36kazuph5reviw6server17write__file__sync(_tmp, _tmp$2) {
5240
- return writeFileSync$2112(_tmp, _tmp$2);
4717
+ return writeFileSync$1956(_tmp, _tmp$2);
5241
4718
  }
5242
4719
  function _M0FP36kazuph5reviw6server19write__file__secure(path, data) {
5243
4720
  _M0FP36kazuph5reviw6server15try__call__void(() => {
@@ -5252,7 +4729,7 @@ function _M0FP36kazuph5reviw6server15init__live__log() {
5252
4729
  _M0FP36kazuph5reviw6server14console__error(`[REVIW_LIVE] ${path}`);
5253
4730
  }
5254
4731
  function _M0FP36kazuph5reviw6server22fs__append__file__sync(_tmp, _tmp$2) {
5255
- return appendFileSync$2115(_tmp, _tmp$2);
4732
+ return appendFileSync$1959(_tmp, _tmp$2);
5256
4733
  }
5257
4734
  function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
5258
4735
  if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0) {
@@ -5265,10 +4742,10 @@ function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
5265
4742
  }
5266
4743
  }
5267
4744
  function _M0FP36kazuph5reviw6server12exists__sync(_tmp) {
5268
- return existsSync$2117(_tmp);
4745
+ return existsSync$1961(_tmp);
5269
4746
  }
5270
4747
  function _M0FP36kazuph5reviw6server12unlink__sync(_tmp) {
5271
- return unlinkSync$2119(_tmp);
4748
+ return unlinkSync$1963(_tmp);
5272
4749
  }
5273
4750
  function _M0FP36kazuph5reviw6server18cleanup__live__log() {
5274
4751
  if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0 && _M0FP36kazuph5reviw6server12exists__sync(_M0FP36kazuph5reviw6server15live__log__path.val)) {
@@ -5281,7 +4758,7 @@ function _M0FP36kazuph5reviw6server18cleanup__live__log() {
5281
4758
  }
5282
4759
  }
5283
4760
  function _M0FP36kazuph5reviw6server16read__file__sync(_tmp, _tmp$2) {
5284
- return readFileSync$2122(_tmp, _tmp$2);
4761
+ return readFileSync$1966(_tmp, _tmp$2);
5285
4762
  }
5286
4763
  function _M0FP36kazuph5reviw6server12load__ui__js() {
5287
4764
  if (_M0FP36kazuph5reviw6server13ui__js__cache.val.length > 0) {
@@ -5299,7 +4776,7 @@ function _M0FP36kazuph5reviw6server12load__ui__js() {
5299
4776
  }
5300
4777
  }
5301
4778
  function _M0FP36kazuph5reviw6server11os__homedir() {
5302
- return homedir$2124();
4779
+ return homedir$1968();
5303
4780
  }
5304
4781
  function _M0FP36kazuph5reviw6server9lock__dir() {
5305
4782
  const override_dir = _M0FP36kazuph5reviw6server13get__env__var("REVIW_LOCK_DIR");
@@ -5310,7 +4787,7 @@ function _M0FP36kazuph5reviw6server10lock__path(port) {
5310
4787
  return _M0FP36kazuph5reviw6server10path__join(dir, `${_M0IP016_24default__implPB4Show10to__stringGiE(port)}.lock`);
5311
4788
  }
5312
4789
  function _M0FP36kazuph5reviw6server11mkdir__sync(_tmp, _tmp$2) {
5313
- return mkdirSync$2127(_tmp, _tmp$2);
4790
+ return mkdirSync$1971(_tmp, _tmp$2);
5314
4791
  }
5315
4792
  function _M0FP36kazuph5reviw6server17ensure__lock__dir() {
5316
4793
  const dir = _M0FP36kazuph5reviw6server9lock__dir();
@@ -5379,7 +4856,7 @@ function _M0FP36kazuph5reviw6server21find__available__port(base) {
5379
4856
  return base;
5380
4857
  }
5381
4858
  function _M0FP36kazuph5reviw6server13path__dirname(_tmp) {
5382
- return dirname$2134(_tmp);
4859
+ return dirname$1978(_tmp);
5383
4860
  }
5384
4861
  function _M0FP36kazuph5reviw6server21get__package__version() {
5385
4862
  let dir = _M0FP36kazuph5reviw6server16get__script__dir();
@@ -5425,17 +4902,17 @@ function _M0FP36kazuph5reviw6server11parse__port(s) {
5425
4902
  return n === 0 ? 4989 : n;
5426
4903
  }
5427
4904
  function _M0FP36kazuph5reviw6server12print__usage() {
5428
- _M0FP36kazuph5reviw6server12console__log(_M0FP36kazuph5reviw6server12print__usageN5usageS418);
4905
+ _M0FP36kazuph5reviw6server12console__log(_M0FP36kazuph5reviw6server12print__usageN5usageS419);
5429
4906
  }
5430
4907
  function _M0FP36kazuph5reviw6server17read__stdin__sync() {
5431
4908
  return _M0FP36kazuph5reviw6server16read__file__sync("/dev/stdin", "utf-8");
5432
4909
  }
5433
4910
  function _M0FP36kazuph5reviw6server13path__extname(_tmp) {
5434
- return extname$2141(_tmp);
4911
+ return extname$1985(_tmp);
5435
4912
  }
5436
4913
  function _M0FP36kazuph5reviw6server12detect__mode(file_path) {
5437
4914
  const ext = _M0FP36kazuph5reviw6server13path__extname(file_path);
5438
- const ext_lower = _M0MPC16string6String11has__prefix(ext, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server12detect__modeN7_2abindS461, 0, _M0FP36kazuph5reviw6server12detect__modeN7_2abindS461.length)) ? _M0MPC16string6String9to__lower(_M0FP36kazuph5reviw4core11safe__slice(ext, 1)) : _M0MPC16string6String9to__lower(ext);
4915
+ const ext_lower = _M0MPC16string6String11has__prefix(ext, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server12detect__modeN7_2abindS462, 0, _M0FP36kazuph5reviw6server12detect__modeN7_2abindS462.length)) ? _M0MPC16string6String9to__lower(_M0FP36kazuph5reviw4core11safe__slice(ext, 1)) : _M0MPC16string6String9to__lower(ext);
5439
4916
  return _M0MP36kazuph5reviw4core8FileMode15from__extension(ext_lower);
5440
4917
  }
5441
4918
  function _M0FP36kazuph5reviw6server16detect__encoding(buf) {
@@ -5533,7 +5010,7 @@ function _M0FP36kazuph5reviw6server16detect__encoding(buf) {
5533
5010
  return "utf-8";
5534
5011
  }
5535
5012
  function _M0FP36kazuph5reviw6server18read__file__buffer(_tmp) {
5536
- return readFileSync$2122(_tmp);
5013
+ return readFileSync$1966(_tmp);
5537
5014
  }
5538
5015
  function _M0FP36kazuph5reviw6server12decode__file(path, override_enc) {
5539
5016
  const buf = _M0FP36kazuph5reviw6server18read__file__buffer(path);
@@ -5575,13 +5052,13 @@ function _M0FP36kazuph5reviw6server22load__and__build__html(ctx) {
5575
5052
  return _M0FP36kazuph5reviw4core16build__csv__html(data, ctx.filename, ctx.port);
5576
5053
  }
5577
5054
  function _M0FP36kazuph5reviw6server14path__basename(_tmp) {
5578
- return basename$2151(_tmp);
5055
+ return basename$1995(_tmp);
5579
5056
  }
5580
5057
  function _M0FP36kazuph5reviw6server13path__resolve(_tmp) {
5581
- return resolve$2153(_tmp);
5058
+ return resolve$1997(_tmp);
5582
5059
  }
5583
5060
  function _M0FP36kazuph5reviw6server25http__create__server__raw(_tmp) {
5584
- return createServer$2158(_tmp);
5061
+ return createServer$2002(_tmp);
5585
5062
  }
5586
5063
  function _M0FP36kazuph5reviw6server14create__server(handler) {
5587
5064
  return _M0FP36kazuph5reviw6server25http__create__server__raw(handler);
@@ -5720,7 +5197,7 @@ function _M0FP36kazuph5reviw6server22cancel__pending__close(ctx) {
5720
5197
  }
5721
5198
  }
5722
5199
  function _M0FP36kazuph5reviw6server22write__file__sync__buf(_tmp, _tmp$2) {
5723
- return writeFileSync$2112(_tmp, _tmp$2);
5200
+ return writeFileSync$1956(_tmp, _tmp$2);
5724
5201
  }
5725
5202
  function _M0FP36kazuph5reviw6server16base64__to__file(data, dir, index) {
5726
5203
  const ext = _M0FP36kazuph5reviw6server20extract__base64__ext(data);
@@ -5754,7 +5231,7 @@ function _M0FP36kazuph5reviw6server20ensure__history__dir() {
5754
5231
  }
5755
5232
  }
5756
5233
  function _M0FP36kazuph5reviw6server20crypto__create__hash(_tmp) {
5757
- return createHash$2179(_tmp);
5234
+ return createHash$2023(_tmp);
5758
5235
  }
5759
5236
  function _M0FP36kazuph5reviw6server14crypto__sha256(s) {
5760
5237
  return _M0FP36kazuph5reviw6server27hash__update__digest__hex16(_M0FP36kazuph5reviw6server20crypto__create__hash("sha256"), s);
@@ -5808,7 +5285,7 @@ function _M0FP36kazuph5reviw6server13save__history(file_path, entry_json) {
5808
5285
  _M0FP36kazuph5reviw6server11chmod__sync(hp, 384);
5809
5286
  }
5810
5287
  function _M0FP36kazuph5reviw6server13unwatch__file(_tmp) {
5811
- return unwatchFile$2184(_tmp);
5288
+ return unwatchFile$2028(_tmp);
5812
5289
  }
5813
5290
  function _M0FP36kazuph5reviw6server14handle__submit(ctx, body) {
5814
5291
  if (ctx.finished) {
@@ -5939,7 +5416,7 @@ function _M0FP36kazuph5reviw6server23schedule__close__submit(ctx, draft) {
5939
5416
  return undefined;
5940
5417
  }
5941
5418
  _M0FP36kazuph5reviw6server22cancel__pending__close(ctx);
5942
- const draft_body = draft.length > 0 ? draft : "{\"summary\":\"\",\"comments\":[]}";
5419
+ const draft_body = draft.length > 0 ? _M0FP36kazuph5reviw6server21json__strip__decision(draft) : "{\"summary\":\"\",\"comments\":[]}";
5943
5420
  ctx.pending_close_timer = _M0FP36kazuph5reviw6server12set__timeout(() => {
5944
5421
  ctx.pending_close_timer = _M0FP36kazuph5reviw6server8js__null();
5945
5422
  let _tmp;
@@ -5953,7 +5430,7 @@ function _M0FP36kazuph5reviw6server23schedule__close__submit(ctx, draft) {
5953
5430
  return undefined;
5954
5431
  }
5955
5432
  _M0FP36kazuph5reviw6server14handle__submit(ctx, draft_body);
5956
- }, 700);
5433
+ }, 5000);
5957
5434
  }
5958
5435
  function _M0FP36kazuph5reviw6server22handle__session__close(ctx, body) {
5959
5436
  if (ctx.finished) {
@@ -6022,7 +5499,7 @@ function _M0FP36kazuph5reviw6server21handle__session__open(ctx, body) {
6022
5499
  _M0MPB3Map3setGssE(ctx.active_tab_instances, tab_id, instance_id);
6023
5500
  }
6024
5501
  function _M0FP36kazuph5reviw6server17child__exec__sync(_tmp, _tmp$2) {
6025
- return execSync$2196(_tmp, _tmp$2);
5502
+ return execSync$2041(_tmp, _tmp$2);
6026
5503
  }
6027
5504
  function _M0FP36kazuph5reviw6server15command__exists(cmd) {
6028
5505
  return _M0FP36kazuph5reviw6server15try__call__bool(() => {
@@ -6031,7 +5508,7 @@ function _M0FP36kazuph5reviw6server15command__exists(cmd) {
6031
5508
  });
6032
5509
  }
6033
5510
  function _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(_tmp) {
6034
- return mkdtempSync$2199(_tmp);
5511
+ return mkdtempSync$2044(_tmp);
6035
5512
  }
6036
5513
  function _M0FP36kazuph5reviw6server15make__temp__dir() {
6037
5514
  return _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(`${_M0FP36kazuph5reviw6server10os__tmpdir()}/reviw-`);
@@ -6040,13 +5517,13 @@ function _M0FP36kazuph5reviw6server18read__file__base64(path) {
6040
5517
  return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15buf__to__base64(_M0FP36kazuph5reviw6server18read__file__buffer(path)), "");
6041
5518
  }
6042
5519
  function _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(_tmp) {
6043
- return readdirSync$2209(_tmp);
5520
+ return readdirSync$2054(_tmp);
6044
5521
  }
6045
5522
  function _M0FP36kazuph5reviw6server13readdir__sync(path) {
6046
5523
  return _M0FP36kazuph5reviw6server24try__call__array__string(() => _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(path));
6047
5524
  }
6048
5525
  function _M0FP36kazuph5reviw6server12fs__rm__sync(_tmp, _tmp$2) {
6049
- return rmSync$2218(_tmp, _tmp$2);
5526
+ return rmSync$2063(_tmp, _tmp$2);
6050
5527
  }
6051
5528
  function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
6052
5529
  _M0FP36kazuph5reviw6server15try__call__void(() => {
@@ -6054,13 +5531,13 @@ function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
6054
5531
  });
6055
5532
  }
6056
5533
  function _M0FP36kazuph5reviw6server12child__spawn(_tmp, _tmp$2, _tmp$3) {
6057
- return spawn$2224(_tmp, _tmp$2, _tmp$3);
5534
+ return spawn$2069(_tmp, _tmp$2, _tmp$3);
6058
5535
  }
6059
5536
  function _M0FP36kazuph5reviw6server12spawn__async(cmd, args_json) {
6060
5537
  return _M0FP36kazuph5reviw6server12child__spawn(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server21js__spawn__opts__pipe());
6061
5538
  }
6062
5539
  function _M0FP36kazuph5reviw6server18child__spawn__sync(_tmp, _tmp$2, _tmp$3) {
6063
- return spawnSync$2229(_tmp, _tmp$2, _tmp$3);
5540
+ return spawnSync$2074(_tmp, _tmp$2, _tmp$3);
6064
5541
  }
6065
5542
  function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
6066
5543
  return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15js__obj__stdout(_M0FP36kazuph5reviw6server18child__spawn__sync(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server27js__spawn__opts__utf8__pipe())), "");
@@ -6068,7 +5545,7 @@ function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
6068
5545
  function _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res) {
6069
5546
  const video_path = _M0FP36kazuph5reviw6server19parse__query__param(url, "path");
6070
5547
  const scene_str = _M0FP36kazuph5reviw6server19parse__query__param(url, "scene");
6071
- if (_M0MPC16string6String8contains(video_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS525, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS525.length))) {
5548
+ if (_M0MPC16string6String8contains(video_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS526, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS526.length))) {
6072
5549
  _M0FP36kazuph5reviw6server16res__write__head(res, 400, "text/plain");
6073
5550
  _M0FP36kazuph5reviw6server8res__end(res, "Invalid path");
6074
5551
  return undefined;
@@ -6113,7 +5590,7 @@ function _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res) {
6113
5590
  const _ = _tmp;
6114
5591
  if (_ < _bind) {
6115
5592
  const file = files[_];
6116
- if (_M0MPC16string6String11has__prefix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS529, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS529.length)) && _M0MPC16string6String11has__suffix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530.length))) {
5593
+ if (_M0MPC16string6String11has__prefix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS530.length)) && _M0MPC16string6String11has__suffix(file, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS531, 0, _M0FP36kazuph5reviw6server23handle__video__timelineN7_2abindS531.length))) {
6117
5594
  _M0MPC15array5Array4pushGsE(scene_files, file);
6118
5595
  }
6119
5596
  _tmp = _ + 1 | 0;
@@ -6274,13 +5751,13 @@ function _M0FP36kazuph5reviw6server9index__of(s, target) {
6274
5751
  return -1;
6275
5752
  }
6276
5753
  function _M0FP36kazuph5reviw6server14fs__stat__sync(_tmp) {
6277
- return statSync$2247(_tmp);
5754
+ return statSync$2092(_tmp);
6278
5755
  }
6279
5756
  function _M0FP36kazuph5reviw6server14is__file__sync(path) {
6280
5757
  return _M0FP36kazuph5reviw6server18js__stat__is__file(_M0FP36kazuph5reviw6server14fs__stat__sync(path));
6281
5758
  }
6282
5759
  function _M0FP36kazuph5reviw6server30fs__create__read__stream__opts(_tmp, _tmp$2) {
6283
- return createReadStream$2251(_tmp, _tmp$2);
5760
+ return createReadStream$2096(_tmp, _tmp$2);
6284
5761
  }
6285
5762
  function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_type, range_header) {
6286
5763
  const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
@@ -6295,7 +5772,7 @@ function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_t
6295
5772
  _M0FP36kazuph5reviw6server8js__pipe(stream, res);
6296
5773
  }
6297
5774
  function _M0FP36kazuph5reviw6server24fs__create__read__stream(_tmp) {
6298
- return createReadStream$2251(_tmp);
5775
+ return createReadStream$2096(_tmp);
6299
5776
  }
6300
5777
  function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, content_type) {
6301
5778
  const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
@@ -6308,8 +5785,8 @@ function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, co
6308
5785
  function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
6309
5786
  const qmark = _M0FP36kazuph5reviw6server9index__of(url, 63);
6310
5787
  const url_path = qmark >= 0 ? _M0FP36kazuph5reviw4core18safe__slice__range(url, 0, qmark) : url;
6311
- const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
6312
- if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS563, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS563.length))) {
5788
+ const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS566, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS566.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
5789
+ if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564.length))) {
6313
5790
  _M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
6314
5791
  _M0FP36kazuph5reviw6server8res__end(res, "Forbidden");
6315
5792
  return undefined;
@@ -6326,7 +5803,7 @@ function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
6326
5803
  if (_M0FP36kazuph5reviw6server12exists__sync(resolved_static) && _M0FP36kazuph5reviw6server14is__file__sync(resolved_static)) {
6327
5804
  const ext = _M0MPC16string6String9to__lower(_M0FP36kazuph5reviw6server13path__extname(resolved_static));
6328
5805
  const content_type = _M0FP36kazuph5reviw6server15get__mime__type(ext);
6329
- const is_video = _M0MPC16string6String11has__prefix(content_type, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS564.length));
5806
+ const is_video = _M0MPC16string6String11has__prefix(content_type, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565, 0, _M0FP36kazuph5reviw6server19serve__static__fileN7_2abindS565.length));
6330
5807
  const range = _M0FP36kazuph5reviw6server18req__range__header(req);
6331
5808
  if (is_video && range.length > 0) {
6332
5809
  _M0FP36kazuph5reviw6server17pipe__file__range(resolved_static, res, content_type, range);
@@ -6344,8 +5821,8 @@ function _M0FP36kazuph5reviw6server19serve__static__file(ctx, url, req, res) {
6344
5821
  function _M0FP36kazuph5reviw6server25serve__static__file__head(ctx, url, res) {
6345
5822
  const qmark = _M0FP36kazuph5reviw6server9index__of(url, 63);
6346
5823
  const url_path = qmark >= 0 ? _M0FP36kazuph5reviw4core18safe__slice__range(url, 0, qmark) : url;
6347
- const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
6348
- if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS566, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS566.length))) {
5824
+ const relative_path = _M0MPC16string6String11has__prefix(url_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS568, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS568.length)) ? _M0FP36kazuph5reviw4core11safe__slice(url_path, 1) : url_path;
5825
+ if (_M0MPC16string6String8contains(relative_path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567, 0, _M0FP36kazuph5reviw6server25serve__static__file__headN7_2abindS567.length))) {
6349
5826
  _M0FP36kazuph5reviw6server16res__write__head(res, 403, "text/plain");
6350
5827
  _M0FP36kazuph5reviw6server8res__end(res, "");
6351
5828
  return undefined;
@@ -6407,7 +5884,7 @@ function _M0FP36kazuph5reviw6server15handle__request(ctx, req, res) {
6407
5884
  _M0FP36kazuph5reviw6server8res__end(res, history_json);
6408
5885
  return;
6409
5886
  } else {
6410
- if (http_method === "GET" && _M0MPC16string6String11has__prefix(url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server15handle__requestN7_2abindS568, 0, _M0FP36kazuph5reviw6server15handle__requestN7_2abindS568.length))) {
5887
+ if (http_method === "GET" && _M0MPC16string6String11has__prefix(url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server15handle__requestN7_2abindS569, 0, _M0FP36kazuph5reviw6server15handle__requestN7_2abindS569.length))) {
6411
5888
  _M0FP36kazuph5reviw6server23handle__video__timeline(ctx, url, res);
6412
5889
  return;
6413
5890
  } else {
@@ -6505,13 +5982,13 @@ function _M0FP36kazuph5reviw6server28try__activate__existing__tab(url) {
6505
5982
  }
6506
5983
  const chrome_script = `set found to false\ntell application \"System Events\"\n if exists process \"Google Chrome\" then\n tell application \"Google Chrome\"\n set targetUrl to \"${url}\"\n repeat with w in windows\n set tabIndex to 1\n repeat with t in tabs of w\n if URL of t starts with targetUrl then\n set active tab index of w to tabIndex\n set index of w to 1\n activate\n set found to true\n exit repeat\n end if\n set tabIndex to tabIndex + 1\n end repeat\n if found then exit repeat\n end repeat\n end tell\n end if\nend tell\nfound`;
6507
5984
  const chrome_result = _M0FP36kazuph5reviw6server19spawn__sync__result("osascript", `[\"-e\", ${_M0FP36kazuph5reviw6server19json__encode__value(chrome_script)}]`);
6508
- if (_M0MPC16string6String8contains(chrome_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS569, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS569.length))) {
5985
+ if (_M0MPC16string6String8contains(chrome_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS570, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS570.length))) {
6509
5986
  _M0FP36kazuph5reviw6server12console__log(`Activated existing Chrome tab: ${url}`);
6510
5987
  return true;
6511
5988
  }
6512
5989
  const safari_script = `set found to false\ntell application \"System Events\"\n if exists process \"Safari\" then\n tell application \"Safari\"\n set targetUrl to \"${url}\"\n repeat with w in windows\n repeat with t in tabs of w\n if URL of t starts with targetUrl then\n set current tab of w to t\n set index of w to 1\n activate\n set found to true\n exit repeat\n end if\n end repeat\n if found then exit repeat\n end repeat\n end tell\n end if\nend tell\nfound`;
6513
5990
  const safari_result = _M0FP36kazuph5reviw6server19spawn__sync__result("osascript", `[\"-e\", ${_M0FP36kazuph5reviw6server19json__encode__value(safari_script)}]`);
6514
- if (_M0MPC16string6String8contains(safari_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS570, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS570.length))) {
5991
+ if (_M0MPC16string6String8contains(safari_result, new _M0TPC16string10StringView(_M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS571, 0, _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS571.length))) {
6515
5992
  _M0FP36kazuph5reviw6server12console__log(`Activated existing Safari tab: ${url}`);
6516
5993
  return true;
6517
5994
  }
@@ -6589,7 +6066,7 @@ function _M0FP36kazuph5reviw6server19start__http__server(ctx, no_open) {
6589
6066
  _M0FP36kazuph5reviw6server11try__listen(ctx, ctx.port, 0, no_open);
6590
6067
  }
6591
6068
  function _M0FP36kazuph5reviw6server11watch__file(_tmp, _tmp$2) {
6592
- return watchFile$2285(_tmp, _tmp$2);
6069
+ return watchFile$2130(_tmp, _tmp$2);
6593
6070
  }
6594
6071
  function _M0FP36kazuph5reviw6server19start__file__server(file_path, port, no_open) {
6595
6072
  const resolved = _M0FP36kazuph5reviw6server13path__resolve(file_path);
@@ -6687,7 +6164,7 @@ function _M0FP36kazuph5reviw6server20start__stdin__server(content, port, no_open
6687
6164
  _M0FP36kazuph5reviw6server18encoding__override.val = _M0MPC15array5Array2atGsE(args, i);
6688
6165
  }
6689
6166
  } else {
6690
- if (!_M0MPC16string6String11has__prefix(arg, new _M0TPC16string10StringView(_M0FP017____moonbit__mainN7_2abindS589, 0, _M0FP017____moonbit__mainN7_2abindS589.length))) {
6167
+ if (!_M0MPC16string6String11has__prefix(arg, new _M0TPC16string10StringView(_M0FP017____moonbit__mainN7_2abindS590, 0, _M0FP017____moonbit__mainN7_2abindS590.length))) {
6691
6168
  _M0MPC15array5Array4pushGsE(files, arg);
6692
6169
  }
6693
6170
  }