reviw 1.4.1 → 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$2143, join as join$2117, resolve as resolve$2162, extname as extname$2150, basename as basename$2160 } from "node:path";
3
- import { spawnSync as spawnSync$2239, execSync as execSync$2206, spawn as spawn$2234 } from "node:child_process";
4
- import { createHash as createHash$2188 } from "node:crypto";
5
- import { createServer as createServer$2167 } from "node:http";
6
- import { statSync as statSync$2257, unwatchFile as unwatchFile$2193, readdirSync as readdirSync$2219, existsSync as existsSync$2126, rmSync as rmSync$2228, mkdtempSync as mkdtempSync$2209, appendFileSync as appendFileSync$2124, createReadStream as createReadStream$2261, writeFileSync as writeFileSync$2121, unlinkSync as unlinkSync$2128, readFileSync as readFileSync$2131, watchFile as watchFile$2295, mkdirSync as mkdirSync$2136 } from "node:fs";
7
- import { tmpdir as tmpdir$2114, homedir as homedir$2133 } 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;
@@ -315,127 +310,127 @@ function _M0TP36kazuph5reviw6server13ServerContext(param0, param1, param2, param
315
310
  this.finished = param9;
316
311
  }
317
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 };
318
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS559 = ":";
319
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS560 = "#";
320
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS561 = "'";
321
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS562 = "\"";
322
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS563 = "\n";
323
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS564 = "[";
324
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS565 = "]";
325
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS566 = "{";
326
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS567 = "}";
327
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS568 = ",";
328
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS569 = "&";
329
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS570 = "*";
330
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS571 = "!";
331
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS572 = "|";
332
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS573 = ">";
333
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS574 = "%";
334
- const _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575 = "@";
335
- const _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS650 = "\n";
336
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673 = "- ";
337
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674 = " -";
338
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675 = " ";
339
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676 = " ";
340
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678 = "- ";
341
- const _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679 = " ";
342
- const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683 = "- ";
343
- const _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS684 = " ";
344
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS703 = "<details";
345
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS704 = "<div";
346
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS705 = "<section";
347
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS706 = "<article";
348
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS707 = "<aside";
349
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS708 = "<nav";
350
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS709 = "<header";
351
- const _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710 = "<footer";
352
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS712 = "#";
353
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS713 = "```";
354
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS714 = ">";
355
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS715 = "- ";
356
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716 = "* ";
357
- const _M0FP36kazuph5reviw4core16is__block__startN7_2abindS717 = "<";
358
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS718 = "graph ";
359
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS719 = "flowchart ";
360
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS720 = "sequenceDiagram";
361
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS721 = "classDiagram";
362
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS722 = "stateDiagram";
363
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS723 = "erDiagram";
364
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS724 = "journey";
365
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS725 = "gantt";
366
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS726 = "pie";
367
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS727 = "gitGraph";
368
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS728 = "mindmap";
369
- const _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729 = "timeline";
370
- const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730 = "|";
371
- const _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS731 = "-";
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 = "|";
372
368
  const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753 = "|";
373
369
  const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754 = "|";
374
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755 = "|";
375
- const _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752 = "|";
376
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS756 = ".mp4";
377
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS757 = ".webm";
378
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS758 = ".mov";
379
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS759 = ".avi";
380
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS760 = ".mkv";
381
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS761 = ".m4v";
382
- const _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762 = ".ogv";
383
- const _M0FP36kazuph5reviw4core14render__inlineN7_2abindS768 = "javascript:";
384
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS781 = "expression(";
385
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS782 = "url(";
386
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS783 = "-moz-binding";
387
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS784 = "behavior:";
388
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS785 = "behaviour:";
389
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS786 = "javascript:";
390
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS787 = "vbscript:";
391
- const _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788 = "@import";
392
- const _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS789 = "on";
393
- const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790 = "javascript:";
394
- const _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS791 = "data:text/html";
395
- const _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS807 = ">";
396
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS809 = "<";
397
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811 = "<summary>";
398
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812 = "</details>";
399
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814 = "</details>";
400
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815 = "<details";
401
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819 = "#";
402
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS820 = "```";
403
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822 = "```";
404
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823 = ">";
405
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825 = ">";
406
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830 = "- ";
407
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS831 = "* ";
408
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836 = "- ";
409
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837 = "* ";
410
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833 = "[ ] ";
411
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834 = "[x] ";
412
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835 = "[X] ";
413
- const _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS848 = "|";
414
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS976 = "@@ ";
415
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS978 = "@@ ";
416
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS979 = "diff ";
417
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980 = "--- ";
418
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981 = "+";
419
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982 = "-";
420
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983 = " ";
421
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984 = "diff ";
422
- const _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985 = "--- ";
423
- const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987 = "a/";
424
- const _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS988 = "b/";
425
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS990 = "diff --git ";
426
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992 = "new file mode";
427
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993 = "deleted file mode";
428
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994 = "Binary files";
429
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS995 = "index ";
430
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS996 = "--- ";
431
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997 = "+++ ";
432
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998 = "--- ";
433
- const _M0FP36kazuph5reviw4core11parse__diffN7_2abindS999 = "+++ ";
434
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f660 = 0;
435
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f661 = 1;
436
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f662 = 2;
437
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f664 = 0;
438
- const _M0FP36kazuph5reviw4core27from__string_2econstr_2f665 = 1;
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;
439
434
  const _M0FP36kazuph5reviw6server15active__servers = [];
440
435
  const _M0FP36kazuph5reviw6server12all__results = [];
441
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";
@@ -454,8 +449,8 @@ const _M0FP36kazuph5reviw6server28try__activate__existing__tabN7_2abindS571 = "t
454
449
  const _M0FP017____moonbit__mainN7_2abindS590 = "-";
455
450
  const _M0FP36kazuph5reviw6server15expected__count = _M0MPC13ref3Ref3newGiE(0);
456
451
  const _M0FP36kazuph5reviw6server18encoding__override = _M0MPC13ref3Ref3newGsE("");
457
- const _M0FPB33brute__force__find_2econstr_2f228 = 0;
458
- 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;
459
454
  const _M0FP36kazuph5reviw6server10bind__host = _M0MPC13ref3Ref3newGsE("127.0.0.1");
460
455
  const _M0FP36kazuph5reviw6server13ui__js__cache = _M0MPC13ref3Ref3newGsE("");
461
456
  const _M0FPB4seed = _M0FPB12random__seed();
@@ -497,447 +492,6 @@ function _M0MPC16uint166UInt1623is__trailing__surrogate(self) {
497
492
  function _M0FPB32code__point__of__surrogate__pair(leading, trailing) {
498
493
  return (((Math.imul(leading - 55296 | 0, 1024) | 0) + trailing | 0) - 56320 | 0) + 65536 | 0;
499
494
  }
500
- function _M0MPC15array5Array2atGsE(self, index) {
501
- const len = self.length;
502
- if (index >= 0 && index < len) {
503
- $bound_check(self, index);
504
- return self[index];
505
- } else {
506
- return $panic();
507
- }
508
- }
509
- function _M0MPC15array5Array2atGcE(self, index) {
510
- const len = self.length;
511
- if (index >= 0 && index < len) {
512
- $bound_check(self, index);
513
- return self[index];
514
- } else {
515
- return $panic();
516
- }
517
- }
518
- function _M0MPC15array5Array2atGRPB5ArrayGsEE(self, index) {
519
- const len = self.length;
520
- if (index >= 0 && index < len) {
521
- $bound_check(self, index);
522
- return self[index];
523
- } else {
524
- return $panic();
525
- }
526
- }
527
- function _M0MPC15array5Array2atGdE(self, index) {
528
- const len = self.length;
529
- if (index >= 0 && index < len) {
530
- $bound_check(self, index);
531
- return self[index];
532
- } else {
533
- return $panic();
534
- }
535
- }
536
- function _M0MPB13SourceLocRepr5parse(repr) {
537
- const _bind = new _M0TPC16string10StringView(repr, 0, repr.length);
538
- const _data = _bind.str;
539
- const _start = _bind.start;
540
- const _end = _start + (_bind.end - _bind.start | 0) | 0;
541
- let _cursor = _start;
542
- let accept_state = -1;
543
- let match_end = -1;
544
- let match_tag_saver_0 = -1;
545
- let match_tag_saver_1 = -1;
546
- let match_tag_saver_2 = -1;
547
- let match_tag_saver_3 = -1;
548
- let match_tag_saver_4 = -1;
549
- let tag_0 = -1;
550
- let tag_1 = -1;
551
- let tag_1_1 = -1;
552
- let tag_1_2 = -1;
553
- let tag_3 = -1;
554
- let tag_2 = -1;
555
- let tag_2_1 = -1;
556
- let tag_4 = -1;
557
- _L: {
558
- if (_cursor < _end) {
559
- const _p = _cursor;
560
- if (_data.charCodeAt(_p) === 64) {
561
- _cursor = _cursor + 1 | 0;
562
- _L$2: while (true) {
563
- tag_0 = _cursor;
564
- if (_cursor < _end) {
565
- const _p$2 = _cursor;
566
- const next_char = _data.charCodeAt(_p$2);
567
- _cursor = _cursor + 1 | 0;
568
- if (next_char === 58) {
569
- if (_cursor < _end) {
570
- _cursor = _cursor + 1 | 0;
571
- let _tmp = 0;
572
- _L$3: while (true) {
573
- const dispatch_15 = _tmp;
574
- _L$4: {
575
- _L$5: {
576
- switch (dispatch_15) {
577
- case 3: {
578
- tag_1_2 = tag_1_1;
579
- tag_1_1 = tag_1;
580
- tag_1 = _cursor;
581
- if (_cursor < _end) {
582
- _L$6: {
583
- const _p$3 = _cursor;
584
- const next_char$2 = _data.charCodeAt(_p$3);
585
- _cursor = _cursor + 1 | 0;
586
- if (next_char$2 < 58) {
587
- if (next_char$2 < 48) {
588
- break _L$6;
589
- } else {
590
- tag_1 = _cursor;
591
- tag_2_1 = tag_2;
592
- tag_2 = _cursor;
593
- tag_3 = _cursor;
594
- if (_cursor < _end) {
595
- _L$7: {
596
- const _p$4 = _cursor;
597
- const next_char$3 = _data.charCodeAt(_p$4);
598
- _cursor = _cursor + 1 | 0;
599
- if (next_char$3 < 48) {
600
- if (next_char$3 === 45) {
601
- break _L$4;
602
- } else {
603
- break _L$7;
604
- }
605
- } else {
606
- if (next_char$3 > 57) {
607
- if (next_char$3 < 59) {
608
- _tmp = 3;
609
- continue _L$3;
610
- } else {
611
- break _L$7;
612
- }
613
- } else {
614
- _tmp = 6;
615
- continue _L$3;
616
- }
617
- }
618
- }
619
- _tmp = 0;
620
- continue _L$3;
621
- } else {
622
- break _L;
623
- }
624
- }
625
- } else {
626
- if (next_char$2 > 58) {
627
- break _L$6;
628
- } else {
629
- _tmp = 1;
630
- continue _L$3;
631
- }
632
- }
633
- }
634
- _tmp = 0;
635
- continue _L$3;
636
- } else {
637
- break _L;
638
- }
639
- }
640
- case 2: {
641
- tag_1 = _cursor;
642
- tag_2 = _cursor;
643
- if (_cursor < _end) {
644
- _L$6: {
645
- const _p$3 = _cursor;
646
- const next_char$2 = _data.charCodeAt(_p$3);
647
- _cursor = _cursor + 1 | 0;
648
- if (next_char$2 < 58) {
649
- if (next_char$2 < 48) {
650
- break _L$6;
651
- } else {
652
- _tmp = 2;
653
- continue _L$3;
654
- }
655
- } else {
656
- if (next_char$2 > 58) {
657
- break _L$6;
658
- } else {
659
- _tmp = 3;
660
- continue _L$3;
661
- }
662
- }
663
- }
664
- _tmp = 0;
665
- continue _L$3;
666
- } else {
667
- break _L;
668
- }
669
- }
670
- case 0: {
671
- tag_1 = _cursor;
672
- if (_cursor < _end) {
673
- const _p$3 = _cursor;
674
- const next_char$2 = _data.charCodeAt(_p$3);
675
- _cursor = _cursor + 1 | 0;
676
- if (next_char$2 === 58) {
677
- _tmp = 1;
678
- continue _L$3;
679
- } else {
680
- _tmp = 0;
681
- continue _L$3;
682
- }
683
- } else {
684
- break _L;
685
- }
686
- }
687
- case 4: {
688
- tag_1 = _cursor;
689
- tag_4 = _cursor;
690
- if (_cursor < _end) {
691
- _L$6: {
692
- const _p$3 = _cursor;
693
- const next_char$2 = _data.charCodeAt(_p$3);
694
- _cursor = _cursor + 1 | 0;
695
- if (next_char$2 < 58) {
696
- if (next_char$2 < 48) {
697
- break _L$6;
698
- } else {
699
- _tmp = 4;
700
- continue _L$3;
701
- }
702
- } else {
703
- if (next_char$2 > 58) {
704
- break _L$6;
705
- } else {
706
- tag_1_2 = tag_1_1;
707
- tag_1_1 = tag_1;
708
- tag_1 = _cursor;
709
- if (_cursor < _end) {
710
- _L$7: {
711
- const _p$4 = _cursor;
712
- const next_char$3 = _data.charCodeAt(_p$4);
713
- _cursor = _cursor + 1 | 0;
714
- if (next_char$3 < 58) {
715
- if (next_char$3 < 48) {
716
- break _L$7;
717
- } else {
718
- tag_1 = _cursor;
719
- tag_2_1 = tag_2;
720
- tag_2 = _cursor;
721
- if (_cursor < _end) {
722
- _L$8: {
723
- const _p$5 = _cursor;
724
- const next_char$4 = _data.charCodeAt(_p$5);
725
- _cursor = _cursor + 1 | 0;
726
- if (next_char$4 < 58) {
727
- if (next_char$4 < 48) {
728
- break _L$8;
729
- } else {
730
- _tmp = 5;
731
- continue _L$3;
732
- }
733
- } else {
734
- if (next_char$4 > 58) {
735
- break _L$8;
736
- } else {
737
- _tmp = 3;
738
- continue _L$3;
739
- }
740
- }
741
- }
742
- _tmp = 0;
743
- continue _L$3;
744
- } else {
745
- break _L$5;
746
- }
747
- }
748
- } else {
749
- if (next_char$3 > 58) {
750
- break _L$7;
751
- } else {
752
- _tmp = 1;
753
- continue _L$3;
754
- }
755
- }
756
- }
757
- _tmp = 0;
758
- continue _L$3;
759
- } else {
760
- break _L;
761
- }
762
- }
763
- }
764
- }
765
- _tmp = 0;
766
- continue _L$3;
767
- } else {
768
- break _L;
769
- }
770
- }
771
- case 5: {
772
- tag_1 = _cursor;
773
- tag_2 = _cursor;
774
- if (_cursor < _end) {
775
- _L$6: {
776
- const _p$3 = _cursor;
777
- const next_char$2 = _data.charCodeAt(_p$3);
778
- _cursor = _cursor + 1 | 0;
779
- if (next_char$2 < 58) {
780
- if (next_char$2 < 48) {
781
- break _L$6;
782
- } else {
783
- _tmp = 5;
784
- continue _L$3;
785
- }
786
- } else {
787
- if (next_char$2 > 58) {
788
- break _L$6;
789
- } else {
790
- _tmp = 3;
791
- continue _L$3;
792
- }
793
- }
794
- }
795
- _tmp = 0;
796
- continue _L$3;
797
- } else {
798
- break _L$5;
799
- }
800
- }
801
- case 6: {
802
- tag_1 = _cursor;
803
- tag_2 = _cursor;
804
- tag_3 = _cursor;
805
- if (_cursor < _end) {
806
- _L$6: {
807
- const _p$3 = _cursor;
808
- const next_char$2 = _data.charCodeAt(_p$3);
809
- _cursor = _cursor + 1 | 0;
810
- if (next_char$2 < 48) {
811
- if (next_char$2 === 45) {
812
- break _L$4;
813
- } else {
814
- break _L$6;
815
- }
816
- } else {
817
- if (next_char$2 > 57) {
818
- if (next_char$2 < 59) {
819
- _tmp = 3;
820
- continue _L$3;
821
- } else {
822
- break _L$6;
823
- }
824
- } else {
825
- _tmp = 6;
826
- continue _L$3;
827
- }
828
- }
829
- }
830
- _tmp = 0;
831
- continue _L$3;
832
- } else {
833
- break _L;
834
- }
835
- }
836
- case 1: {
837
- tag_1_1 = tag_1;
838
- tag_1 = _cursor;
839
- if (_cursor < _end) {
840
- _L$6: {
841
- const _p$3 = _cursor;
842
- const next_char$2 = _data.charCodeAt(_p$3);
843
- _cursor = _cursor + 1 | 0;
844
- if (next_char$2 < 58) {
845
- if (next_char$2 < 48) {
846
- break _L$6;
847
- } else {
848
- _tmp = 2;
849
- continue _L$3;
850
- }
851
- } else {
852
- if (next_char$2 > 58) {
853
- break _L$6;
854
- } else {
855
- _tmp = 1;
856
- continue _L$3;
857
- }
858
- }
859
- }
860
- _tmp = 0;
861
- continue _L$3;
862
- } else {
863
- break _L;
864
- }
865
- }
866
- default: {
867
- break _L;
868
- }
869
- }
870
- }
871
- tag_1 = tag_1_2;
872
- tag_2 = tag_2_1;
873
- match_tag_saver_0 = tag_0;
874
- match_tag_saver_1 = tag_1;
875
- match_tag_saver_2 = tag_2;
876
- match_tag_saver_3 = tag_3;
877
- match_tag_saver_4 = tag_4;
878
- accept_state = 0;
879
- match_end = _cursor;
880
- break _L;
881
- }
882
- tag_1_1 = tag_1_2;
883
- tag_1 = _cursor;
884
- tag_2 = tag_2_1;
885
- if (_cursor < _end) {
886
- _L$5: {
887
- const _p$3 = _cursor;
888
- const next_char$2 = _data.charCodeAt(_p$3);
889
- _cursor = _cursor + 1 | 0;
890
- if (next_char$2 < 58) {
891
- if (next_char$2 < 48) {
892
- break _L$5;
893
- } else {
894
- _tmp = 4;
895
- continue;
896
- }
897
- } else {
898
- if (next_char$2 > 58) {
899
- break _L$5;
900
- } else {
901
- _tmp = 1;
902
- continue;
903
- }
904
- }
905
- }
906
- _tmp = 0;
907
- continue;
908
- } else {
909
- break _L;
910
- }
911
- }
912
- } else {
913
- break _L;
914
- }
915
- } else {
916
- continue;
917
- }
918
- } else {
919
- break _L;
920
- }
921
- }
922
- } else {
923
- break _L;
924
- }
925
- } else {
926
- break _L;
927
- }
928
- }
929
- if (accept_state === 0) {
930
- const start_line = _M0MPC16string6String4view(_data, match_tag_saver_1 + 1 | 0, match_tag_saver_2);
931
- const start_column = _M0MPC16string6String4view(_data, match_tag_saver_2 + 1 | 0, match_tag_saver_3);
932
- const pkg = _M0MPC16string6String4view(_data, _start + 1 | 0, match_tag_saver_0);
933
- const filename = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_tag_saver_1);
934
- const end_line = _M0MPC16string6String4view(_data, match_tag_saver_3 + 1 | 0, match_tag_saver_4);
935
- const end_column = _M0MPC16string6String4view(_data, match_tag_saver_4 + 1 | 0, match_end);
936
- return new _M0TPB13SourceLocRepr(pkg, filename, start_line, start_column, end_line, end_column);
937
- } else {
938
- return $panic();
939
- }
940
- }
941
495
  function _M0IPB13StringBuilderPB6Logger13write__string(self, str) {
942
496
  self.val = `${self.val}${str}`;
943
497
  }
@@ -1019,7 +573,8 @@ function _M0IP016_24default__implPB4Show10to__stringGiE(self) {
1019
573
  }
1020
574
  function _M0IP016_24default__implPB4Show10to__stringGRPB9SourceLocE(self) {
1021
575
  const logger = _M0MPB13StringBuilder11new_2einner(0);
1022
- _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);
1023
578
  return logger.val;
1024
579
  }
1025
580
  function _M0MPB4Iter4nextGcE(self) {
@@ -1041,7 +596,7 @@ function _M0MPC16string10StringView12view_2einner(self, start_offset, end_offset
1041
596
  const _Some = end_offset;
1042
597
  end_offset$2 = _Some;
1043
598
  }
1044
- 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");
1045
600
  }
1046
601
  function _M0IPC16string10StringViewPB4Show10to__string(self) {
1047
602
  return self.str.substring(self.start, self.end);
@@ -1049,7 +604,7 @@ function _M0IPC16string10StringViewPB4Show10to__string(self) {
1049
604
  function _M0MPC16string10StringView4iter(self) {
1050
605
  const start = self.start;
1051
606
  const end = self.end;
1052
- const index = new _M0TPC13ref3RefGiE(start);
607
+ const index = new _M0TPB8MutLocalGiE(start);
1053
608
  const _p = () => {
1054
609
  if (index.val < end) {
1055
610
  const c1 = self.str.charCodeAt(index.val);
@@ -1074,8 +629,8 @@ function _M0MPB5Iter23newGicE(f) {
1074
629
  function _M0MPC16string10StringView5iter2(self) {
1075
630
  const start = self.start;
1076
631
  const end = self.end;
1077
- const index = new _M0TPC13ref3RefGiE(start);
1078
- const char_index = new _M0TPC13ref3RefGiE(0);
632
+ const index = new _M0TPB8MutLocalGiE(start);
633
+ const char_index = new _M0TPB8MutLocalGiE(0);
1079
634
  return _M0MPB5Iter23newGicE(() => {
1080
635
  if (index.val < end) {
1081
636
  const c1 = self.str.charCodeAt(index.val);
@@ -1105,17 +660,7 @@ function _M0MPC16string6String12view_2einner(self, start_offset, end_offset) {
1105
660
  const _Some = end_offset;
1106
661
  end_offset$2 = _Some;
1107
662
  }
1108
- 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");
1109
- }
1110
- function _M0MPC16string6String4view(self, start_offset$46$opt, end_offset) {
1111
- let start_offset;
1112
- if (start_offset$46$opt === undefined) {
1113
- start_offset = 0;
1114
- } else {
1115
- const _Some = start_offset$46$opt;
1116
- start_offset = _Some;
1117
- }
1118
- 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");
1119
664
  }
1120
665
  function _M0IPB13StringBuilderPB6Logger11write__view(self, str) {
1121
666
  self.val = `${self.val}${_M0IPC16string10StringViewPB4Show10to__string(str)}`;
@@ -1178,7 +723,7 @@ function _M0FPB28boyer__moore__horspool__find(haystack, needle) {
1178
723
  return undefined;
1179
724
  }
1180
725
  } else {
1181
- return _M0FPB43boyer__moore__horspool__find_2econstr_2f214;
726
+ return _M0FPB43boyer__moore__horspool__find_2econstr_2f139;
1182
727
  }
1183
728
  }
1184
729
  function _M0FPB18brute__force__find(haystack, needle) {
@@ -1189,44 +734,32 @@ function _M0FPB18brute__force__find(haystack, needle) {
1189
734
  const _p = 0;
1190
735
  const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
1191
736
  const forward_len = haystack_len - needle_len | 0;
1192
- let i = 0;
737
+ let _tmp = 0;
1193
738
  while (true) {
739
+ const i = _tmp;
1194
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;
1195
747
  while (true) {
1196
- let _tmp;
1197
- if (i <= forward_len) {
1198
- const _p$2 = i;
1199
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1200
- _tmp = _p$3 !== needle_first;
1201
- } else {
1202
- _tmp = false;
1203
- }
1204
- if (_tmp) {
1205
- 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;
1206
757
  continue;
1207
758
  } else {
1208
- break;
1209
- }
1210
- }
1211
- if (i <= forward_len) {
1212
- let _tmp = 1;
1213
- while (true) {
1214
- const j = _tmp;
1215
- if (j < needle_len) {
1216
- const _p$2 = i + j | 0;
1217
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1218
- const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
1219
- if (_p$3 !== _p$4) {
1220
- break;
1221
- }
1222
- _tmp = j + 1 | 0;
1223
- continue;
1224
- } else {
1225
- return i;
1226
- }
759
+ return i;
1227
760
  }
1228
- i = i + 1 | 0;
1229
761
  }
762
+ _tmp = i + 1 | 0;
1230
763
  continue;
1231
764
  } else {
1232
765
  break;
@@ -1237,7 +770,7 @@ function _M0FPB18brute__force__find(haystack, needle) {
1237
770
  return undefined;
1238
771
  }
1239
772
  } else {
1240
- return _M0FPB33brute__force__find_2econstr_2f228;
773
+ return _M0FPB33brute__force__find_2econstr_2f153;
1241
774
  }
1242
775
  }
1243
776
  function _M0MPC16string10StringView4find(self, str) {
@@ -1327,44 +860,32 @@ function _M0FPB23brute__force__rev__find(haystack, needle) {
1327
860
  if (haystack_len >= needle_len) {
1328
861
  const _p = 0;
1329
862
  const needle_first = needle.str.charCodeAt(needle.start + _p | 0);
1330
- let i = haystack_len - needle_len | 0;
863
+ let _tmp = haystack_len - needle_len | 0;
1331
864
  while (true) {
865
+ const i = _tmp;
1332
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;
1333
873
  while (true) {
1334
- let _tmp;
1335
- if (i >= 0) {
1336
- const _p$2 = i;
1337
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1338
- _tmp = _p$3 !== needle_first;
1339
- } else {
1340
- _tmp = false;
1341
- }
1342
- if (_tmp) {
1343
- 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;
1344
883
  continue;
1345
884
  } else {
1346
- break;
1347
- }
1348
- }
1349
- if (i >= 0) {
1350
- let _tmp = 1;
1351
- while (true) {
1352
- const j = _tmp;
1353
- if (j < needle_len) {
1354
- const _p$2 = i + j | 0;
1355
- const _p$3 = haystack.str.charCodeAt(haystack.start + _p$2 | 0);
1356
- const _p$4 = needle.str.charCodeAt(needle.start + j | 0);
1357
- if (_p$3 !== _p$4) {
1358
- break;
1359
- }
1360
- _tmp = j + 1 | 0;
1361
- continue;
1362
- } else {
1363
- return i;
1364
- }
885
+ return i;
1365
886
  }
1366
- i = i - 1 | 0;
1367
887
  }
888
+ _tmp = i - 1 | 0;
1368
889
  continue;
1369
890
  } else {
1370
891
  break;
@@ -1428,7 +949,7 @@ function _M0MPC16string6String8contains(self, str) {
1428
949
  }
1429
950
  function _M0MPC16string6String4iter(self) {
1430
951
  const len = self.length;
1431
- const index = new _M0TPC13ref3RefGiE(0);
952
+ const index = new _M0TPB8MutLocalGiE(0);
1432
953
  const _p = () => {
1433
954
  if (index.val < len) {
1434
955
  const c1 = self.charCodeAt(index.val);
@@ -1468,7 +989,7 @@ function _M0MPC16string10StringView5split(self, sep) {
1468
989
  if (sep_len === 0) {
1469
990
  return _M0MPB4Iter3mapGcRPC16string10StringViewE(_M0MPC16string10StringView4iter(self), (c) => _M0MPC16string6String12view_2einner(_M0IPC14char4CharPB4Show10to__string(c), 0, undefined));
1470
991
  }
1471
- const remaining = new _M0TPC13ref3RefGORPC16string10StringViewE(self);
992
+ const remaining = new _M0TPB8MutLocalGORPC16string10StringViewE(self);
1472
993
  const _p = () => {
1473
994
  const _bind = remaining.val;
1474
995
  if (_bind === undefined) {
@@ -1894,91 +1415,6 @@ function _M0IPC16string6StringPB4Hash13hash__combine(self, hasher) {
1894
1415
  function _M0MPC16double6Double10to__string(self) {
1895
1416
  return _M0FPB15ryu__to__string(self);
1896
1417
  }
1897
- function _M0IPB13SourceLocReprPB4Show6output(self, logger) {
1898
- const pkg = self.pkg;
1899
- const _data = pkg.str;
1900
- const _start = pkg.start;
1901
- const _end = _start + (pkg.end - pkg.start | 0) | 0;
1902
- let _cursor = _start;
1903
- let accept_state = -1;
1904
- let match_end = -1;
1905
- let match_tag_saver_0 = -1;
1906
- let tag_0 = -1;
1907
- let _bind;
1908
- _L: {
1909
- _L$2: {
1910
- _L$3: while (true) {
1911
- if (_cursor < _end) {
1912
- const _p = _cursor;
1913
- const next_char = _data.charCodeAt(_p);
1914
- _cursor = _cursor + 1 | 0;
1915
- if (next_char === 47) {
1916
- _L$4: while (true) {
1917
- tag_0 = _cursor;
1918
- if (_cursor < _end) {
1919
- const _p$2 = _cursor;
1920
- const next_char$2 = _data.charCodeAt(_p$2);
1921
- _cursor = _cursor + 1 | 0;
1922
- if (next_char$2 === 47) {
1923
- while (true) {
1924
- if (_cursor < _end) {
1925
- _cursor = _cursor + 1 | 0;
1926
- continue;
1927
- } else {
1928
- match_tag_saver_0 = tag_0;
1929
- accept_state = 0;
1930
- match_end = _cursor;
1931
- break _L$2;
1932
- }
1933
- }
1934
- } else {
1935
- continue;
1936
- }
1937
- } else {
1938
- break _L$2;
1939
- }
1940
- }
1941
- } else {
1942
- continue;
1943
- }
1944
- } else {
1945
- break _L$2;
1946
- }
1947
- }
1948
- break _L;
1949
- }
1950
- if (accept_state === 0) {
1951
- const package_name = _M0MPC16string6String4view(_data, match_tag_saver_0 + 1 | 0, match_end);
1952
- const module_name = _M0MPC16string6String4view(_data, _start, match_tag_saver_0);
1953
- _bind = { _0: module_name, _1: package_name };
1954
- } else {
1955
- _bind = { _0: pkg, _1: undefined };
1956
- }
1957
- }
1958
- const _module_name = _bind._0;
1959
- const _package_name = _bind._1;
1960
- if (_package_name === undefined) {
1961
- } else {
1962
- const _Some = _package_name;
1963
- const _pkg_name = _Some;
1964
- logger.method_table.method_2(logger.self, _pkg_name);
1965
- logger.method_table.method_3(logger.self, 47);
1966
- }
1967
- logger.method_table.method_2(logger.self, self.filename);
1968
- logger.method_table.method_3(logger.self, 58);
1969
- logger.method_table.method_2(logger.self, self.start_line);
1970
- logger.method_table.method_3(logger.self, 58);
1971
- logger.method_table.method_2(logger.self, self.start_column);
1972
- logger.method_table.method_3(logger.self, 45);
1973
- logger.method_table.method_2(logger.self, self.end_line);
1974
- logger.method_table.method_3(logger.self, 58);
1975
- logger.method_table.method_2(logger.self, self.end_column);
1976
- logger.method_table.method_3(logger.self, 64);
1977
- logger.method_table.method_2(logger.self, _module_name);
1978
- }
1979
- function _M0IPB9SourceLocPB4Show6output(self, logger) {
1980
- _M0IPB13SourceLocReprPB4Show6output(_M0MPB13SourceLocRepr5parse(self), logger);
1981
- }
1982
1418
  function _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, new_len) {
1983
1419
  _M0MPB7JSArray11set__length(self, new_len);
1984
1420
  }
@@ -2000,7 +1436,7 @@ function _M0MPC15array5Array6removeGRP36kazuph5reviw6server7JsValueE(self, index
2000
1436
  _M0MPB7JSArray6splice(self, index, 1);
2001
1437
  return value;
2002
1438
  } else {
2003
- 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");
2004
1440
  }
2005
1441
  }
2006
1442
  function _M0MPC15array5Array6removeGsE(self, index) {
@@ -2010,12 +1446,48 @@ function _M0MPC15array5Array6removeGsE(self, index) {
2010
1446
  _M0MPB7JSArray6splice(self, index, 1);
2011
1447
  return value;
2012
1448
  } else {
2013
- 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");
2014
1450
  }
2015
1451
  }
2016
1452
  function _M0MPC15array5Array4copyGsE(self) {
2017
1453
  return _M0MPB7JSArray4copy(self);
2018
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
+ }
2019
1491
  function _M0MPC15array5Array5clearGsE(self) {
2020
1492
  _M0MPC15array5Array28unsafe__truncate__to__lengthGsE(self, 0);
2021
1493
  }
@@ -2025,38 +1497,38 @@ function _M0MPC13ref3Ref3newGsE(x) {
2025
1497
  function _M0MPC13ref3Ref3newGiE(x) {
2026
1498
  return new _M0TPC13ref3RefGiE(x);
2027
1499
  }
2028
- function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_441, _x_442) {
2029
- switch (_x_441) {
1500
+ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_440, _x_441) {
1501
+ switch (_x_440) {
2030
1502
  case 0: {
2031
- if (_x_442 === 0) {
1503
+ if (_x_441 === 0) {
2032
1504
  return true;
2033
1505
  } else {
2034
1506
  return false;
2035
1507
  }
2036
1508
  }
2037
1509
  case 1: {
2038
- if (_x_442 === 1) {
1510
+ if (_x_441 === 1) {
2039
1511
  return true;
2040
1512
  } else {
2041
1513
  return false;
2042
1514
  }
2043
1515
  }
2044
1516
  case 2: {
2045
- if (_x_442 === 2) {
1517
+ if (_x_441 === 2) {
2046
1518
  return true;
2047
1519
  } else {
2048
1520
  return false;
2049
1521
  }
2050
1522
  }
2051
1523
  case 3: {
2052
- if (_x_442 === 3) {
1524
+ if (_x_441 === 3) {
2053
1525
  return true;
2054
1526
  } else {
2055
1527
  return false;
2056
1528
  }
2057
1529
  }
2058
1530
  default: {
2059
- if (_x_442 === 4) {
1531
+ if (_x_441 === 4) {
2060
1532
  return true;
2061
1533
  } else {
2062
1534
  return false;
@@ -2065,7 +1537,7 @@ function _M0IP36kazuph5reviw4core8FileModePB2Eq5equal(_x_441, _x_442) {
2065
1537
  }
2066
1538
  }
2067
1539
  function _M0FP36kazuph5reviw4core20yaml__escape__string(s) {
2068
- const needs_quote = _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)) || _M0MPC16string6String8contains(s, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575, 0, _M0FP36kazuph5reviw4core20yaml__escape__stringN7_2abindS575.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)))))))))))))))));
2069
1541
  if (needs_quote) {
2070
1542
  const buf = _M0MPB13StringBuilder11new_2einner(0);
2071
1543
  _M0IPB13StringBuilderPB6Logger11write__char(buf, 39);
@@ -2382,7 +1854,7 @@ function _M0FP36kazuph5reviw4core16parse__int__safe(s) {
2382
1854
  }
2383
1855
  function _M0FP36kazuph5reviw4core16split__to__lines(input) {
2384
1856
  const result = [];
2385
- const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS650, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS650.length));
1857
+ const _it = _M0MPC16string6String5split(input, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649, 0, _M0FP36kazuph5reviw4core16split__to__linesN7_2abindS649.length));
2386
1858
  while (true) {
2387
1859
  const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
2388
1860
  if (_bind === undefined) {
@@ -2436,13 +1908,13 @@ function _M0MP36kazuph5reviw4core8FileMode15from__extension(ext) {
2436
1908
  function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
2437
1909
  switch (s) {
2438
1910
  case "handoff": {
2439
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f660;
1911
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f572;
2440
1912
  }
2441
1913
  case "final_approve": {
2442
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f661;
1914
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f573;
2443
1915
  }
2444
1916
  case "final_request_changes": {
2445
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f662;
1917
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f574;
2446
1918
  }
2447
1919
  default: {
2448
1920
  return undefined;
@@ -2452,10 +1924,10 @@ function _M0MP36kazuph5reviw4core12ReviewAction12from__string(s) {
2452
1924
  function _M0MP36kazuph5reviw4core14ReviewDecision12from__string(s) {
2453
1925
  switch (s) {
2454
1926
  case "approve": {
2455
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f664;
1927
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f576;
2456
1928
  }
2457
1929
  case "request_changes": {
2458
- return _M0FP36kazuph5reviw4core27from__string_2econstr_2f665;
1930
+ return _M0FP36kazuph5reviw4core27from__string_2econstr_2f577;
2459
1931
  }
2460
1932
  default: {
2461
1933
  return undefined;
@@ -2557,10 +2029,10 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
2557
2029
  if (i < end) {
2558
2030
  const line = _M0MPC15array5Array2atGsE(lines, i);
2559
2031
  const trimmed = _M0FP36kazuph5reviw4core4trim(line);
2560
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS673.length)) && _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS674.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))) {
2561
2033
  break;
2562
2034
  }
2563
- if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS675.length)) && !_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS676.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))) {
2564
2036
  break;
2565
2037
  }
2566
2038
  const content_colon = _M0FP36kazuph5reviw4core15index__of__char(trimmed, 58);
@@ -2585,7 +2057,7 @@ function _M0FP36kazuph5reviw4core23parse__single__question(lines, start, end) {
2585
2057
  if (i < end) {
2586
2058
  const opt_line = _M0MPC15array5Array2atGsE(lines, i);
2587
2059
  const opt_trimmed = _M0FP36kazuph5reviw4core4trim(opt_line);
2588
- if (_M0MPC16string6String11has__prefix(opt_trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS678.length)) && _M0MPC16string6String11has__prefix(opt_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679, 0, _M0FP36kazuph5reviw4core23parse__single__questionN7_2abindS679.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))) {
2589
2061
  _M0MPC15array5Array4pushGsE(options, _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(opt_trimmed, 2)));
2590
2062
  i = i + 1 | 0;
2591
2063
  } else {
@@ -2625,12 +2097,12 @@ function _M0FP36kazuph5reviw4core23parse__reviw__questions(lines, start, end) {
2625
2097
  if (i < end) {
2626
2098
  const item_line = _M0MPC15array5Array2atGsE(lines, i);
2627
2099
  const trimmed = _M0FP36kazuph5reviw4core4trim(item_line);
2628
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683.length))) {
2100
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS682.length))) {
2629
2101
  const q = _M0FP36kazuph5reviw4core23parse__single__question(lines, i, end);
2630
2102
  _M0MPC15array5Array4pushGsE(questions, q._0);
2631
2103
  i = q._1;
2632
2104
  } else {
2633
- if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS684, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS684.length))) {
2105
+ if (trimmed.length === 0 || !_M0MPC16string6String11has__prefix(item_line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683, 0, _M0FP36kazuph5reviw4core23parse__reviw__questionsN7_2abindS683.length))) {
2634
2106
  break;
2635
2107
  } else {
2636
2108
  i = i + 1 | 0;
@@ -2780,7 +2252,7 @@ function _M0FP36kazuph5reviw4core20is__horizontal__rule(line) {
2780
2252
  }
2781
2253
  function _M0FP36kazuph5reviw4core22is__html__block__start(line) {
2782
2254
  const t = _M0FP36kazuph5reviw4core4trim(line);
2783
- return _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)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710, 0, _M0FP36kazuph5reviw4core22is__html__block__startN7_2abindS710.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))))))));
2784
2256
  }
2785
2257
  function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
2786
2258
  const chars = _M0MPC16string6String9to__array(line);
@@ -2799,15 +2271,15 @@ function _M0FP36kazuph5reviw4core23is__ordered__list__item(line) {
2799
2271
  return i < (chars.length - 1 | 0) && (_M0MPC15array5Array2atGcE(chars, i) === 46 && _M0MPC15array5Array2atGcE(chars, i + 1 | 0) === 32);
2800
2272
  }
2801
2273
  function _M0FP36kazuph5reviw4core16is__block__start(line) {
2802
- return _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)) || (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS716, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS716.length)) || (_M0FP36kazuph5reviw4core23is__ordered__list__item(line) || (_M0FP36kazuph5reviw4core20is__horizontal__rule(line) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core16is__block__startN7_2abindS717, 0, _M0FP36kazuph5reviw4core16is__block__startN7_2abindS717.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)))))));
2803
2275
  }
2804
2276
  function _M0FP36kazuph5reviw4core20is__mermaid__content(text) {
2805
2277
  const t = _M0FP36kazuph5reviw4core4trim(text);
2806
- return _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)) || _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729, 0, _M0FP36kazuph5reviw4core20is__mermaid__contentN7_2abindS729.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))))))))))));
2807
2279
  }
2808
2280
  function _M0FP36kazuph5reviw4core20is__table__separator(line) {
2809
2281
  const t = _M0FP36kazuph5reviw4core4trim(line);
2810
- if (!_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS730.length)) || !_M0MPC16string6String8contains(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS731, 0, _M0FP36kazuph5reviw4core20is__table__separatorN7_2abindS731.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))) {
2811
2283
  return false;
2812
2284
  }
2813
2285
  const chars = _M0MPC16string6String9to__array(t);
@@ -2862,8 +2334,8 @@ function _M0FP36kazuph5reviw4core18make__heading__key(text, counter) {
2862
2334
  function _M0FP36kazuph5reviw4core17parse__table__row(line) {
2863
2335
  const result = [];
2864
2336
  const t = _M0FP36kazuph5reviw4core4trim(line);
2865
- const inner = _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS753.length)) && _M0MPC16string6String11has__suffix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS754.length)) ? _M0FP36kazuph5reviw4core18safe__slice__range(t, 1, t.length - 1 | 0) : _M0MPC16string6String11has__prefix(t, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS755.length)) ? _M0FP36kazuph5reviw4core11safe__slice(t, 1) : t;
2866
- const _it = _M0MPC16string6String5split(inner, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752, 0, _M0FP36kazuph5reviw4core17parse__table__rowN7_2abindS752.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));
2867
2339
  while (true) {
2868
2340
  const _bind = _M0MPB4Iter4nextGRPC16string10StringViewE(_it);
2869
2341
  if (_bind === undefined) {
@@ -2879,7 +2351,7 @@ function _M0FP36kazuph5reviw4core17parse__table__row(line) {
2879
2351
  }
2880
2352
  function _M0FP36kazuph5reviw4core14is__video__url(url) {
2881
2353
  const lower = _M0MPC16string6String9to__lower(url);
2882
- return _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)) || _M0MPC16string6String11has__suffix(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762, 0, _M0FP36kazuph5reviw4core14is__video__urlN7_2abindS762.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)))))));
2883
2355
  }
2884
2356
  function _M0FP36kazuph5reviw4core14render__inline(text) {
2885
2357
  const chars = _M0MPC16string6String9to__array(text);
@@ -2978,7 +2450,7 @@ function _M0FP36kazuph5reviw4core14render__inline(text) {
2978
2450
  const link_text = _M0FP36kazuph5reviw4core18safe__slice__range(text, text_start, text_end);
2979
2451
  const link_url = _M0FP36kazuph5reviw4core18safe__slice__range(text, url_start, url_end);
2980
2452
  const lower_url = _M0MPC16string6String9to__lower(link_url);
2981
- if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS768, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS768.length))) {
2453
+ if (_M0MPC16string6String11has__prefix(lower_url, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14render__inlineN7_2abindS767, 0, _M0FP36kazuph5reviw4core14render__inlineN7_2abindS767.length))) {
2982
2454
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(link_text));
2983
2455
  } else {
2984
2456
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<a href=\"");
@@ -3175,18 +2647,18 @@ function _M0FP36kazuph5reviw4core17is__allowed__attr(name) {
3175
2647
  }
3176
2648
  function _M0FP36kazuph5reviw4core18is__dangerous__css(value) {
3177
2649
  const lower = _M0MPC16string6String9to__lower(value);
3178
- return _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)) || _M0MPC16string6String8contains(lower, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788, 0, _M0FP36kazuph5reviw4core18is__dangerous__cssN7_2abindS788.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))))))));
3179
2651
  }
3180
2652
  function _M0FP36kazuph5reviw4core24is__event__handler__attr(name) {
3181
- return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS789, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS789.length));
2653
+ return _M0MPC16string6String11has__prefix(name, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788, 0, _M0FP36kazuph5reviw4core24is__event__handler__attrN7_2abindS788.length));
3182
2654
  }
3183
2655
  function _M0FP36kazuph5reviw4core13is__safe__url(url) {
3184
2656
  const lower = _M0MPC16string6String9to__lower(url);
3185
2657
  const trimmed = _M0FP36kazuph5reviw4core4trim(lower);
3186
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790.length))) {
2658
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS789.length))) {
3187
2659
  return false;
3188
2660
  }
3189
- if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS791, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS791.length))) {
2661
+ if (_M0MPC16string6String11has__prefix(trimmed, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790, 0, _M0FP36kazuph5reviw4core13is__safe__urlN7_2abindS790.length))) {
3190
2662
  return false;
3191
2663
  }
3192
2664
  return true;
@@ -3525,7 +2997,7 @@ function _M0FP36kazuph5reviw4core14sanitize__html(input) {
3525
2997
  if (!_M0FP36kazuph5reviw4core16is__allowed__tag(tag_name) && tag_name.length > 0) {
3526
2998
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "&lt;");
3527
2999
  const tag_content = _M0FP36kazuph5reviw4core18safe__slice__range(input, tag_start + 1 | 0, tag_end);
3528
- const trimmed_content = _M0MPC16string6String11has__suffix(tag_content, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS807, 0, _M0FP36kazuph5reviw4core14sanitize__htmlN7_2abindS807.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;
3529
3001
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core12escape__html(trimmed_content));
3530
3002
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "&gt;");
3531
3003
  i = tag_end;
@@ -3569,7 +3041,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3569
3041
  i = i + 1 | 0;
3570
3042
  continue;
3571
3043
  }
3572
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS809, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS809.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)) {
3573
3045
  const tag_name = _M0FP36kazuph5reviw4core24extract__html__tag__name(line);
3574
3046
  if (tag_name === "details") {
3575
3047
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<details>\n");
@@ -3577,13 +3049,13 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3577
3049
  while (true) {
3578
3050
  if (i < len) {
3579
3051
  const current = _M0FP36kazuph5reviw4core4trim(_M0MPC15array5Array2atGsE(lines, i));
3580
- if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811.length))) {
3052
+ if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS810.length))) {
3581
3053
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14sanitize__html(_M0MPC15array5Array2atGsE(lines, i)));
3582
3054
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "\n");
3583
3055
  i = i + 1 | 0;
3584
3056
  break;
3585
3057
  } else {
3586
- if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS812.length))) {
3058
+ if (_M0MPC16string6String11has__prefix(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS811.length))) {
3587
3059
  break;
3588
3060
  }
3589
3061
  }
@@ -3598,14 +3070,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3598
3070
  while (true) {
3599
3071
  if (i < len && depth > 0) {
3600
3072
  const current = _M0MPC15array5Array2atGsE(lines, i);
3601
- if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814.length))) {
3073
+ if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS813.length))) {
3602
3074
  depth = depth - 1 | 0;
3603
3075
  if (depth === 0) {
3604
3076
  i = i + 1 | 0;
3605
3077
  break;
3606
3078
  }
3607
3079
  }
3608
- if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS815.length))) {
3080
+ if (_M0MPC16string6String8contains(current, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS814.length))) {
3609
3081
  depth = depth + 1 | 0;
3610
3082
  }
3611
3083
  _M0MPC15array5Array4pushGsE(inner_lines, current);
@@ -3650,7 +3122,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3650
3122
  }
3651
3123
  continue;
3652
3124
  }
3653
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819.length))) {
3125
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS818.length))) {
3654
3126
  const level = _M0FP36kazuph5reviw4core21count__heading__level(line);
3655
3127
  if (level >= 1 && level <= 6) {
3656
3128
  const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, level + 1 | 0));
@@ -3676,14 +3148,14 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3676
3148
  i = i + 1 | 0;
3677
3149
  continue;
3678
3150
  }
3679
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS820, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS820.length))) {
3151
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS819.length))) {
3680
3152
  const lang = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(line, 3));
3681
3153
  const code_block_start_line = i + 1 | 0;
3682
3154
  i = i + 1 | 0;
3683
3155
  const code_buf = _M0MPB13StringBuilder11new_2einner(0);
3684
3156
  let code_first = true;
3685
3157
  while (true) {
3686
- if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length))) {
3158
+ if (i < len && !_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS821.length))) {
3687
3159
  if (!code_first) {
3688
3160
  _M0IPB13StringBuilderPB6Logger13write__string(code_buf, "\n");
3689
3161
  }
@@ -3725,10 +3197,10 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3725
3197
  }
3726
3198
  continue;
3727
3199
  }
3728
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS823.length))) {
3200
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS822.length))) {
3729
3201
  const quote_lines = [];
3730
3202
  while (true) {
3731
- if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS825.length))) {
3203
+ if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS824.length))) {
3732
3204
  const content = _M0FP36kazuph5reviw4core4trim(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 1));
3733
3205
  _M0MPC15array5Array4pushGsE(quote_lines, content);
3734
3206
  i = i + 1 | 0;
@@ -3756,16 +3228,16 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3756
3228
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</blockquote>\n");
3757
3229
  continue;
3758
3230
  }
3759
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS830.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS831, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS831.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))) {
3760
3232
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<ul>\n");
3761
3233
  while (true) {
3762
- if (i < len && (_M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS836.length)) || _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS837.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)))) {
3763
3235
  const item_text = _M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 2);
3764
- if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS833.length))) {
3236
+ if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS832.length))) {
3765
3237
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" disabled /> ");
3766
3238
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
3767
3239
  } else {
3768
- if (_M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS834.length)) || _M0MPC16string6String11has__prefix(item_text, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS835.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))) {
3769
3241
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<li class=\"task-list-item\"><input type=\"checkbox\" checked disabled /> ");
3770
3242
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core14render__inline(_M0FP36kazuph5reviw4core11safe__slice(item_text, 4)));
3771
3243
  } else {
@@ -3822,7 +3294,7 @@ function _M0FP36kazuph5reviw4core23render__markdown__lines(lines) {
3822
3294
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</tr>\n</thead>\n<tbody>\n");
3823
3295
  i = i + 2 | 0;
3824
3296
  while (true) {
3825
- if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS848, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS848.length))) {
3297
+ if (i < len && _M0MPC16string6String8contains(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847, 0, _M0FP36kazuph5reviw4core23render__markdown__linesN7_2abindS847.length))) {
3826
3298
  const cells = _M0FP36kazuph5reviw4core17parse__table__row(_M0MPC15array5Array2atGsE(lines, i));
3827
3299
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<tr>\n");
3828
3300
  const _bind$2 = cells.length;
@@ -4086,7 +3558,7 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
4086
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\">");
4087
3559
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<script src=\"https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11/build/highlight.min.js\"></script>");
4088
3560
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<style>");
4089
- _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}");
4090
3562
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</style></head><body>");
4091
3563
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<header><div class=\"meta\">");
4092
3564
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<h1>");
@@ -4122,11 +3594,12 @@ function _M0FP36kazuph5reviw4core26build__page__start_2einner(buf, filename, fil
4122
3594
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"badge\">Click to comment / ESC to cancel</span>");
4123
3595
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"pill\" id=\"pill-comments\" title=\"Toggle comment panel\">Comments <strong id=\"comment-count\">0</strong></button>");
4124
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>");
4125
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>");
4126
3599
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"view-toggle\" id=\"view-toggle\" title=\"Hide source panel\">&#128221;</button>");
4127
3600
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"history-toggle\" id=\"history-toggle\" title=\"Review History\">&#9776;</button>");
4128
3601
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"theme-toggle\" id=\"theme-toggle\" title=\"Toggle theme\"><span id=\"theme-icon\">&#127769;</span></button>");
4129
- _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>");
4130
3603
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></header>");
4131
3604
  }
4132
3605
  function _M0FP36kazuph5reviw4core23build__questions__modal(buf, questions) {
@@ -4405,14 +3878,6 @@ function _M0FP36kazuph5reviw4core21build__script__footer(buf, port, mode, filena
4405
3878
  _M0IPB13StringBuilderPB6Logger13write__string(buf, _M0FP36kazuph5reviw4core18escape__js__string(filename));
4406
3879
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "\";</script></body></html>");
4407
3880
  }
4408
- function _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf) {
4409
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-bar\" id=\"send-to-ai-bar\">");
4410
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"send-to-ai-inner\">");
4411
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<span class=\"sse-status\" id=\"sse-status\">🟢 Connected</span>");
4412
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<input type=\"text\" class=\"send-to-ai-input\" id=\"send-to-ai-summary\" placeholder=\"Comment to AI (optional)\" />");
4413
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "<button class=\"send-to-ai-btn\" id=\"send-to-ai-btn\">📤 Send to AI</button>");
4414
- _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div></div>");
4415
- }
4416
3881
  function _M0FP36kazuph5reviw4core20build__submit__modal(buf) {
4417
3882
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-overlay\" id=\"submit-modal\">");
4418
3883
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<div class=\"modal-dialog\">");
@@ -4602,7 +4067,6 @@ function _M0FP36kazuph5reviw4core29build__markdown__html_2einner(md, filename, p
4602
4067
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4603
4068
  _M0FP36kazuph5reviw4core27build__comment__list__aside(buf);
4604
4069
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4605
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4606
4070
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4607
4071
  _M0FP36kazuph5reviw4core26build__mermaid__fullscreen(buf);
4608
4072
  _M0FP36kazuph5reviw4core24build__image__fullscreen(buf);
@@ -4748,7 +4212,6 @@ function _M0FP36kazuph5reviw4core16build__csv__html(data, filename, port) {
4748
4212
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</tbody></table></div>");
4749
4213
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4750
4214
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4751
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4752
4215
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4753
4216
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4754
4217
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "<script>const DATA = ");
@@ -4885,7 +4348,6 @@ function _M0FP36kazuph5reviw4core17build__diff__html(data, filename, port) {
4885
4348
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
4886
4349
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4887
4350
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4888
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4889
4351
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4890
4352
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4891
4353
  _M0FP36kazuph5reviw4core21build__script__footer(buf, port, "diff", filename);
@@ -4918,7 +4380,6 @@ function _M0FP36kazuph5reviw4core17build__text__html(lines, filename, port) {
4918
4380
  _M0IPB13StringBuilderPB6Logger13write__string(buf, "</div>");
4919
4381
  _M0FP36kazuph5reviw4core20build__comment__card(buf);
4920
4382
  _M0FP36kazuph5reviw4core20build__submit__modal(buf);
4921
- _M0FP36kazuph5reviw4core24build__send__to__ai__bar(buf);
4922
4383
  _M0FP36kazuph5reviw4core21build__history__panel(buf);
4923
4384
  _M0FP36kazuph5reviw4core22build__recovery__modal(buf);
4924
4385
  _M0FP36kazuph5reviw4core21build__script__footer(buf, port, "text", filename);
@@ -5003,23 +4464,23 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
5003
4464
  while (true) {
5004
4465
  if (i < len) {
5005
4466
  const line = _M0MPC15array5Array2atGsE(lines, i);
5006
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS976, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS976.length))) {
4467
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS975.length))) {
5007
4468
  const header = _M0FP36kazuph5reviw4core19parse__hunk__header(line);
5008
4469
  const hunk_lines = [];
5009
4470
  i = i + 1 | 0;
5010
4471
  while (true) {
5011
4472
  if (i < len) {
5012
4473
  const l = _M0MPC15array5Array2atGsE(lines, i);
5013
- if (_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)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980.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)))) {
5014
4475
  break;
5015
4476
  }
5016
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981.length))) {
4477
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS980.length))) {
5017
4478
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(1, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5018
4479
  } else {
5019
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982.length))) {
4480
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS981.length))) {
5020
4481
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(2, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5021
4482
  } else {
5022
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS983.length))) {
4483
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS982.length))) {
5023
4484
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, _M0FP36kazuph5reviw4core11safe__slice(l, 1)));
5024
4485
  } else {
5025
4486
  _M0MPC15array5Array4pushGsE(hunk_lines, new _M0TP36kazuph5reviw4core8DiffLine(0, l));
@@ -5034,7 +4495,7 @@ function _M0FP36kazuph5reviw4core14collect__hunks(lines, start, len) {
5034
4495
  }
5035
4496
  _M0MPC15array5Array4pushGsE(hunks, new _M0TP36kazuph5reviw4core8DiffHunk(header._0, header._1, header._2, header._3, header._4, hunk_lines));
5036
4497
  } else {
5037
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS984.length)) || _M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985, 0, _M0FP36kazuph5reviw4core14collect__hunksN7_2abindS985.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))) {
5038
4499
  break;
5039
4500
  } else {
5040
4501
  i = i + 1 | 0;
@@ -5074,7 +4535,7 @@ function _M0FP36kazuph5reviw4core19extract__git__paths(line) {
5074
4535
  }
5075
4536
  }
5076
4537
  function _M0FP36kazuph5reviw4core19strip__diff__prefix(path) {
5077
- return _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS987.length)) || _M0MPC16string6String11has__prefix(path, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS988, 0, _M0FP36kazuph5reviw4core19strip__diff__prefixN7_2abindS988.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;
5078
4539
  }
5079
4540
  function _M0FP36kazuph5reviw4core11parse__diff(input) {
5080
4541
  const files = [];
@@ -5084,7 +4545,7 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5084
4545
  while (true) {
5085
4546
  if (i < len) {
5086
4547
  const line = _M0MPC15array5Array2atGsE(lines, i);
5087
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS990, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS990.length))) {
4548
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS989, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS989.length))) {
5088
4549
  const paths = _M0FP36kazuph5reviw4core19extract__git__paths(line);
5089
4550
  let is_new = false;
5090
4551
  let is_deleted = false;
@@ -5093,19 +4554,19 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5093
4554
  while (true) {
5094
4555
  if (i < len) {
5095
4556
  const l = _M0MPC15array5Array2atGsE(lines, i);
5096
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS992, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992.length))) {
4557
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS991, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS991.length))) {
5097
4558
  is_new = true;
5098
4559
  i = i + 1 | 0;
5099
4560
  } else {
5100
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS993, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993.length))) {
4561
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS992, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS992.length))) {
5101
4562
  is_deleted = true;
5102
4563
  i = i + 1 | 0;
5103
4564
  } else {
5104
- if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS994, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS994.length))) {
4565
+ if (_M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS993, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS993.length))) {
5105
4566
  is_binary = true;
5106
4567
  i = i + 1 | 0;
5107
4568
  } else {
5108
- if (_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)) || _M0MPC16string6String11has__prefix(l, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS997, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997.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)))) {
5109
4570
  i = i + 1 | 0;
5110
4571
  } else {
5111
4572
  break;
@@ -5122,11 +4583,11 @@ function _M0FP36kazuph5reviw4core11parse__diff(input) {
5122
4583
  i = result._1;
5123
4584
  _M0MPC15array5Array4pushGsE(files, new _M0TP36kazuph5reviw4core8DiffFile(paths._0, paths._1, is_new, is_deleted, is_binary, result._0));
5124
4585
  } else {
5125
- if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS998, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998.length))) {
4586
+ if (_M0MPC16string6String11has__prefix(line, new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS997, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS997.length))) {
5126
4587
  const old_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(line, 4));
5127
4588
  let new_path = "";
5128
4589
  i = i + 1 | 0;
5129
- if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS999, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS999.length))) {
4590
+ if (i < len && _M0MPC16string6String11has__prefix(_M0MPC15array5Array2atGsE(lines, i), new _M0TPC16string10StringView(_M0FP36kazuph5reviw4core11parse__diffN7_2abindS998, 0, _M0FP36kazuph5reviw4core11parse__diffN7_2abindS998.length))) {
5130
4591
  new_path = _M0FP36kazuph5reviw4core19strip__diff__prefix(_M0FP36kazuph5reviw4core11safe__slice(_M0MPC15array5Array2atGsE(lines, i), 4));
5131
4592
  i = i + 1 | 0;
5132
4593
  }
@@ -5247,13 +4708,13 @@ function _M0FP36kazuph5reviw4core21csv__data__from__flat(flat) {
5247
4708
  }
5248
4709
  }
5249
4710
  function _M0FP36kazuph5reviw6server10os__tmpdir() {
5250
- return tmpdir$2114();
4711
+ return tmpdir$1949();
5251
4712
  }
5252
4713
  function _M0FP36kazuph5reviw6server10path__join(_tmp, _tmp$2) {
5253
- return join$2117(_tmp, _tmp$2);
4714
+ return join$1952(_tmp, _tmp$2);
5254
4715
  }
5255
4716
  function _M0FP36kazuph5reviw6server17write__file__sync(_tmp, _tmp$2) {
5256
- return writeFileSync$2121(_tmp, _tmp$2);
4717
+ return writeFileSync$1956(_tmp, _tmp$2);
5257
4718
  }
5258
4719
  function _M0FP36kazuph5reviw6server19write__file__secure(path, data) {
5259
4720
  _M0FP36kazuph5reviw6server15try__call__void(() => {
@@ -5268,7 +4729,7 @@ function _M0FP36kazuph5reviw6server15init__live__log() {
5268
4729
  _M0FP36kazuph5reviw6server14console__error(`[REVIW_LIVE] ${path}`);
5269
4730
  }
5270
4731
  function _M0FP36kazuph5reviw6server22fs__append__file__sync(_tmp, _tmp$2) {
5271
- return appendFileSync$2124(_tmp, _tmp$2);
4732
+ return appendFileSync$1959(_tmp, _tmp$2);
5272
4733
  }
5273
4734
  function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
5274
4735
  if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0) {
@@ -5281,10 +4742,10 @@ function _M0FP36kazuph5reviw6server17append__live__log(json_line) {
5281
4742
  }
5282
4743
  }
5283
4744
  function _M0FP36kazuph5reviw6server12exists__sync(_tmp) {
5284
- return existsSync$2126(_tmp);
4745
+ return existsSync$1961(_tmp);
5285
4746
  }
5286
4747
  function _M0FP36kazuph5reviw6server12unlink__sync(_tmp) {
5287
- return unlinkSync$2128(_tmp);
4748
+ return unlinkSync$1963(_tmp);
5288
4749
  }
5289
4750
  function _M0FP36kazuph5reviw6server18cleanup__live__log() {
5290
4751
  if (_M0FP36kazuph5reviw6server15live__log__path.val.length > 0 && _M0FP36kazuph5reviw6server12exists__sync(_M0FP36kazuph5reviw6server15live__log__path.val)) {
@@ -5297,7 +4758,7 @@ function _M0FP36kazuph5reviw6server18cleanup__live__log() {
5297
4758
  }
5298
4759
  }
5299
4760
  function _M0FP36kazuph5reviw6server16read__file__sync(_tmp, _tmp$2) {
5300
- return readFileSync$2131(_tmp, _tmp$2);
4761
+ return readFileSync$1966(_tmp, _tmp$2);
5301
4762
  }
5302
4763
  function _M0FP36kazuph5reviw6server12load__ui__js() {
5303
4764
  if (_M0FP36kazuph5reviw6server13ui__js__cache.val.length > 0) {
@@ -5315,7 +4776,7 @@ function _M0FP36kazuph5reviw6server12load__ui__js() {
5315
4776
  }
5316
4777
  }
5317
4778
  function _M0FP36kazuph5reviw6server11os__homedir() {
5318
- return homedir$2133();
4779
+ return homedir$1968();
5319
4780
  }
5320
4781
  function _M0FP36kazuph5reviw6server9lock__dir() {
5321
4782
  const override_dir = _M0FP36kazuph5reviw6server13get__env__var("REVIW_LOCK_DIR");
@@ -5326,7 +4787,7 @@ function _M0FP36kazuph5reviw6server10lock__path(port) {
5326
4787
  return _M0FP36kazuph5reviw6server10path__join(dir, `${_M0IP016_24default__implPB4Show10to__stringGiE(port)}.lock`);
5327
4788
  }
5328
4789
  function _M0FP36kazuph5reviw6server11mkdir__sync(_tmp, _tmp$2) {
5329
- return mkdirSync$2136(_tmp, _tmp$2);
4790
+ return mkdirSync$1971(_tmp, _tmp$2);
5330
4791
  }
5331
4792
  function _M0FP36kazuph5reviw6server17ensure__lock__dir() {
5332
4793
  const dir = _M0FP36kazuph5reviw6server9lock__dir();
@@ -5395,7 +4856,7 @@ function _M0FP36kazuph5reviw6server21find__available__port(base) {
5395
4856
  return base;
5396
4857
  }
5397
4858
  function _M0FP36kazuph5reviw6server13path__dirname(_tmp) {
5398
- return dirname$2143(_tmp);
4859
+ return dirname$1978(_tmp);
5399
4860
  }
5400
4861
  function _M0FP36kazuph5reviw6server21get__package__version() {
5401
4862
  let dir = _M0FP36kazuph5reviw6server16get__script__dir();
@@ -5447,7 +4908,7 @@ function _M0FP36kazuph5reviw6server17read__stdin__sync() {
5447
4908
  return _M0FP36kazuph5reviw6server16read__file__sync("/dev/stdin", "utf-8");
5448
4909
  }
5449
4910
  function _M0FP36kazuph5reviw6server13path__extname(_tmp) {
5450
- return extname$2150(_tmp);
4911
+ return extname$1985(_tmp);
5451
4912
  }
5452
4913
  function _M0FP36kazuph5reviw6server12detect__mode(file_path) {
5453
4914
  const ext = _M0FP36kazuph5reviw6server13path__extname(file_path);
@@ -5549,7 +5010,7 @@ function _M0FP36kazuph5reviw6server16detect__encoding(buf) {
5549
5010
  return "utf-8";
5550
5011
  }
5551
5012
  function _M0FP36kazuph5reviw6server18read__file__buffer(_tmp) {
5552
- return readFileSync$2131(_tmp);
5013
+ return readFileSync$1966(_tmp);
5553
5014
  }
5554
5015
  function _M0FP36kazuph5reviw6server12decode__file(path, override_enc) {
5555
5016
  const buf = _M0FP36kazuph5reviw6server18read__file__buffer(path);
@@ -5591,13 +5052,13 @@ function _M0FP36kazuph5reviw6server22load__and__build__html(ctx) {
5591
5052
  return _M0FP36kazuph5reviw4core16build__csv__html(data, ctx.filename, ctx.port);
5592
5053
  }
5593
5054
  function _M0FP36kazuph5reviw6server14path__basename(_tmp) {
5594
- return basename$2160(_tmp);
5055
+ return basename$1995(_tmp);
5595
5056
  }
5596
5057
  function _M0FP36kazuph5reviw6server13path__resolve(_tmp) {
5597
- return resolve$2162(_tmp);
5058
+ return resolve$1997(_tmp);
5598
5059
  }
5599
5060
  function _M0FP36kazuph5reviw6server25http__create__server__raw(_tmp) {
5600
- return createServer$2167(_tmp);
5061
+ return createServer$2002(_tmp);
5601
5062
  }
5602
5063
  function _M0FP36kazuph5reviw6server14create__server(handler) {
5603
5064
  return _M0FP36kazuph5reviw6server25http__create__server__raw(handler);
@@ -5736,7 +5197,7 @@ function _M0FP36kazuph5reviw6server22cancel__pending__close(ctx) {
5736
5197
  }
5737
5198
  }
5738
5199
  function _M0FP36kazuph5reviw6server22write__file__sync__buf(_tmp, _tmp$2) {
5739
- return writeFileSync$2121(_tmp, _tmp$2);
5200
+ return writeFileSync$1956(_tmp, _tmp$2);
5740
5201
  }
5741
5202
  function _M0FP36kazuph5reviw6server16base64__to__file(data, dir, index) {
5742
5203
  const ext = _M0FP36kazuph5reviw6server20extract__base64__ext(data);
@@ -5770,7 +5231,7 @@ function _M0FP36kazuph5reviw6server20ensure__history__dir() {
5770
5231
  }
5771
5232
  }
5772
5233
  function _M0FP36kazuph5reviw6server20crypto__create__hash(_tmp) {
5773
- return createHash$2188(_tmp);
5234
+ return createHash$2023(_tmp);
5774
5235
  }
5775
5236
  function _M0FP36kazuph5reviw6server14crypto__sha256(s) {
5776
5237
  return _M0FP36kazuph5reviw6server27hash__update__digest__hex16(_M0FP36kazuph5reviw6server20crypto__create__hash("sha256"), s);
@@ -5824,7 +5285,7 @@ function _M0FP36kazuph5reviw6server13save__history(file_path, entry_json) {
5824
5285
  _M0FP36kazuph5reviw6server11chmod__sync(hp, 384);
5825
5286
  }
5826
5287
  function _M0FP36kazuph5reviw6server13unwatch__file(_tmp) {
5827
- return unwatchFile$2193(_tmp);
5288
+ return unwatchFile$2028(_tmp);
5828
5289
  }
5829
5290
  function _M0FP36kazuph5reviw6server14handle__submit(ctx, body) {
5830
5291
  if (ctx.finished) {
@@ -6038,7 +5499,7 @@ function _M0FP36kazuph5reviw6server21handle__session__open(ctx, body) {
6038
5499
  _M0MPB3Map3setGssE(ctx.active_tab_instances, tab_id, instance_id);
6039
5500
  }
6040
5501
  function _M0FP36kazuph5reviw6server17child__exec__sync(_tmp, _tmp$2) {
6041
- return execSync$2206(_tmp, _tmp$2);
5502
+ return execSync$2041(_tmp, _tmp$2);
6042
5503
  }
6043
5504
  function _M0FP36kazuph5reviw6server15command__exists(cmd) {
6044
5505
  return _M0FP36kazuph5reviw6server15try__call__bool(() => {
@@ -6047,7 +5508,7 @@ function _M0FP36kazuph5reviw6server15command__exists(cmd) {
6047
5508
  });
6048
5509
  }
6049
5510
  function _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(_tmp) {
6050
- return mkdtempSync$2209(_tmp);
5511
+ return mkdtempSync$2044(_tmp);
6051
5512
  }
6052
5513
  function _M0FP36kazuph5reviw6server15make__temp__dir() {
6053
5514
  return _M0FP36kazuph5reviw6server17fs__mkdtemp__sync(`${_M0FP36kazuph5reviw6server10os__tmpdir()}/reviw-`);
@@ -6056,13 +5517,13 @@ function _M0FP36kazuph5reviw6server18read__file__base64(path) {
6056
5517
  return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15buf__to__base64(_M0FP36kazuph5reviw6server18read__file__buffer(path)), "");
6057
5518
  }
6058
5519
  function _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(_tmp) {
6059
- return readdirSync$2219(_tmp);
5520
+ return readdirSync$2054(_tmp);
6060
5521
  }
6061
5522
  function _M0FP36kazuph5reviw6server13readdir__sync(path) {
6062
5523
  return _M0FP36kazuph5reviw6server24try__call__array__string(() => _M0FP36kazuph5reviw6server22fs__readdir__sync__raw(path));
6063
5524
  }
6064
5525
  function _M0FP36kazuph5reviw6server12fs__rm__sync(_tmp, _tmp$2) {
6065
- return rmSync$2228(_tmp, _tmp$2);
5526
+ return rmSync$2063(_tmp, _tmp$2);
6066
5527
  }
6067
5528
  function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
6068
5529
  _M0FP36kazuph5reviw6server15try__call__void(() => {
@@ -6070,13 +5531,13 @@ function _M0FP36kazuph5reviw6server18rm__dir__recursive(path) {
6070
5531
  });
6071
5532
  }
6072
5533
  function _M0FP36kazuph5reviw6server12child__spawn(_tmp, _tmp$2, _tmp$3) {
6073
- return spawn$2234(_tmp, _tmp$2, _tmp$3);
5534
+ return spawn$2069(_tmp, _tmp$2, _tmp$3);
6074
5535
  }
6075
5536
  function _M0FP36kazuph5reviw6server12spawn__async(cmd, args_json) {
6076
5537
  return _M0FP36kazuph5reviw6server12child__spawn(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server21js__spawn__opts__pipe());
6077
5538
  }
6078
5539
  function _M0FP36kazuph5reviw6server18child__spawn__sync(_tmp, _tmp$2, _tmp$3) {
6079
- return spawnSync$2239(_tmp, _tmp$2, _tmp$3);
5540
+ return spawnSync$2074(_tmp, _tmp$2, _tmp$3);
6080
5541
  }
6081
5542
  function _M0FP36kazuph5reviw6server19spawn__sync__stdout(cmd, args_json) {
6082
5543
  return _M0FP36kazuph5reviw6server17try__call__string(() => _M0FP36kazuph5reviw6server15js__obj__stdout(_M0FP36kazuph5reviw6server18child__spawn__sync(cmd, _M0FP36kazuph5reviw6server15js__parse__json(args_json), _M0FP36kazuph5reviw6server27js__spawn__opts__utf8__pipe())), "");
@@ -6290,13 +5751,13 @@ function _M0FP36kazuph5reviw6server9index__of(s, target) {
6290
5751
  return -1;
6291
5752
  }
6292
5753
  function _M0FP36kazuph5reviw6server14fs__stat__sync(_tmp) {
6293
- return statSync$2257(_tmp);
5754
+ return statSync$2092(_tmp);
6294
5755
  }
6295
5756
  function _M0FP36kazuph5reviw6server14is__file__sync(path) {
6296
5757
  return _M0FP36kazuph5reviw6server18js__stat__is__file(_M0FP36kazuph5reviw6server14fs__stat__sync(path));
6297
5758
  }
6298
5759
  function _M0FP36kazuph5reviw6server30fs__create__read__stream__opts(_tmp, _tmp$2) {
6299
- return createReadStream$2261(_tmp, _tmp$2);
5760
+ return createReadStream$2096(_tmp, _tmp$2);
6300
5761
  }
6301
5762
  function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_type, range_header) {
6302
5763
  const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
@@ -6311,7 +5772,7 @@ function _M0FP36kazuph5reviw6server17pipe__file__range(file_path, res, content_t
6311
5772
  _M0FP36kazuph5reviw6server8js__pipe(stream, res);
6312
5773
  }
6313
5774
  function _M0FP36kazuph5reviw6server24fs__create__read__stream(_tmp) {
6314
- return createReadStream$2261(_tmp);
5775
+ return createReadStream$2096(_tmp);
6315
5776
  }
6316
5777
  function _M0FP36kazuph5reviw6server24pipe__file__to__response(file_path, res, content_type) {
6317
5778
  const stat = _M0FP36kazuph5reviw6server14fs__stat__sync(file_path);
@@ -6605,7 +6066,7 @@ function _M0FP36kazuph5reviw6server19start__http__server(ctx, no_open) {
6605
6066
  _M0FP36kazuph5reviw6server11try__listen(ctx, ctx.port, 0, no_open);
6606
6067
  }
6607
6068
  function _M0FP36kazuph5reviw6server11watch__file(_tmp, _tmp$2) {
6608
- return watchFile$2295(_tmp, _tmp$2);
6069
+ return watchFile$2130(_tmp, _tmp$2);
6609
6070
  }
6610
6071
  function _M0FP36kazuph5reviw6server19start__file__server(file_path, port, no_open) {
6611
6072
  const resolved = _M0FP36kazuph5reviw6server13path__resolve(file_path);