dreamcontext 0.7.0 → 0.7.1

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.
Files changed (131) hide show
  1. package/agents/sleep-tasks.md +20 -0
  2. package/dist/agents/sleep-tasks.md +20 -0
  3. package/dist/dashboard/assets/{BrainCanvas3D-lFgJbbhZ.js → BrainCanvas3D-Bb8WCKrn.js} +21 -21
  4. package/dist/dashboard/assets/{_baseUniq-BpANgc_i.js → _baseUniq-BatmaIH2.js} +1 -1
  5. package/dist/dashboard/assets/ar-SA-G6X2FPQ2-D5ja_wjH.js +10 -0
  6. package/dist/dashboard/assets/{arc-CX32Jm7E.js → arc-DqjLlF-x.js} +1 -1
  7. package/dist/dashboard/assets/{architectureDiagram-Q4EWVU46-ARASlGxO.js → architectureDiagram-Q4EWVU46-u9hbL6uu.js} +1 -1
  8. package/dist/dashboard/assets/az-AZ-76LH7QW2-CCrmRwql.js +1 -0
  9. package/dist/dashboard/assets/bg-BG-XCXSNQG7-ByFwPOzm.js +5 -0
  10. package/dist/dashboard/assets/{blockDiagram-DXYQGD6D-BBvsYm9E.js → blockDiagram-DXYQGD6D-dX-e3JNh.js} +1 -1
  11. package/dist/dashboard/assets/bn-BD-2XOGV67Q-CqnEIuTG.js +5 -0
  12. package/dist/dashboard/assets/{c4Diagram-AHTNJAMY-ChSUfXR9.js → c4Diagram-AHTNJAMY-DAT2Y4Ei.js} +1 -1
  13. package/dist/dashboard/assets/ca-ES-6MX7JW3Y-DxUow-Oi.js +8 -0
  14. package/dist/dashboard/assets/channel-JlaJkLX7.js +1 -0
  15. package/dist/dashboard/assets/{chunk-4BX2VUAB-COHoVEpt.js → chunk-4BX2VUAB-ng6_uP1b.js} +1 -1
  16. package/dist/dashboard/assets/{chunk-4TB4RGXK-DKJFLaTC.js → chunk-4TB4RGXK-JyQRd6F4.js} +1 -1
  17. package/dist/dashboard/assets/{chunk-55IACEB6-CKZPWZRu.js → chunk-55IACEB6-WENWKOcW.js} +1 -1
  18. package/dist/dashboard/assets/{chunk-EDXVE4YY-k1y4mGUJ.js → chunk-EDXVE4YY-BupZpcZ0.js} +1 -1
  19. package/dist/dashboard/assets/{chunk-FMBD7UC4-ixXe5R10.js → chunk-FMBD7UC4-6-Dp_BQr.js} +1 -1
  20. package/dist/dashboard/assets/{chunk-OYMX7WX6-NDFap7xg.js → chunk-OYMX7WX6-CRMXMXMR.js} +1 -1
  21. package/dist/dashboard/assets/{chunk-QZHKN3VN-vY0UpHjB.js → chunk-QZHKN3VN-CdV3chea.js} +1 -1
  22. package/dist/dashboard/assets/{chunk-YZCP3GAM-yztvsKR-.js → chunk-YZCP3GAM-DGd7UTQr.js} +1 -1
  23. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-BBVZgLT7.js +1 -0
  24. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-BBVZgLT7.js +1 -0
  25. package/dist/dashboard/assets/clone-DSjY5D8g.js +1 -0
  26. package/dist/dashboard/assets/{cose-bilkent-S5V4N54A-DKXM5Fh5.js → cose-bilkent-S5V4N54A-86wk8_0k.js} +1 -1
  27. package/dist/dashboard/assets/cs-CZ-2BRQDIVT-Vsx90G3k.js +11 -0
  28. package/dist/dashboard/assets/da-DK-5WZEPLOC-BqlSmIrC.js +5 -0
  29. package/dist/dashboard/assets/{dagre-KV5264BT-DN1Nlsmy.js → dagre-KV5264BT-BsnIu1de.js} +1 -1
  30. package/dist/dashboard/assets/de-DE-XR44H4JA-D1X2JmBd.js +8 -0
  31. package/dist/dashboard/assets/{diagram-5BDNPKRD-DnoJFRqR.js → diagram-5BDNPKRD-BfKZpkO_.js} +1 -1
  32. package/dist/dashboard/assets/{diagram-G4DWMVQ6-CF1_jTNI.js → diagram-G4DWMVQ6-BGEdOZis.js} +1 -1
  33. package/dist/dashboard/assets/{diagram-MMDJMWI5-D4-bZZEt.js → diagram-MMDJMWI5-4PK6U-9k.js} +1 -1
  34. package/dist/dashboard/assets/{diagram-TYMM5635-al8RqVgf.js → diagram-TYMM5635-Co4XFxnB.js} +1 -1
  35. package/dist/dashboard/assets/directory-open-01563666-DWU9wJ6I.js +1 -0
  36. package/dist/dashboard/assets/directory-open-4ed118d0-CunoC1EB.js +1 -0
  37. package/dist/dashboard/assets/el-GR-BZB4AONW-JfJ7Iw6d.js +10 -0
  38. package/dist/dashboard/assets/{erDiagram-SMLLAGMA-MEcC0rwO.js → erDiagram-SMLLAGMA-tggQbGeM.js} +1 -1
  39. package/dist/dashboard/assets/es-ES-U4NZUMDT-CrTG5SH1.js +9 -0
  40. package/dist/dashboard/assets/eu-ES-A7QVB2H4-CLi-f2S4.js +11 -0
  41. package/dist/dashboard/assets/extends-CF3RwP-h.js +1 -0
  42. package/dist/dashboard/assets/fa-IR-HGAKTJCU-B78t-ifl.js +8 -0
  43. package/dist/dashboard/assets/fi-FI-Z5N7JZ37-BiYGo0tM.js +6 -0
  44. package/dist/dashboard/assets/file-open-002ab408-DIuFHtCF.js +1 -0
  45. package/dist/dashboard/assets/file-open-7c801643-684qeFg4.js +1 -0
  46. package/dist/dashboard/assets/file-save-3189631c-C1wFhQhH.js +1 -0
  47. package/dist/dashboard/assets/file-save-745eba88-Bb9F9Kg7.js +1 -0
  48. package/dist/dashboard/assets/{flowDiagram-DWJPFMVM-DCLyNpW8.js → flowDiagram-DWJPFMVM-DfOOuTHa.js} +1 -1
  49. package/dist/dashboard/assets/fr-FR-RHASNOE6-CHuvxlm9.js +9 -0
  50. package/dist/dashboard/assets/{ganttDiagram-T4ZO3ILL-DfEvbbJK.js → ganttDiagram-T4ZO3ILL-CqRBfUlO.js} +1 -1
  51. package/dist/dashboard/assets/{gitGraphDiagram-UUTBAWPF-C_YozdVL.js → gitGraphDiagram-UUTBAWPF-DCooi0ou.js} +1 -1
  52. package/dist/dashboard/assets/gl-ES-HMX3MZ6V-DloFVgGH.js +10 -0
  53. package/dist/dashboard/assets/{graph-DpIXS1G1.js → graph-CbTgvSod.js} +1 -1
  54. package/dist/dashboard/assets/he-IL-6SHJWFNN-sKyHtCj5.js +10 -0
  55. package/dist/dashboard/assets/hi-IN-IWLTKZ5I-BDBktoGz.js +4 -0
  56. package/dist/dashboard/assets/hu-HU-A5ZG7DT2-CI0m6WdK.js +7 -0
  57. package/dist/dashboard/assets/id-ID-SAP4L64H-o3oCWYJ1.js +10 -0
  58. package/dist/dashboard/assets/image-blob-reduce.esm-D6s-rqMO.js +7 -0
  59. package/dist/dashboard/assets/index-BMwAG0PF.css +1 -0
  60. package/dist/dashboard/assets/index-BzUItYQF.js +19 -0
  61. package/dist/dashboard/assets/{index-Bo5CUa_M.js → index-CIMJcxbn.js} +178 -178
  62. package/dist/dashboard/assets/{infoDiagram-42DDH7IO-AdT6kjzj.js → infoDiagram-42DDH7IO-DvXAiIKM.js} +1 -1
  63. package/dist/dashboard/assets/{ishikawaDiagram-UXIWVN3A-B0_9IZVO.js → ishikawaDiagram-UXIWVN3A-B3k3F-SR.js} +1 -1
  64. package/dist/dashboard/assets/it-IT-JPQ66NNP-B69FvIBl.js +11 -0
  65. package/dist/dashboard/assets/ja-JP-DBVTYXUO-09Dz5R3w.js +8 -0
  66. package/dist/dashboard/assets/{journeyDiagram-VCZTEJTY-BveNBswQ.js → journeyDiagram-VCZTEJTY-3sYlQlzX.js} +1 -1
  67. package/dist/dashboard/assets/kaa-6HZHGXH3-SFvv5G_m.js +1 -0
  68. package/dist/dashboard/assets/kab-KAB-ZGHBKWFO-Cj4UcDfk.js +8 -0
  69. package/dist/dashboard/assets/{kanban-definition-6JOO6SKY-CFI8j4jR.js → kanban-definition-6JOO6SKY-cGLqpTJv.js} +1 -1
  70. package/dist/dashboard/assets/kk-KZ-P5N5QNE5-BVT_-IeJ.js +1 -0
  71. package/dist/dashboard/assets/km-KH-HSX4SM5Z-BpH_zneK.js +11 -0
  72. package/dist/dashboard/assets/ko-KR-MTYHY66A-BWtVfnIt.js +9 -0
  73. package/dist/dashboard/assets/ku-TR-6OUDTVRD-DKg1sGxW.js +9 -0
  74. package/dist/dashboard/assets/{layout-DI7XjZy1.js → layout-gKZamora.js} +1 -1
  75. package/dist/dashboard/assets/{linear-CSjp56iw.js → linear-DOSQ02II.js} +1 -1
  76. package/dist/dashboard/assets/lt-LT-XHIRWOB4-DFICvEvq.js +3 -0
  77. package/dist/dashboard/assets/lv-LV-5QDEKY6T-CeIp3POy.js +7 -0
  78. package/dist/dashboard/assets/min-BD9nuOyV.js +1 -0
  79. package/dist/dashboard/assets/{mindmap-definition-QFDTVHPH-C2mBnknr.js → mindmap-definition-QFDTVHPH-DNg9-qbI.js} +7 -7
  80. package/dist/dashboard/assets/mr-IN-CRQNXWMA-CMiofriy.js +13 -0
  81. package/dist/dashboard/assets/my-MM-5M5IBNSE-WhbW1bUQ.js +1 -0
  82. package/dist/dashboard/assets/nb-NO-T6EIAALU-kvj3GRtN.js +10 -0
  83. package/dist/dashboard/assets/nl-NL-IS3SIHDZ-BdYOVmBV.js +8 -0
  84. package/dist/dashboard/assets/nn-NO-6E72VCQL-BAI1MQoO.js +8 -0
  85. package/dist/dashboard/assets/oc-FR-POXYY2M6-ChavJGTr.js +8 -0
  86. package/dist/dashboard/assets/pa-IN-N4M65BXN-AWmvLRaa.js +4 -0
  87. package/dist/dashboard/assets/percentages-BXMCSKIN-QYboYPU4.js +215 -0
  88. package/dist/dashboard/assets/pica-DzAIGpll.js +7 -0
  89. package/dist/dashboard/assets/{pieDiagram-DEJITSTG-i_phWDqD.js → pieDiagram-DEJITSTG-C4ZFpuC0.js} +1 -1
  90. package/dist/dashboard/assets/pl-PL-T2D74RX3-C06LuJit.js +9 -0
  91. package/dist/dashboard/assets/pt-BR-5N22H2LF-DP-AXG39.js +9 -0
  92. package/dist/dashboard/assets/pt-PT-UZXXM6DQ-T-2COPG-.js +9 -0
  93. package/dist/dashboard/assets/{quadrantDiagram-34T5L4WZ-Dv7TGJjw.js → quadrantDiagram-34T5L4WZ-yvEQRUmq.js} +1 -1
  94. package/dist/dashboard/assets/{requirementDiagram-MS252O5E-CB2Jl-O5.js → requirementDiagram-MS252O5E-BkjbZkw1.js} +1 -1
  95. package/dist/dashboard/assets/ro-RO-JPDTUUEW-V8ShMmhj.js +11 -0
  96. package/dist/dashboard/assets/roundRect-0PYZxl1G.js +1 -0
  97. package/dist/dashboard/assets/ru-RU-B4JR7IUQ-Bk5QWjQg.js +9 -0
  98. package/dist/dashboard/assets/{sankeyDiagram-XADWPNL6-DxCoN-EI.js → sankeyDiagram-XADWPNL6-_6wZr0Q4.js} +1 -1
  99. package/dist/dashboard/assets/{sequenceDiagram-FGHM5R23-BeZyaehJ.js → sequenceDiagram-FGHM5R23-B03MUCIO.js} +1 -1
  100. package/dist/dashboard/assets/si-LK-N5RQ5JYF-DrLyNjX_.js +1 -0
  101. package/dist/dashboard/assets/sk-SK-C5VTKIMK-MG2XJDav.js +6 -0
  102. package/dist/dashboard/assets/sl-SI-NN7IZMDC-DyF2jYcb.js +6 -0
  103. package/dist/dashboard/assets/{stateDiagram-FHFEXIEX-D3AjQzD1.js → stateDiagram-FHFEXIEX-DW9W8hRb.js} +1 -1
  104. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-DGLHFCvB.js +1 -0
  105. package/dist/dashboard/assets/subset-shared.chunk-DxnLkUkc.js +84 -0
  106. package/dist/dashboard/assets/subset-worker.chunk-BCGTROg4.js +1 -0
  107. package/dist/dashboard/assets/sv-SE-XGPEYMSR-BJOlh7Ta.js +10 -0
  108. package/dist/dashboard/assets/ta-IN-2NMHFXQM-DbvdzD_M.js +9 -0
  109. package/dist/dashboard/assets/th-TH-HPSO5L25-BZoStbWu.js +2 -0
  110. package/dist/dashboard/assets/{timeline-definition-GMOUNBTQ-3l_8RFUg.js → timeline-definition-GMOUNBTQ-Cq3P6C9q.js} +1 -1
  111. package/dist/dashboard/assets/tr-TR-DEFEU3FU-D0q3dp6Y.js +7 -0
  112. package/dist/dashboard/assets/uk-UA-QMV73CPH-KQC76_Jh.js +6 -0
  113. package/dist/dashboard/assets/{vennDiagram-DHZGUBPP-2QiY25JD.js → vennDiagram-DHZGUBPP-BO3azTdL.js} +1 -1
  114. package/dist/dashboard/assets/vi-VN-M7AON7JQ-BsyXHyOP.js +5 -0
  115. package/dist/dashboard/assets/{wardley-RL74JXVD-DNLmFofz.js → wardley-RL74JXVD-BjaWFGf-.js} +1 -1
  116. package/dist/dashboard/assets/{wardleyDiagram-NUSXRM2D-BI0tupiS.js → wardleyDiagram-NUSXRM2D-D0Ghwhzw.js} +1 -1
  117. package/dist/dashboard/assets/{xychartDiagram-5P7HB3ND-CghXPE7_.js → xychartDiagram-5P7HB3ND-D1QYeAFg.js} +1 -1
  118. package/dist/dashboard/assets/zh-CN-LNUGB5OW-Cg54ea9D.js +10 -0
  119. package/dist/dashboard/assets/zh-HK-E62DVLB3-N7JXSzdg.js +1 -0
  120. package/dist/dashboard/assets/zh-TW-RAJ6MFWO-CTX6fzNp.js +9 -0
  121. package/dist/dashboard/index.html +2 -2
  122. package/dist/index.js +934 -290
  123. package/package.json +1 -1
  124. package/skill/SKILL.md +22 -0
  125. package/dist/dashboard/assets/channel-w_Bp182N.js +0 -1
  126. package/dist/dashboard/assets/classDiagram-6PBFFD2Q-CcQxcqy9.js +0 -1
  127. package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-CcQxcqy9.js +0 -1
  128. package/dist/dashboard/assets/clone-_znoR_ci.js +0 -1
  129. package/dist/dashboard/assets/index-DrqurW1c.css +0 -1
  130. package/dist/dashboard/assets/min-pAGUJmEC.js +0 -1
  131. package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-Ci9v--xK.js +0 -1
@@ -0,0 +1 @@
1
+ .md-preview{flex:1;overflow:auto;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg)}.md-frontmatter{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary)}.md-fm-row{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-1) 0;font-size:var(--font-size-xs)}.md-fm-row+.md-fm-row{border-top:1px solid var(--color-border)}.md-fm-key{width:100px;flex-shrink:0;font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.md-fm-value{color:var(--color-text);word-break:break-word}.md-preview .markdown-body{font-size:var(--font-size-sm);color:var(--color-text);line-height:var(--line-height-relaxed)}.md-preview .markdown-body>:first-child{margin-top:0}.md-preview .markdown-body>:last-child{margin-bottom:0}.md-preview .markdown-body h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-top:var(--space-6);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.md-preview .markdown-body h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-top:var(--space-5);margin-bottom:var(--space-3)}.md-preview .markdown-body h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-top:var(--space-4);margin-bottom:var(--space-2)}.md-preview .markdown-body h4,.md-preview .markdown-body h5,.md-preview .markdown-body h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-top:var(--space-4);margin-bottom:var(--space-2)}.md-preview .markdown-body p{margin-bottom:var(--space-3)}.md-preview .markdown-body ul,.md-preview .markdown-body ol{padding-left:var(--space-5);margin-bottom:var(--space-3)}.md-preview .markdown-body ul{list-style-type:disc}.md-preview .markdown-body ol{list-style-type:decimal}.md-preview .markdown-body li{margin-bottom:var(--space-1);line-height:var(--line-height-relaxed)}.md-preview .markdown-body li>ul,.md-preview .markdown-body li>ol{margin-top:var(--space-1);margin-bottom:0}.md-preview .markdown-body li input[type=checkbox]{margin-right:var(--space-2);accent-color:var(--color-accent)}.md-preview .markdown-body code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-secondary);padding:1px 4px;border-radius:3px}.md-preview .markdown-body pre{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);overflow-x:auto;margin-bottom:var(--space-3)}.md-preview .markdown-body pre code{background:none;padding:0;font-size:var(--font-size-xs)}.md-preview .markdown-body table{width:100%;border-collapse:collapse;margin-bottom:var(--space-3);font-size:var(--font-size-xs)}.md-preview .markdown-body th,.md-preview .markdown-body td{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);text-align:left}.md-preview .markdown-body th{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.md-preview .markdown-body tr:hover{background:var(--color-bg-secondary)}.md-preview .markdown-body blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);margin:0 0 var(--space-3) 0;color:var(--color-text-secondary);font-style:italic}.md-preview .markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.md-preview .markdown-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.md-preview .markdown-body a:hover{color:var(--color-accent)}.md-preview .markdown-body strong{font-weight:var(--font-weight-semibold)}.md-preview .markdown-body img{max-width:100%;border-radius:var(--radius-md)}.md-preview .markdown-body .mermaid-rendered{margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;position:relative;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.md-preview .markdown-body .mermaid-rendered:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.md-preview .markdown-body .mermaid-stage{display:flex;align-items:center;justify-content:center;min-height:200px;width:100%;overflow:auto}.md-preview .markdown-body .mermaid-stage>svg{max-width:100%;height:auto;display:block}.md-preview .markdown-body .mermaid-error{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-error);background:var(--color-error-subtle);border:1px solid var(--color-error);border-radius:var(--radius-md);padding:var(--space-3);white-space:pre-wrap;word-break:break-word}.md-preview .markdown-body code.hljs,.md-preview .markdown-body .hljs{background:transparent;color:var(--color-text)}.md-preview .markdown-body .hljs-comment,.md-preview .markdown-body .hljs-quote,.md-preview .markdown-body .hljs-meta{color:var(--color-text-tertiary);font-style:italic}.md-preview .markdown-body .hljs-keyword,.md-preview .markdown-body .hljs-selector-tag,.md-preview .markdown-body .hljs-literal,.md-preview .markdown-body .hljs-section,.md-preview .markdown-body .hljs-name,.md-preview .markdown-body .hljs-tag{color:#5a31b9;font-weight:var(--font-weight-semibold)}.md-preview .markdown-body .hljs-string,.md-preview .markdown-body .hljs-regexp,.md-preview .markdown-body .hljs-addition{color:#157a3a}.md-preview .markdown-body .hljs-number,.md-preview .markdown-body .hljs-boolean,.md-preview .markdown-body .hljs-literal.number{color:#a75711}.md-preview .markdown-body .hljs-title,.md-preview .markdown-body .hljs-title.function_,.md-preview .markdown-body .hljs-title.class_,.md-preview .markdown-body .hljs-type,.md-preview .markdown-body .hljs-built_in,.md-preview .markdown-body .hljs-class{color:#2452bc}.md-preview .markdown-body .hljs-attr,.md-preview .markdown-body .hljs-attribute,.md-preview .markdown-body .hljs-variable,.md-preview .markdown-body .hljs-template-variable,.md-preview .markdown-body .hljs-selector-attr,.md-preview .markdown-body .hljs-selector-pseudo{color:#b4226b}.md-preview .markdown-body .hljs-symbol,.md-preview .markdown-body .hljs-bullet,.md-preview .markdown-body .hljs-link{color:var(--color-accent)}.md-preview .markdown-body .hljs-deletion{color:var(--color-error)}.md-preview .markdown-body .hljs-emphasis{font-style:italic}.md-preview .markdown-body .hljs-strong{font-weight:var(--font-weight-bold)}[data-theme=dark] .md-preview .markdown-body .hljs-keyword,[data-theme=dark] .md-preview .markdown-body .hljs-selector-tag,[data-theme=dark] .md-preview .markdown-body .hljs-literal,[data-theme=dark] .md-preview .markdown-body .hljs-section,[data-theme=dark] .md-preview .markdown-body .hljs-name,[data-theme=dark] .md-preview .markdown-body .hljs-tag{color:#c4b5fd}[data-theme=dark] .md-preview .markdown-body .hljs-string,[data-theme=dark] .md-preview .markdown-body .hljs-regexp,[data-theme=dark] .md-preview .markdown-body .hljs-addition{color:#86efac}[data-theme=dark] .md-preview .markdown-body .hljs-number,[data-theme=dark] .md-preview .markdown-body .hljs-boolean{color:#fcd34d}[data-theme=dark] .md-preview .markdown-body .hljs-title,[data-theme=dark] .md-preview .markdown-body .hljs-title.function_,[data-theme=dark] .md-preview .markdown-body .hljs-title.class_,[data-theme=dark] .md-preview .markdown-body .hljs-type,[data-theme=dark] .md-preview .markdown-body .hljs-built_in,[data-theme=dark] .md-preview .markdown-body .hljs-class{color:#93c5fd}[data-theme=dark] .md-preview .markdown-body .hljs-attr,[data-theme=dark] .md-preview .markdown-body .hljs-attribute,[data-theme=dark] .md-preview .markdown-body .hljs-variable,[data-theme=dark] .md-preview .markdown-body .hljs-template-variable,[data-theme=dark] .md-preview .markdown-body .hljs-selector-attr{color:#f9a8d4}.update-badge{position:relative;display:flex;align-items:center}.update-badge-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-warning-subtle);border:1px solid var(--color-warning);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.update-badge-trigger:hover{background:var(--color-warning);border-color:var(--color-warning)}.update-badge-trigger:hover .update-badge-label{color:var(--color-text-on-brand)}.update-badge-dot{width:var(--space-2);height:var(--space-2);border-radius:var(--radius-full);background:var(--color-warning);flex-shrink:0;animation:update-badge-pulse 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.update-badge-dot{animation:none}}@keyframes update-badge-pulse{0%,to{opacity:1}50%{opacity:.5}}.update-badge-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-warning);white-space:nowrap}.update-badge-popover{position:absolute;top:calc(100% + var(--space-2));right:0;width:360px;max-width:90vw;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:100}.update-badge-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.update-badge-popover-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.update-badge-dismiss{width:var(--space-6);height:var(--space-6);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--font-size-base);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.update-badge-dismiss:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.update-badge-content{padding:var(--space-4);max-height:320px;overflow-y:auto}.update-badge-action{display:block;width:calc(100% - var(--space-4) * 2);margin:0 var(--space-4) var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-accent);color:var(--color-text-on-brand);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:filter var(--transition-fast),transform var(--transition-fast)}.update-badge-action:hover{filter:brightness(1.08)}.update-badge-action:active{transform:scale(.98)}.header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:var(--space-3)}.agent-avatar{position:relative;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:opacity var(--transition-normal)}.agent-avatar--must_sleep{animation:pulse-slow 2s ease-in-out infinite}.zzz{position:absolute;top:-4px;right:-8px;font-size:9px;font-weight:var(--font-weight-bold);color:var(--color-text-tertiary);animation:float 2s ease-in-out infinite}@keyframes pulse-slow{0%,to{opacity:.4}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.header-brand{display:flex;align-items:center;gap:var(--space-2)}.brand-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);color:var(--color-text)}.sleep-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);border-radius:var(--radius-sm);white-space:nowrap;letter-spacing:var(--letter-spacing-caption);border:1px solid transparent}.sleep-badge--alert{background:var(--color-success-subtle);color:var(--color-success);border-color:var(--color-success)}.sleep-badge--drowsy{background:var(--color-warning-subtle);color:var(--color-warning);border-color:var(--color-warning)}.sleep-badge--sleepy{background:var(--color-accent-soft);color:var(--color-accent)}[data-theme=dark] .sleep-badge--sleepy{color:var(--color-accent)}.sleep-badge--must_sleep{background:var(--color-error-subtle);color:var(--color-error);border-color:var(--color-error)}.header-right{display:flex;align-items:center;gap:var(--space-1)}.zoom-controls{display:flex;align-items:center;gap:2px;margin-right:var(--space-2);padding:2px;border-radius:var(--radius-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border)}.zoom-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.zoom-btn:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.zoom-btn:disabled{opacity:.3;cursor:default}.zoom-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);min-width:32px;text-align:center;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums}.theme-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.theme-toggle:hover{background:var(--color-bg-tertiary);color:var(--color-text)}@media(max-width:640px){.zoom-controls{display:none}}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);height:calc(100vh - var(--header-height));border-right:1px solid var(--color-border);background:var(--color-bg-secondary);padding:var(--space-2);overflow-x:hidden;overflow-y:auto;flex-shrink:0;transition:width var(--transition-normal)}.sidebar-footer{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--color-border)}.sidebar-item--about{color:var(--color-text-secondary)}.sidebar-item--about .sidebar-icon,.sidebar-item--about:hover .sidebar-icon{color:var(--color-accent)}.sidebar-item--nudge,.sidebar-item--nudge:hover{color:var(--color-accent);background:var(--color-accent-soft);font-weight:var(--font-weight-semibold)}.sidebar-item--nudge .sidebar-icon,.sidebar-item--nudge:hover .sidebar-icon{color:var(--color-accent)}.sidebar-item--nudge{animation:about-bounce 1.5s ease-in-out infinite}.sidebar-item--nudge:after{content:"";position:absolute;top:5px;right:8px;width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-accent);box-shadow:var(--shadow-glow)}@keyframes about-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.sidebar--collapsed{width:56px}.sidebar-toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-3);margin-bottom:var(--space-2);border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-toggle:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.sidebar-toggle-icon{width:18px;text-align:center;flex-shrink:0;font-size:var(--font-size-base)}.sidebar--collapsed .sidebar-toggle{justify-content:center}.sidebar-group+.sidebar-group{margin-top:var(--space-4)}.sidebar-group-label{display:block;padding:0 var(--space-3);margin-bottom:var(--space-1);font-size:var(--font-size-xs, 11px);font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.sidebar--collapsed .sidebar-label{display:none}.sidebar--collapsed .sidebar-group-label{height:0;margin:0;padding:0;overflow:hidden;border-top:1px solid var(--color-border)}.sidebar--collapsed .sidebar-group+.sidebar-group{margin-top:var(--space-2)}.sidebar--collapsed .sidebar-item{justify-content:center;padding-left:0;padding-right:0}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-item{position:relative;display:flex;align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1.2;color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;text-align:left;transition:background var(--transition-fast),color var(--transition-fast)}.sidebar-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.sidebar-item--active{background:var(--color-bg-tertiary);color:var(--color-text);font-weight:var(--font-weight-semibold)}.sidebar-item--active:before{content:"";position:absolute;left:-2px;top:6px;bottom:6px;width:2px;border-radius:var(--radius-full);background:var(--color-accent)}.sidebar-item--active .sidebar-icon{color:var(--color-accent)}.sidebar-icon{font-size:var(--font-size-base);width:18px;text-align:center;flex-shrink:0;color:var(--color-text-tertiary);transition:color var(--transition-fast)}.sidebar-item:hover .sidebar-icon{color:var(--color-text)}.sidebar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:var(--letter-spacing-body)}.shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.shell-body{display:flex;flex:1;overflow:hidden}.shell-main{flex:1;overflow-y:auto;padding:var(--space-4);background:transparent}.task-card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);cursor:grab;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm)}.task-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.task-card:active{cursor:grabbing;box-shadow:var(--shadow-xl);transform:scale(.98)}.task-card--dragging{opacity:.4;cursor:grabbing}.task-card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.priority-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.priority-dot--critical{background:var(--color-priority-critical)}.priority-dot--high{background:var(--color-priority-high)}.priority-dot--medium{background:var(--color-priority-medium)}.priority-dot--low{background:var(--color-priority-low)}.urgency-bar{width:3px;height:14px;border-radius:2px;flex-shrink:0}.urgency-bar--critical{background:var(--color-urgency-critical)}.urgency-bar--high{background:var(--color-urgency-high)}.urgency-bar--low{background:var(--color-urgency-low)}.task-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-card-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-normal);margin-bottom:var(--space-2)}.task-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.task-card-tags{display:flex;gap:var(--space-1);flex-wrap:wrap}.task-tag{font-size:10px;font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);border:1px solid transparent;letter-spacing:var(--letter-spacing-caption);line-height:1.4;white-space:nowrap}.task-tag[data-hue="0"]{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.task-tag[data-hue="1"]{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.task-tag[data-hue="2"]{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.task-tag[data-hue="3"]{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.task-tag[data-hue="4"]{background:#ffedd5;color:#c2410c;border-color:#fed7aa}.task-tag[data-hue="5"]{background:#fae8ff;color:#86198f;border-color:#f5d0fe}.task-tag[data-hue="6"]{background:#ccfbf1;color:#0f766e;border-color:#99f6e4}.task-tag[data-hue="7"]{background:#fce7f3;color:#be185d;border-color:#fbcfe8}.task-tag[data-hue="8"]{background:#e0e7ff;color:#4338ca;border-color:#c7d2fe}.task-tag[data-hue="9"]{background:#fef3c7;color:#a16207;border-color:#fde68a}[data-theme=dark] .task-tag[data-hue="0"]{background:#9d8cff29;color:#c4b5fd;border-color:#9d8cff47}[data-theme=dark] .task-tag[data-hue="1"]{background:#60a5fa29;color:#93c5fd;border-color:#60a5fa47}[data-theme=dark] .task-tag[data-hue="2"]{background:#f8717129;color:#fca5a5;border-color:#f8717147}[data-theme=dark] .task-tag[data-hue="3"]{background:#4ade8024;color:#86efac;border-color:#4ade8042}[data-theme=dark] .task-tag[data-hue="4"]{background:#fb923c29;color:#fdba74;border-color:#fb923c47}[data-theme=dark] .task-tag[data-hue="5"]{background:#d946ef29;color:#f0abfc;border-color:#d946ef47}[data-theme=dark] .task-tag[data-hue="6"]{background:#2dd4bf29;color:#5eead4;border-color:#2dd4bf47}[data-theme=dark] .task-tag[data-hue="7"]{background:#f472b629;color:#f9a8d4;border-color:#f472b647}[data-theme=dark] .task-tag[data-hue="8"]{background:#818cf829;color:#a5b4fc;border-color:#818cf847}[data-theme=dark] .task-tag[data-hue="9"]{background:#fbbf2429;color:#fcd34d;border-color:#fbbf2447}.task-card-date{font-size:10px;color:var(--color-text-tertiary);white-space:nowrap}.sub-group{margin-bottom:var(--space-2)}.sub-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;width:100%;transition:background var(--transition-fast);font-family:var(--font-family)}.sub-group-header:hover{background:var(--color-bg-secondary)}.sub-group-chevron{transition:transform var(--transition-fast);color:var(--color-text-tertiary);flex-shrink:0}.sub-group-chevron--open{transform:rotate(90deg)}.sub-group-dot{width:6px;height:6px;border-radius:var(--radius-full);flex-shrink:0}.sub-group-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.sub-group-count{font-size:10px;color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:0 var(--space-1);border-radius:var(--radius-full);min-width:16px;text-align:center}.sub-group-cards{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-1) 0 0 var(--space-4)}.kanban-column{flex:1;min-width:280px;max-width:400px;display:flex;flex-direction:column;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-md);transition:background var(--transition-fast),box-shadow var(--transition-fast)}.kanban-column--dragover{background:var(--color-accent-soft)}.kanban-column-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-3)}.kanban-column-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.kanban-column-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.kanban-column-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:0 var(--space-2);border-radius:var(--radius-full);min-width:20px;text-align:center}.kanban-column-cards{display:flex;flex-direction:column;gap:var(--space-2);flex:1;overflow-y:auto}.filter-popover{position:relative;display:inline-flex}.filter-popover-dropdown{position:absolute;top:calc(100% + 6px);z-index:200;min-width:180px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-1);animation:popover-enter .15s cubic-bezier(.2,0,.13,1.5)}.filter-popover-dropdown--left{left:0}.filter-popover-dropdown--right{right:0}@keyframes popover-enter{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.filter-option-list{display:flex;flex-direction:column;gap:1px}.filter-option{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-2);border-radius:6px;font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background .1s}.filter-option:hover{background:var(--color-bg-secondary)}.filter-option--selected{color:var(--color-accent);font-weight:var(--font-weight-medium)}.filter-option-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.filter-option-check{margin-left:auto;color:var(--color-accent);flex-shrink:0}.filter-option-label{flex:1}.filter-popover-section{padding:6px var(--space-2) 2px;font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.filter-popover-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0}.multi-select-list{padding:var(--space-1);min-width:180px}.multi-select-search-wrap{padding:var(--space-1) var(--space-2)}.multi-select-search{width:100%;padding:5px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:var(--font-size-xs);font-family:var(--font-family);color:var(--color-text);outline:none;transition:border-color var(--transition-fast)}.multi-select-search:focus{border-color:var(--color-accent)}.multi-select-options{max-height:200px;overflow-y:auto}.multi-select-no-results{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center}.multi-select-actions{display:flex;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1)}.multi-select-action{padding:2px var(--space-2);border:none;border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-xs);font-family:var(--font-family);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.multi-select-action:hover{color:var(--color-accent);background:var(--color-bg-secondary)}.multi-select-option{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-2);border-radius:6px;cursor:pointer;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none}.multi-select-option:hover{background:var(--color-bg-secondary)}.multi-select-option input[type=checkbox]{accent-color:var(--color-accent);width:14px;height:14px;flex-shrink:0}.mini-cal{width:296px;padding:var(--space-3)}.mini-cal-field-toggle{display:flex;gap:2px;margin-bottom:var(--space-2);background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:2px}.mini-cal-field-btn{flex:1;padding:5px var(--space-2);border:none;border-radius:6px;background:transparent;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.mini-cal-field-btn--active{background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--shadow-sm)}.mini-cal-presets{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-2)}.mini-cal-preset{padding:3px 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;font-size:10px;font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.mini-cal-preset:hover{border-color:var(--color-accent);color:var(--color-accent)}.mini-cal-preset--active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-brand)}.mini-cal-divider{height:1px;background:var(--color-border);margin:var(--space-1) 0 var(--space-2)}.mini-cal-nav-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.mini-cal-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.mini-cal-nav-btn:hover{background:var(--color-bg-secondary);color:var(--color-text)}.mini-cal-month-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.mini-cal-day-label{display:flex;align-items:center;justify-content:center;height:28px;font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.03em}.mini-cal-day{display:flex;align-items:center;justify-content:center;height:32px;border:none;background:transparent;font-size:var(--font-size-xs);color:var(--color-text);cursor:pointer;transition:background 80ms;position:relative}.mini-cal-day:hover{background:var(--color-bg-secondary)}.mini-cal-day--outside{color:var(--color-text-tertiary);opacity:.5}.mini-cal-day--today{font-weight:var(--font-weight-bold);color:var(--color-accent)}.mini-cal-day--today:after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:var(--radius-full);background:var(--color-accent)}.mini-cal-day--in-range{background:var(--color-accent-soft);border-radius:0}.mini-cal-day--in-range:hover{background:var(--color-accent-soft)}.mini-cal-day--selected{background:var(--color-accent);color:var(--color-text-on-brand);font-weight:var(--font-weight-semibold)}.mini-cal-day--selected:hover{background:var(--color-accent)}.mini-cal-day--selected.mini-cal-day--today:after{background:var(--color-text-on-brand)}.mini-cal-day--range-start{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.mini-cal-day--range-end{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.mini-cal-day--single,.mini-cal-day--range-start.mini-cal-day--range-end{border-radius:var(--radius-sm)}.mini-cal-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.mini-cal-range-text{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text)}.mini-cal-arrow{color:var(--color-text-tertiary)}.mini-cal-hint{color:var(--color-text-tertiary);font-weight:var(--font-weight-normal);font-style:italic}.mini-cal-clear-btn{padding:3px 10px;border:none;border-radius:var(--radius-sm);background:transparent;font-size:var(--font-size-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast)}.mini-cal-clear-btn:hover{color:var(--color-error)}.filter-bar{display:flex;align-items:center;gap:6px;margin-bottom:var(--space-5);flex-wrap:wrap;min-height:36px}.filter-bar-divider{width:1px;height:20px;background:var(--color-border);margin:0 2px;flex-shrink:0}.filter-bar-spacer{flex:1;min-width:var(--space-2)}.filter-search{display:flex;align-items:center;gap:var(--space-1);padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);color:var(--color-text-tertiary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-width:160px;max-width:220px}.filter-search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.filter-search-input{border:none;background:none;outline:none;font-size:var(--font-size-xs);color:var(--color-text);width:100%;font-family:var(--font-family)}.filter-search-input::placeholder{color:var(--color-text-tertiary)}.filter-search-clear{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast)}.filter-search-clear:hover{color:var(--color-text)}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.filter-chip:hover{border-color:var(--color-border-hover);color:var(--color-text);background:var(--color-bg-secondary)}.filter-chip--active{border-color:var(--color-accent);color:var(--color-text);background:var(--color-accent-soft)}.filter-chip--active:hover{background:var(--color-accent-soft)}.filter-chip--subtle{border-color:transparent;background:transparent}.filter-chip--subtle:hover{background:var(--color-bg-secondary);border-color:var(--color-border)}.filter-chip-dot{width:7px;height:7px;border-radius:var(--radius-full);flex-shrink:0}.filter-chip-label{line-height:1}.filter-chip-chevron{transition:transform var(--transition-fast);opacity:.5;flex-shrink:0}.filter-chip-chevron--open{transform:rotate(180deg)}.filter-chip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-text-on-brand);font-size:9px;font-weight:var(--font-weight-bold);line-height:1}.filter-tag-wrap{display:flex;align-items:center;position:relative}.filter-tag-input{padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);font-size:var(--font-size-xs);font-family:var(--font-family);color:var(--color-text);width:90px;transition:border-color var(--transition-fast),width var(--transition-normal)}.filter-tag-input:focus{border-color:var(--color-accent);outline:none;width:120px}.filter-tag-input::placeholder{color:var(--color-text-tertiary)}.filter-tag-clear{position:absolute;right:4px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer}.filter-tag-clear:hover{color:var(--color-text)}.filter-clear-all{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:none;border-radius:var(--radius-md);background:transparent;font-size:var(--font-size-xs);font-family:var(--font-family);color:var(--color-text-tertiary);cursor:pointer;transition:color var(--transition-fast);white-space:nowrap}.filter-clear-all:hover{color:var(--color-accent)}.filter-clear-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);font-size:9px;font-weight:var(--font-weight-bold);color:var(--color-text-secondary)}.filter-views{padding:var(--space-1)}.filter-views-empty{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.filter-views-list{display:flex;flex-direction:column;gap:1px;max-height:200px;overflow-y:auto}.filter-views-item{display:flex;align-items:center;gap:var(--space-1)}.filter-views-load{flex:1;padding:6px var(--space-2);border:none;border-radius:6px;background:none;font-size:var(--font-size-sm);font-family:var(--font-family);color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.filter-views-load:hover{background:var(--color-bg-secondary)}.filter-views-delete{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-tertiary);cursor:pointer;flex-shrink:0;transition:color var(--transition-fast)}.filter-views-delete:hover{color:var(--color-error)}.filter-views-save{display:flex;gap:var(--space-1);padding:var(--space-1) 0 0}.filter-views-input{flex:1;padding:5px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);font-size:var(--font-size-xs);font-family:var(--font-family);color:var(--color-text)}.filter-views-input:focus{outline:none;border-color:var(--color-accent)}.filter-views-input::placeholder{color:var(--color-text-tertiary)}.filter-views-save-btn{padding:5px 10px;border:none;border-radius:6px;background:var(--color-accent);color:var(--color-text-on-brand);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family);cursor:pointer;transition:opacity var(--transition-fast);white-space:nowrap}.filter-views-save-btn:disabled{opacity:.4;cursor:default}.filter-views-save-btn:not(:disabled):hover{opacity:.9}.filter-view-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.filter-view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:28px;border:none;background:var(--color-bg-elevated);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.filter-view-btn:not(:last-child){border-right:1px solid var(--color-border)}.filter-view-btn:hover{color:var(--color-text);background:var(--color-bg-secondary)}.filter-view-btn--active{color:var(--color-accent);background:var(--color-accent-soft)}.filter-view-btn--active:hover{background:var(--color-accent-soft)}.filter-create-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border:none;border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-family:var(--font-family);cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast);white-space:nowrap}.filter-create-btn:hover{opacity:.92;box-shadow:var(--shadow-md)}[data-theme=dark] .filter-chip--active,[data-theme=dark] .filter-chip--active:hover{background:var(--color-accent-soft)}.filter-min-rice{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.filter-min-rice-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.filter-min-rice-clear{align-self:flex-end;padding:2px 8px;border:none;background:transparent;color:var(--color-accent);font-size:var(--font-size-xs);cursor:pointer}.filter-min-rice-clear:hover{text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;animation:fade-in .12s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-top:1px solid hsl(0 0% 100% / .15);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl),0 0 0 1px #0003;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:scale-in .2s cubic-bezier(.34,1.56,.64,1)}@keyframes scale-in{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-close{font-size:20px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-tertiary)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.modal-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-1)}.field-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.field-input,.field-textarea,.field-select{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);font-size:var(--font-size-sm);color:var(--color-text);box-shadow:inset 0 2px 4px #0000000d;transition:border-color var(--transition-fast),box-shadow var(--transition-bounce)}.field-input:focus,.field-textarea:focus,.field-select:focus{border-color:var(--color-accent);outline:none;box-shadow:inset 0 2px 4px #0000000d,var(--shadow-glow)}.field-textarea{resize:vertical;min-height:72px}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2)}.btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-bounce);cursor:pointer}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--color-accent);color:var(--color-accent-text);border:none;box-shadow:0 4px 12px var(--color-accent-soft)}.btn--primary:hover:not(:disabled){box-shadow:0 8px 24px var(--color-accent-soft);transform:translateY(-1px)}.btn--ghost{color:var(--color-text-secondary);background:transparent;border:1px solid transparent}.btn--ghost:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text);border-color:var(--color-border)}.detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;justify-content:flex-end;z-index:100;animation:fade-in .12s ease;transition:background var(--transition-normal)}.detail-overlay--fullscreen{background:var(--color-bg)}.detail-panel{width:100%;max-width:680px;height:100vh;background:var(--color-bg-elevated);border-left:1px solid var(--color-border);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;animation:slide-in .2s ease;transition:max-width var(--transition-normal)}.detail-panel--fullscreen{max-width:100vw;border-left:none;box-shadow:none}.detail-panel--fullscreen .detail-body{padding-left:0;padding-right:0}.detail-panel--fullscreen .detail-header,.detail-panel--fullscreen .detail-body>*{max-width:1100px;margin-left:auto;margin-right:auto;width:100%}.detail-panel--fullscreen .detail-header{padding-left:var(--space-6);padding-right:var(--space-6)}@keyframes slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);gap:var(--space-3)}.detail-header-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.detail-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.detail-icon-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.detail-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.detail-body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.detail-empty{font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic}.detail-divider{border:none;border-top:1px solid var(--color-border);margin:var(--space-1) 0}.props-block{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--radius-md)}.prop-row{display:grid;grid-template-columns:140px 1fr;min-height:36px;align-items:start;border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.prop-row:last-child{border-bottom:none}.prop-row:hover{background:var(--color-bg-secondary)}.prop-label{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;-webkit-user-select:none;user-select:none;line-height:20px}.prop-value{padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);min-width:0;overflow-wrap:break-word;line-height:20px}.prop-select{border:none;background:transparent;box-shadow:none;padding:var(--space-1) var(--space-2);font-size:var(--font-size-sm);cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text)}.prop-select:hover{background:var(--color-bg-tertiary)}.prop-select:focus{outline:none;box-shadow:0 0 0 2px var(--color-accent)}.prop-tags{display:flex;gap:var(--space-1);flex-wrap:wrap}.prop-feature{color:var(--color-accent);font-weight:var(--font-weight-medium)}.prop-text{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.prop-text--clamped{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.prop-expandable{cursor:pointer;display:block}.prop-expand-hint{display:inline;font-size:var(--font-size-xs);color:var(--color-accent);margin-left:var(--space-1)}.prop-date{font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.prop-id{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px var(--space-1);border-radius:var(--radius-sm)}.markdown-body{font-size:var(--font-size-sm);color:var(--color-text);line-height:var(--line-height-relaxed);word-break:break-word}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-top:var(--space-6);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.markdown-body h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-top:var(--space-5);margin-bottom:var(--space-2)}.markdown-body h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-top:var(--space-4);margin-bottom:var(--space-2)}.markdown-body h4,.markdown-body h5,.markdown-body h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-top:var(--space-3);margin-bottom:var(--space-1)}.markdown-body p{margin-bottom:var(--space-3)}.markdown-body ul,.markdown-body ol{padding-left:var(--space-5);margin-bottom:var(--space-3)}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body li{margin-bottom:var(--space-1);line-height:var(--line-height-relaxed)}.markdown-body li>ul,.markdown-body li>ol{margin-top:var(--space-1);margin-bottom:0}.markdown-body li input[type=checkbox]{margin-right:var(--space-2);accent-color:var(--color-accent)}.markdown-body code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-tertiary);padding:1px var(--space-1);border-radius:var(--radius-sm)}.markdown-body pre{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);overflow-x:auto;margin-bottom:var(--space-3);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed)}.markdown-body pre code{background:none;padding:0;font-size:inherit}.markdown-body table{width:100%;border-collapse:collapse;margin-bottom:var(--space-3);font-size:var(--font-size-xs)}.markdown-body th,.markdown-body td{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);text-align:left}.markdown-body th{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.markdown-body tr:hover{background:var(--color-bg-secondary)}.markdown-body blockquote{border-left:3px solid var(--color-accent);padding-left:var(--space-4);margin:var(--space-3) 0;color:var(--color-text-secondary);font-style:italic}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin:var(--space-4) 0}.markdown-body a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.markdown-body a:hover{color:var(--color-accent)}.markdown-body strong{font-weight:var(--font-weight-semibold)}.markdown-body img{max-width:100%;border-radius:var(--radius-md)}.changelog-section{display:flex;flex-direction:column;gap:var(--space-3)}.changelog-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.changelog-add{display:flex;gap:var(--space-2)}.changelog-add .field-input{flex:1}.markdown-body .mermaid-rendered{position:relative;margin:var(--space-3) 0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);overflow:hidden;height:70vh;max-height:720px;min-height:420px;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.markdown-body .mermaid-rendered:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.markdown-body .mermaid-stage{width:100%;height:100%;cursor:grab;overflow:hidden}.markdown-body .mermaid-stage:active{cursor:grabbing}.markdown-body .mermaid-stage>svg{width:100%;height:100%;display:block}.markdown-body .mermaid-controls{position:absolute;bottom:12px;right:12px;display:flex;gap:4px;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:4px;z-index:2}.markdown-body .mermaid-controls button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text);font-size:16px;font-weight:var(--font-weight-semibold);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition-fast),color var(--transition-fast)}.markdown-body .mermaid-controls button:hover{background:var(--color-accent-soft);color:var(--color-accent)}.markdown-body .mermaid-error{color:var(--color-error);background:var(--color-error-subtle);border:1px solid var(--color-error);padding:var(--space-3);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:pre-wrap;word-break:break-word}.markdown-body .mermaid-rendered svg{max-width:100%;height:auto;border-radius:8px;font-size:.85em;white-space:pre-wrap}.rice-block{width:100%;display:flex;flex-direction:column}.rice-header{display:inline-flex;align-items:center;gap:var(--space-2);padding:2px 6px;border:none;background:transparent;cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm)}.rice-header:hover{background:var(--color-bg-tertiary)}.rice-header-label{font-weight:var(--font-weight-medium)}.rice-score-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:22px;padding:0 8px;border-radius:11px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.rice-score-badge.rice-score--low{background:#d9262626;color:#c32222;border-color:#d926264d}.rice-score-badge.rice-score--mid{background:#f2a60d26;color:#ae6e13;border-color:#f2a60d4d}.rice-score-badge.rice-score--high{background:#2eb85c2e;color:#1b7e3c;border-color:#2eb85c59}[data-theme=dark] .rice-score-badge.rice-score--low{color:#ef8f8f}[data-theme=dark] .rice-score-badge.rice-score--mid{color:#f7c96e}[data-theme=dark] .rice-score-badge.rice-score--high{color:#85e0a3}.rice-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.rice-field{display:flex;flex-direction:column;gap:2px}.rice-field-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.rice-input{width:100%;font-variant-numeric:tabular-nums}.rice-clear-btn{grid-column:1 / -1;justify-self:end;padding:4px 10px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.rice-clear-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.eisenhower{display:flex;flex-direction:column;flex:1;gap:var(--space-2);overflow:auto}.eisenhower-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:var(--space-3);flex:1;min-height:400px}.eisenhower-quadrant{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow-y:auto;transition:background var(--transition-fast),box-shadow var(--transition-fast),outline-color var(--transition-fast);outline:2px solid transparent;outline-offset:-2px}.eisenhower--dragging .eisenhower-quadrant{outline-color:var(--color-border);outline-style:dashed}.eisenhower-quadrant--dragover{background:var(--color-accent-soft);outline-color:var(--color-accent);outline-style:solid}.eisenhower-quadrant--source{opacity:.85}.eisenhower--dragging .eisenhower-quadrant--noop{background:var(--color-bg-tertiary);outline-color:var(--color-text-tertiary)}.eisenhower-quadrant-empty{display:flex;align-items:center;justify-content:center;flex:1;min-height:48px;border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.eisenhower-quadrant-preview{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);margin-bottom:var(--space-1);font-variant-numeric:tabular-nums}.eisenhower-quadrant--noop .eisenhower-quadrant-preview{color:var(--color-text-tertiary)}.eisenhower-undo{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg-elevated);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);font-size:var(--font-size-sm)}.eisenhower-undo-text{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eisenhower-undo-text strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.eisenhower-undo-btn{margin-left:auto;flex-shrink:0;padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast)}.eisenhower-undo-btn:hover{background:var(--color-accent);color:var(--color-accent-text)}.eisenhower-undo-dismiss{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-tertiary);font-size:var(--font-size-base);line-height:1;cursor:pointer;border-radius:var(--radius-full)}.eisenhower-undo-dismiss:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.eisenhower-quadrant--do{border-top:3px solid var(--color-quadrant-do)}.eisenhower-quadrant--schedule{border-top:3px solid var(--color-quadrant-schedule)}.eisenhower-quadrant--delegate{border-top:3px solid var(--color-quadrant-delegate)}.eisenhower-quadrant--eliminate{border-top:3px solid var(--color-quadrant-eliminate)}.eisenhower-quadrant-header{display:flex;align-items:center;gap:var(--space-2)}.eisenhower-quadrant-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.eisenhower-quadrant-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.eisenhower-quadrant-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:0 var(--space-2);border-radius:var(--radius-full);min-width:20px;text-align:center}.eisenhower-quadrant-subtitle{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-1)}.eisenhower-quadrant-cards{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.eisenhower-x-label{display:flex;justify-content:space-around;padding:var(--space-1) 0 0}.eisenhower-axis-hi,.eisenhower-axis-lo{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.rice-scatter{position:relative;width:100%;display:flex;flex-direction:column;gap:var(--space-3)}.rice-scatter-svg{width:100%;height:auto;display:block;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.rice-axis{stroke:var(--color-border);stroke-width:1}.rice-tick{font-size:11px;fill:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.rice-axis-label{font-size:12px;fill:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.rice-quad{fill:var(--color-bg-secondary);fill-opacity:.4}.rice-quad--quick-wins{fill:#2eb85c;fill-opacity:.06}.rice-quad--big-bets{fill:#306ee8;fill-opacity:.06}.rice-quad--fill-ins{fill:#f4af25;fill-opacity:.06}.rice-quad--time-sinks{fill:#dd3c3c;fill-opacity:.05}.rice-quad-divider{stroke:var(--color-border);stroke-width:1;stroke-dasharray:3 4}.rice-quad-label{font-size:10px;font-weight:var(--font-weight-semibold);fill:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;pointer-events:none}.rice-dot{cursor:pointer;transition:stroke-width var(--transition-fast),fill-opacity var(--transition-fast);outline:none}.rice-dot:hover{fill-opacity:1!important}.rice-dot:focus-visible{stroke:var(--color-accent);stroke-width:2.5}.rice-scatter-sr-list{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.rice-unscored{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated)}.rice-unscored-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3);background:transparent;border:none;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.rice-unscored-toggle:hover{background:var(--color-bg-tertiary)}.rice-unscored-cards{display:flex;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--color-border);overflow-x:auto}.rice-unscored-cards>*{flex:0 0 220px}.rice-chevron{transition:transform var(--transition-fast);color:var(--color-text-tertiary)}.rice-chevron--open{transform:rotate(180deg)}.version-manager-modal{max-width:680px}.version-manager-body{display:flex;flex-direction:column;gap:var(--space-3)}.version-stats{display:flex;gap:var(--space-4);padding:var(--space-3);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.version-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.version-stat-count{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.version-stat-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.version-manager-loading,.version-manager-empty{font-size:var(--font-size-sm);color:var(--color-text-tertiary);text-align:center;padding:var(--space-3)}.version-section{display:flex;flex-direction:column;gap:var(--space-2)}.version-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin:0}.version-item{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2)}.version-item--released{opacity:.7}.version-item-info{display:flex;align-items:center;gap:var(--space-2)}.version-item-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.version-item-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:auto}.version-item-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.version-item-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.version-status-badge{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;padding:1px var(--space-2);border-radius:var(--radius-full)}.version-status-badge--planning{background:var(--color-warning-subtle, hsl(45 80% 92%));color:var(--color-warning, hsl(35 80% 45%))}.version-status-badge--released{background:var(--color-success-subtle);color:var(--color-success)}.version-item-actions{display:flex;justify-content:flex-end}.version-release-btn{font-size:var(--font-size-xs)!important;padding:var(--space-1) var(--space-3)!important}.version-create-form{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.kanban-board{height:100%;display:flex;flex-direction:column}.kanban-columns{display:flex;gap:var(--space-4);flex:1;overflow-x:auto;padding-bottom:var(--space-4)}.loading{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.task-list{display:flex;flex-direction:column;gap:var(--space-2)}.task-list>*{width:100%}.sleep-page{height:100%}.sleep-overview{display:flex;gap:var(--space-6);align-items:flex-start;margin-bottom:var(--space-8)}.sleep-gauge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:160px;height:160px;border-radius:var(--radius-xl);flex-shrink:0;box-shadow:var(--shadow-md);transition:transform var(--transition-bounce),box-shadow var(--transition-fast)}.sleep-gauge:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-xl)}.sleep-gauge--alert{background:var(--color-success-subtle);color:var(--color-success)}.sleep-gauge--drowsy{background:var(--color-warning-subtle);color:var(--color-warning)}.sleep-gauge--sleepy{background:var(--color-accent-soft);color:var(--color-accent)}.sleep-gauge--must_sleep{background:var(--color-error-subtle);color:var(--color-error)}.sleep-gauge-number{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:1}.sleep-gauge-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);margin-top:var(--space-1)}.sleep-details{display:flex;flex-direction:column;gap:var(--space-4);flex:1;min-width:0;padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.sleep-detail{display:flex;flex-direction:column;gap:var(--space-1)}.sleep-detail-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em}.sleep-detail-value{font-size:var(--font-size-sm);color:var(--color-text)}.sleep-detail-value--summary{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.sleep-section{margin-bottom:var(--space-8)}.sleep-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4)}.session-list{display:flex;flex-direction:column;gap:var(--space-2)}.session-item{padding:var(--space-3);background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);transition:all var(--transition-bounce)}.session-item:hover{transform:translate(4px);box-shadow:var(--shadow-md);border-color:var(--color-accent)}.session-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-1)}.session-time{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.session-score{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-warning)}.session-changes{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.session-message{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.changelog-group{margin-bottom:var(--space-5)}.changelog-group:last-child{margin-bottom:0}.changelog-group-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.changelog-group-title--day{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--color-text-secondary)}.changelog-group--pending{border-left:2px solid var(--color-accent);padding-left:var(--space-3)}.changelog-group--pending .changelog-group-title{color:var(--color-accent)}.changelog-list{display:flex;flex-direction:column;gap:var(--space-2)}.changelog-item{padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.changelog-item:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.changelog-meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.changelog-scope{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.changelog-breaking{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;color:var(--color-error);background:var(--color-error-subtle);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full)}.changelog-summary{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);line-height:var(--line-height-normal)}.changelog-desc{margin-top:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.changelog-more{margin-top:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.sql-preview{position:relative;padding:var(--space-4);overflow:auto;flex:1;background-image:radial-gradient(circle,var(--color-border) 1px,transparent 1px);background-size:24px 24px;border-radius:var(--radius-md);border:1px solid var(--color-border)}.sql-preview-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.sql-preview-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.sql-preview-line{fill:none;stroke:var(--color-aether-blue);stroke-width:2;opacity:.6}.sql-preview-line-label{font-size:10px;font-family:var(--font-mono);font-weight:600;fill:var(--color-text-secondary)}.sql-preview-line-label-bg{fill:var(--color-bg);rx:3;ry:3}.sql-preview-arrowhead{fill:var(--color-aether-blue);opacity:.6}.sql-preview-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6)}.entity-card{background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-md);overflow:hidden;transition:box-shadow var(--transition-fast)}.entity-card:hover{box-shadow:var(--shadow-lg)}.entity-card-header{padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.entity-card-title-group{display:flex;align-items:center;gap:var(--space-2);min-width:0}.entity-card-category-icon{font-size:10px;font-family:var(--font-mono);color:var(--color-text-tertiary);flex-shrink:0}.entity-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card-badge{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:var(--radius-sm);flex-shrink:0}.entity-card-badge[data-storage=file]{background:#2a6df41f;color:#2a6df4}.entity-card-badge[data-storage=json]{background:#e69b191f;color:#e69b19}.entity-card-badge[data-storage=table]{background:#1eae531f;color:#1eae53}.entity-card-path{padding:var(--space-1) var(--space-4);font-size:10px;font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-card-managed{padding:var(--space-1) var(--space-4);font-size:10px;color:var(--color-text-tertiary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.entity-fields{padding:var(--space-2) 0}.entity-field{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);font-size:var(--font-size-xs);font-family:var(--font-mono);line-height:1.6;transition:background var(--transition-fast)}.entity-field:hover{background:var(--color-bg-secondary)}.entity-field--expandable{cursor:pointer}.entity-field--expandable:hover{background:#741ba70f}.entity-field--nested{padding-left:calc(var(--space-4) + 18px + var(--space-2));opacity:.85;border-left:2px solid hsl(278 72% 38% / .15);margin-left:var(--space-4)}.entity-field-name--nested{color:var(--color-text-secondary)!important;font-weight:var(--font-weight-normal)!important}.entity-field-icon{width:18px;flex-shrink:0;text-align:center;font-size:9px;font-weight:var(--font-weight-bold);opacity:.8}.entity-field-icon--key{color:#e69b19}.entity-field-icon--ref{color:var(--color-accent)}.entity-field-name{min-width:90px;color:var(--color-text);font-weight:var(--font-weight-medium)}.entity-field-type{color:var(--color-text-tertiary);flex-shrink:0}.entity-field-type[data-type=enum]{color:var(--color-aether-blue)}.entity-field-type[data-type=array]{color:#2a6df4}.entity-field-type[data-type=boolean]{color:#1eae53}.entity-field-type[data-type=number]{color:#ee7c2b}.entity-field-type[data-type=json]{color:#a23adf}.entity-field-type[data-type=nullable]{color:var(--color-text-tertiary);font-style:italic}.entity-field-type[data-type=date]{color:#7a47d1}.entity-field-toggle{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.entity-field-toggle-arrow{font-size:8px;color:var(--color-text-tertiary);transition:transform .15s ease;display:inline-block}.entity-field-toggle-arrow--open{transform:rotate(90deg)}.entity-field-toggle-count{font-size:9px;font-family:var(--font-mono);color:var(--color-text-tertiary);background:#741ba71a;padding:0 5px;border-radius:3px;line-height:1.6}.entity-field-enum-group{display:flex;flex-wrap:wrap;gap:3px}.entity-field-enum-pill{padding:0 5px;border-radius:3px;font-size:9px;font-family:var(--font-mono);background:#741ba71a;color:var(--color-aether-blue);line-height:1.6;white-space:nowrap}.entity-field-desc{color:var(--color-text-tertiary);font-family:var(--font-family);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.entity-card-notes{padding:var(--space-2) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.entity-card-note{display:block;font-size:10px;color:var(--color-text-tertiary);line-height:1.5;font-style:italic}.sql-preview-legend{position:relative;z-index:1;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border)}.sql-preview-legend-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.sql-preview-legend-items{display:flex;flex-wrap:wrap;gap:var(--space-3)}.sql-preview-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.sql-preview-legend-line{width:24px;height:2px;background:var(--color-aether-blue);opacity:.6;border-radius:1px}.sql-preview-legend-cardinality{font-size:10px;font-family:var(--font-mono);font-weight:var(--font-weight-semibold);color:var(--color-accent);padding:1px 4px;background:var(--color-accent-soft);border-radius:3px}.json-preview{flex:1;overflow:auto;padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg)}.json-preview-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.json-preview-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.json-preview-stats{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.json-preview-total{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-right:var(--space-2)}.json-stat-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-secondary);border:1px solid var(--color-border);background:transparent;cursor:pointer;transition:all var(--transition-fast)}.json-stat-chip:hover{background:var(--color-bg-tertiary)}.json-stat-chip--active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-text)}.json-type-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-family:var(--font-mono);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;background:#8080801a;color:var(--color-text-secondary)}.type--feat{background:#1eae531f;color:#1eae53}.type--fix{background:#ee7c2b1f;color:#ee7c2b}.type--refactor{background:#2a6df41f;color:#2a6df4}.type--chore{background:#8c8c8c1f;color:var(--color-text-tertiary)}.type--docs{background:#7a47d11f;color:#7a47d1}.type--test{background:#15a4c11f;color:#15a4c1}.type--perf{background:#e69b191f;color:#e69b19}.json-breaking-badge{display:inline-block;padding:1px 5px;border-radius:3px;font-size:9px;font-family:var(--font-mono);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;background:#db242426;color:#db2424;flex-shrink:0}.json-timeline{display:flex;flex-direction:column;gap:var(--space-4)}.json-date-group{position:relative}.json-date-marker{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.json-date-dot{width:8px;height:8px;border-radius:50%;background:var(--color-accent);flex-shrink:0}.json-date-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-family:var(--font-mono);color:var(--color-text)}.json-date-count{font-size:10px;font-family:var(--font-mono);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:0 6px;border-radius:var(--radius-full)}.json-date-entries{display:flex;flex-direction:column;gap:var(--space-1);margin-left:3px;padding-left:var(--space-4);border-left:2px solid var(--color-border)}.json-entry{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.json-entry:hover{background:var(--color-bg-tertiary)}.json-entry--expanded{background:var(--color-bg-secondary)}.json-entry-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:2px}.json-entry-scope{font-size:11px;font-family:var(--font-mono);color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.json-entry-desc{font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.json-entry-desc--clamped{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.json-releases{display:flex;flex-direction:column;gap:var(--space-3)}.json-release{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow var(--transition-fast)}.json-release:hover{box-shadow:var(--shadow-md)}.json-release-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-accent-soft);cursor:pointer;transition:background var(--transition-fast)}.json-release-header:hover{filter:brightness(.97)}.json-release-version{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);font-family:var(--font-mono);color:var(--color-text)}.json-release-date{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-tertiary)}.json-release-meta{font-size:var(--font-size-xs);color:var(--color-text-tertiary);margin-left:auto}.json-release-chevron{font-size:10px;color:var(--color-text-tertiary);transition:transform .15s ease;display:inline-block;flex-shrink:0}.json-release-chevron--open{transform:rotate(90deg)}.json-release-body{padding:var(--space-4)}.json-release-summary{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-4)}.json-release-section{margin-bottom:var(--space-4)}.json-release-section:last-child{margin-bottom:0}.json-release-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.json-release-ids{display:flex;flex-wrap:wrap;gap:var(--space-1)}.json-id-chip{padding:2px 8px;border-radius:var(--radius-sm);font-size:10px;font-family:var(--font-mono);font-weight:var(--font-weight-medium)}.json-id-chip--feature{background:#741ba71a;color:var(--color-aether-blue)}.json-id-chip--task{background:#2a6df41a;color:#2a6df4}.json-release-changelog{display:flex;flex-direction:column;gap:var(--space-1)}.json-release-cl-entry{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-xs);transition:background var(--transition-fast)}.json-release-cl-entry:hover{background:var(--color-bg-tertiary)}.json-release-cl-scope{font-family:var(--font-mono);color:var(--color-text-tertiary);flex-shrink:0;font-size:10px;padding-top:1px}.json-release-cl-desc{color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.json-generic-list{display:flex;flex-direction:column;gap:var(--space-2)}.json-generic-item{font-size:var(--font-size-xs);font-family:var(--font-mono);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-word;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary)}.core-page{height:100%;display:flex;flex-direction:column}.core-layout{display:flex;gap:var(--space-4);flex:1;min-height:0}.core-list{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-1)}.core-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);text-align:left;transition:all var(--transition-bounce)}.core-list-item:hover{background:var(--color-bg-tertiary);transform:translate(4px)}.core-list-item--active{background:var(--color-accent-soft);box-shadow:inset 4px 0 0 0 var(--color-accent)}.core-list-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.core-list-type{font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-medium);padding:2px 8px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary);border:1px solid var(--color-border);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.core-detail{flex:1;min-width:0}.core-empty{display:flex;align-items:flex-start;justify-content:center;height:auto;padding-top:var(--space-6);color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.core-viewer,.core-editor{display:flex;flex-direction:column;height:100%}.core-viewer-header,.core-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.core-viewer-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.core-viewer-actions{display:flex;align-items:center;gap:var(--space-3)}.core-tabs{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.core-tab{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);border-right:1px solid var(--color-border)}.core-tab:last-child{border-right:none}.core-tab:hover{background:var(--color-bg-tertiary)}.core-tab--active{background:var(--color-accent-soft);color:var(--color-text);font-weight:var(--font-weight-semibold)}.core-editor-actions{display:flex;gap:var(--space-2)}.core-viewer-content{font-size:var(--font-size-sm);font-family:var(--font-mono);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-word;background:var(--color-bg-elevated);padding:var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow-y:auto;flex:1}.core-editor-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);flex:1;min-height:0}.core-editor-textarea{font-size:var(--font-size-sm);font-family:var(--font-mono);line-height:var(--line-height-relaxed);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);box-shadow:inset 0 2px 4px #0000000d;resize:none;overflow-y:auto;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.core-editor-textarea:focus{border-color:var(--color-accent);outline:none}.core-editor-preview{font-size:var(--font-size-sm);font-family:var(--font-mono);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-word;background:var(--color-bg-elevated);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow-y:auto}@media(max-width:1024px){.core-layout{flex-direction:column}.core-list{width:100%}}.excalidraw-preview{width:100%;height:100%;min-height:420px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);overflow:hidden;position:relative}.excalidraw-stage{width:100%;height:100%;min-height:420px;cursor:grab;overflow:hidden}.excalidraw-stage:active{cursor:grabbing}.excalidraw-stage svg{display:block}.excalidraw-error{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.knowledge-page{height:100%;display:flex;flex-direction:column}.knowledge-search{width:100%;max-width:400px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:var(--font-size-sm);margin-bottom:var(--space-4);transition:border-color var(--transition-fast)}.knowledge-search:focus{border-color:var(--color-accent);outline:none}.knowledge-layout{display:flex;gap:var(--space-4);flex:1;min-height:0}.knowledge-list{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.knowledge-folder{display:flex;flex-direction:column;gap:var(--space-2)}.knowledge-folder-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;transition:border-color var(--transition-fast)}.knowledge-folder-header:hover{border-color:var(--color-border-hover)}.knowledge-folder-chevron{width:12px;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.knowledge-folder-name{flex:1;text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.knowledge-folder-count{font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);border-radius:var(--radius-sm);padding:0 var(--space-2)}.knowledge-folder-items{display:flex;flex-direction:column;gap:var(--space-2);margin-left:var(--space-2);padding-left:var(--space-3);border-left:1px solid var(--color-border)}.knowledge-card{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;background:var(--color-bg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.knowledge-card:hover{border-color:var(--color-border-hover)}.knowledge-card--active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.knowledge-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-1)}.knowledge-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.pin-btn{font-size:var(--font-size-sm);color:var(--color-text-tertiary);padding:2px;border-radius:var(--radius-sm);transition:color var(--transition-fast)}.pin-btn:hover,.pin-btn--active{color:var(--color-accent)}.knowledge-card-desc{font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:var(--line-height-normal);margin-bottom:var(--space-2)}.knowledge-card-tags{display:flex;gap:var(--space-1);flex-wrap:wrap}.knowledge-detail{flex:1;min-width:0}@media(max-width:1024px){.knowledge-layout{flex-direction:column}.knowledge-list{width:100%}}.features-page{height:100%;display:flex;flex-direction:column}.features-search{width:100%;max-width:400px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:var(--font-size-sm);margin-bottom:var(--space-4);transition:border-color var(--transition-fast)}.features-search:focus{border-color:var(--color-accent);outline:none}.features-layout{display:flex;gap:var(--space-4);flex:1;min-height:0}.features-list{width:280px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.feature-card{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);text-align:left;background:var(--color-bg-elevated);transition:all var(--transition-bounce)}.feature-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-lg);transform:translate(4px)}.feature-card--active{border-color:var(--color-accent);box-shadow:inset 4px 0 0 0 var(--color-accent),var(--shadow-md);background:var(--color-accent-soft)}.feature-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.feature-card-badges{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.feature-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.feature-status{font-size:10px;padding:2px 8px;border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.feature-status--active,.feature-status--planning{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.feature-status--in_review{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.feature-status--in_progress{background:#ffedd5;color:#c2410c;border-color:#fed7aa}.feature-status--shipped,.feature-status--archived{background:var(--color-bg-tertiary);color:var(--color-text-tertiary);border-color:var(--color-border)}[data-theme=dark] .feature-status--active,[data-theme=dark] .feature-status--planning{background:#4ade8024;color:#86efac;border-color:#4ade8047}[data-theme=dark] .feature-status--in_review{background:#60a5fa29;color:#93c5fd;border-color:#60a5fa47}[data-theme=dark] .feature-status--in_progress{background:#fb923c29;color:#fdba74;border-color:#fb923c47}.features-detail{flex:1;min-width:0;overflow-y:auto}.feature-viewer{display:flex;flex-direction:column;gap:var(--space-4)}.feature-meta{display:flex;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.feature-tasks{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.feature-section{border-top:1px solid var(--color-border);padding-top:var(--space-4)}.feature-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.feature-section-content{font-size:var(--font-size-sm);font-family:var(--font-mono);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-word;color:var(--color-text-secondary)}.feature-freshness{font-size:10px;padding:2px 8px;border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.feature-freshness--stale{background:#ffedd5;color:#c2410c;border-color:#fed7aa}[data-theme=dark] .feature-freshness--stale{background:#fb923c29;color:#fdba74;border-color:#fb923c47}@media(max-width:1024px){.features-layout{flex-direction:column}.features-list{width:100%}}.brain-page{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--color-bg);position:relative}.brain-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-bg);z-index:2;flex-shrink:0}.brain-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:var(--space-2)}.brain-title-mark{font-size:var(--font-size-xl);background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.brain-stats{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;margin-left:var(--space-2)}.brain-search{flex:1;max-width:280px;padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);transition:border-color var(--transition-fast)}.brain-search:focus{outline:none;border-color:var(--color-accent)}.brain-header-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.brain-btn{padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;gap:var(--space-1)}.brain-btn:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-hover);color:var(--color-text)}.brain-btn--active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.brain-canvas-wrap{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--color-bg)}[data-theme=dark] .brain-canvas-wrap{background:#151518}.brain-canvas-wrap canvas{display:block}.brain-empty,.brain-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.brain-settings{position:absolute;top:var(--space-3);left:var(--space-3);bottom:var(--space-3);width:280px;background:var(--brain-panel-bg);border:1px solid var(--brain-panel-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);display:flex;flex-direction:column;z-index:5;box-shadow:var(--shadow-lg);--brain-panel-bg: hsl(0 0% 100% / .92);--brain-panel-border: var(--color-border);--brain-panel-divider: var(--color-border);--brain-panel-hover: hsl(0 0% 0% / .04);--brain-panel-hint: var(--color-text-tertiary);--brain-panel-input-bg: var(--color-bg-secondary);--brain-panel-input-border: var(--color-border);--brain-panel-input-text: var(--color-text);--brain-panel-label: var(--color-text-secondary);--brain-panel-toggle-off: hsl(0 0% 0% / .18);--brain-panel-code-bg: hsl(0 0% 0% / .06)}[data-theme=dark] .brain-settings{--brain-panel-bg: rgba(22, 22, 26, .92);--brain-panel-border: rgba(255, 255, 255, .08);--brain-panel-divider: rgba(255, 255, 255, .06);--brain-panel-hover: rgba(255, 255, 255, .04);--brain-panel-hint: rgba(235, 240, 250, .45);--brain-panel-input-bg: rgba(255, 255, 255, .05);--brain-panel-input-border: rgba(255, 255, 255, .1);--brain-panel-input-text: rgba(235, 240, 250, .95);--brain-panel-label: rgba(235, 240, 250, .6);--brain-panel-toggle-off: rgba(255, 255, 255, .15);--brain-panel-code-bg: rgba(255, 255, 255, .08)}.brain-settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--brain-panel-divider)}.brain-settings-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-secondary)}.brain-settings-header-actions{display:flex;gap:var(--space-1)}.brain-settings-mini-btn{width:24px;height:24px;background:transparent;border:1px solid var(--brain-panel-input-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:13px;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:all var(--transition-fast)}.brain-settings-mini-btn:hover{background:var(--brain-panel-hover);border-color:var(--color-border-hover);color:var(--color-text)}.brain-settings-body{flex:1;overflow-y:auto;padding:var(--space-2) 0}.brain-section{border-bottom:1px solid var(--brain-panel-divider)}.brain-section:last-child{border-bottom:none}.brain-section-header{width:100%;padding:var(--space-2) var(--space-4);background:transparent;border:none;color:var(--color-text);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:var(--space-2);cursor:pointer;-webkit-user-select:none;user-select:none}.brain-section-header:hover{background:var(--brain-panel-hover)}.brain-section-caret{color:var(--color-text-tertiary);font-size:11px;width:12px;display:inline-block}.brain-section-body{padding:var(--space-2) var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.brain-settings-label{font-size:var(--font-size-xs);color:var(--brain-panel-label);text-transform:uppercase;letter-spacing:.06em}.brain-settings-input{background:var(--brain-panel-input-bg);border:1px solid var(--brain-panel-input-border);border-radius:var(--radius-sm);color:var(--brain-panel-input-text);padding:var(--space-2);font-size:var(--font-size-sm);outline:none;transition:border-color var(--transition-fast);width:100%;font-family:inherit}.brain-settings-input:focus{border-color:var(--color-accent)}.brain-settings-hint{font-size:11px;color:var(--brain-panel-hint);margin:0;line-height:1.5}.brain-settings-hint code{font-family:var(--font-mono);font-size:10px;background:var(--brain-panel-code-bg);padding:1px 4px;border-radius:3px;color:var(--color-text-secondary)}.brain-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text);padding:2px 0;cursor:pointer}.brain-toggle{width:30px;height:16px;border-radius:999px;background:var(--brain-panel-toggle-off);position:relative;cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.brain-toggle--on{background:var(--color-accent)}.brain-toggle-knob{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform var(--transition-fast)}.brain-toggle--on .brain-toggle-knob{transform:translate(14px)}.brain-segmented-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text);padding:2px 0 6px}.brain-segmented-label{font-size:12px;color:var(--color-text-secondary)}.brain-segmented{display:inline-flex;background:var(--brain-panel-toggle-off);border-radius:6px;padding:2px;gap:2px}.brain-segmented-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--color-text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;padding:3px 10px;border-radius:4px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.brain-segmented-btn:hover{color:var(--color-text)}.brain-segmented-btn--active{background:var(--color-accent);color:#fff}.brain-segmented-btn--active:hover{color:#fff}.brain-slider-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text)}.brain-slider-row input[type=range]{flex:1;max-width:140px;accent-color:var(--color-accent)}.brain-slider-label-text{font-size:12px;color:var(--color-text-secondary)}.brain-groups-list{display:flex;flex-direction:column;gap:var(--space-1)}.brain-group-row{display:flex;align-items:center;gap:var(--space-2);position:relative}.brain-group-color{width:16px;height:16px;border-radius:50%;border:1px solid var(--brain-panel-input-border);cursor:pointer;flex-shrink:0;padding:0}.brain-group-input{flex:1;padding:var(--space-1) var(--space-2);font-size:12px}.brain-swatch-picker{position:absolute;left:0;top:calc(100% + 4px);display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);z-index:10;box-shadow:var(--shadow-md)}.brain-swatch{width:18px;height:18px;border-radius:50%;border:1px solid var(--color-border);cursor:pointer;padding:0}.brain-swatch:hover{transform:scale(1.15)}.brain-group-add{display:flex;gap:var(--space-1);margin-top:var(--space-2)}.brain-settings-btn{padding:var(--space-2) var(--space-3);background:var(--color-accent-soft);border:1px solid var(--color-accent);border-radius:var(--radius-sm);color:var(--color-accent);font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.brain-settings-btn:hover:not(:disabled){background:var(--color-accent);color:var(--color-accent-text);border-color:var(--color-accent)}.brain-settings-btn:disabled{opacity:.4;cursor:not-allowed}.brain-legend{position:absolute;bottom:var(--space-4);left:var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text);max-width:calc(100% - var(--space-8));box-shadow:var(--shadow-md);z-index:3}.brain-legend-item{display:inline-flex;align-items:center;gap:var(--space-1);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);transition:background-color var(--transition-fast);-webkit-user-select:none;user-select:none}.brain-legend-item:hover{background:var(--color-bg-tertiary)}.brain-legend-item--off{opacity:.4}.brain-legend-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.brain-drawer{position:absolute;top:0;right:0;bottom:0;width:380px;background:var(--color-bg-elevated);border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:4;transform:translate(100%);transition:transform var(--transition-normal)}.brain-drawer--open{transform:translate(0)}.brain-drawer-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.brain-drawer-close{position:absolute;top:var(--space-3);right:var(--space-3);background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;font-size:var(--font-size-lg);line-height:1;padding:var(--space-1);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.brain-drawer-close:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.brain-drawer-group-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--color-bg-secondary);border:1px solid var(--color-border);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);width:fit-content;text-transform:uppercase;letter-spacing:.05em}.brain-drawer-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin:0;color:var(--color-text);line-height:var(--line-height-tight)}.brain-drawer-id{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);word-break:break-all}.brain-drawer-body{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.brain-drawer-section{display:flex;flex-direction:column;gap:var(--space-2)}.brain-drawer-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin:0}.brain-meta-grid{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.brain-meta-key{color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.brain-meta-val{color:var(--color-text);word-break:break-word}.brain-tag-list{display:flex;flex-wrap:wrap;gap:var(--space-1)}.brain-tag{padding:2px var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.brain-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.brain-related-list{display:flex;flex-direction:column;gap:var(--space-1)}.brain-related-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text);text-align:left;transition:all var(--transition-fast)}.brain-related-item:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.brain-related-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.brain-related-kind{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.brain-drawer-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);display:flex;gap:var(--space-2)}.brain-drawer-footer .brain-btn{flex:1;justify-content:center;background:var(--color-accent);color:var(--color-accent-text);border-color:transparent;font-weight:var(--font-weight-semibold)}.brain-drawer-footer .brain-btn:hover{filter:brightness(1.08);color:var(--color-accent-text)}.council-page{height:100%;display:flex;flex-direction:column;min-height:0;gap:var(--space-3)}.council-page--detail{gap:0}.council-hall{display:flex;flex-direction:column;gap:var(--space-3);min-height:0;flex:1;overflow:hidden}.council-hall-bar{display:flex;align-items:center;gap:var(--space-2)}.council-hall-search{flex:1;display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);max-width:520px}.council-hall-search:focus-within{border-color:var(--color-accent)}.council-hall-search input{flex:1;border:0;outline:none;background:transparent;color:var(--color-text);font-size:var(--font-size-sm);min-width:0}.council-hall-filter{padding:8px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-xs)}.council-hall-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);white-space:nowrap}.council-hall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3);overflow-y:auto;padding:2px}.council-hall-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);text-align:left;cursor:pointer;color:var(--color-text);min-height:140px;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.council-hall-card:hover{border-color:var(--color-accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.council-hall-card-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.council-hall-status{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:var(--font-weight-semibold);padding:1px 6px;border-radius:var(--radius-full)}.council-hall-status-dot{width:6px;height:6px;border-radius:50%}.council-hall-status--complete{background:#1eae531f;color:#188c42}.council-hall-status--complete .council-hall-status-dot{background:#1eae53}.council-hall-status--running{background:#2a6df41f;color:#0b4bcb}.council-hall-status--running .council-hall-status-dot{background:#2a6df4}.council-hall-status--synth{background:var(--color-accent-soft);color:var(--color-accent)}.council-hall-status--synth .council-hall-status-dot{background:var(--color-accent)}.council-hall-status--pending{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.council-hall-status--pending .council-hall-status-dot{background:var(--color-text-tertiary)}.council-hall-rounds{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.council-hall-topic{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-text);margin:0;flex:1;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.council-hall-foot{display:flex;align-items:center;gap:var(--space-2);margin-top:auto}.council-hall-avatars{display:flex;align-items:center}.council-hall-avatar-wrap{display:inline-flex;margin-right:-6px;border:2px solid var(--color-bg);border-radius:50%;position:relative}.council-hall-avatar-more{margin-left:8px;font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.council-hall-date{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.council-hall-promoted{font-size:14px}.council-empty{padding:var(--space-6);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.council-detail{display:flex;flex-direction:column;gap:var(--space-2);flex:1;min-height:0}.council-detail-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding-bottom:var(--space-2)}.council-detail-back{display:inline-flex;align-items:center;gap:4px;padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.council-detail-back:hover{border-color:var(--color-accent);background:var(--color-bg-secondary)}.council-detail-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.council-detail-rounds{font-family:var(--font-mono);color:var(--color-text-secondary)}.council-detail-date,.council-session-dot{color:var(--color-text-tertiary)}.council-session-id{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary);background:var(--color-bg-tertiary);padding:1px 6px;border:0;border-radius:var(--radius-sm);cursor:pointer}.council-session-id:hover{color:var(--color-text)}.council-detail-body{flex:1;min-height:0;overflow:auto;padding-top:var(--space-3)}.council-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border)}.council-tab{padding:8px var(--space-4);border:0;border-bottom:2px solid transparent;background:transparent;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);cursor:pointer;margin-bottom:-1px;transition:color var(--transition-fast),border-color var(--transition-fast)}.council-tab:hover{color:var(--color-text)}.council-tab.is-active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.council-ov{display:flex;flex-direction:column;gap:var(--space-4);max-width:960px;margin:0 auto;padding:var(--space-3) var(--space-2) var(--space-6)}.council-ov-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);margin-bottom:6px}.council-ov-problem{padding:var(--space-3) var(--space-4);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-sm)}.council-ov-topic{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);line-height:1.4;color:var(--color-text);margin:0}.council-ov-promoted{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--font-size-xs);color:#ab7a07}.council-ov-verdict{padding:var(--space-4);border:1px solid var(--color-border);border-top:3px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-bg)}.council-ov-verdict-text{font-size:var(--font-size-base);line-height:1.6;color:var(--color-text)}.council-ov-verdict-text p{margin:0}.council-ov-verdict-text p+p{margin-top:var(--space-3)}.council-ov-verdict-text strong{font-weight:var(--font-weight-semibold);color:var(--color-text)}.council-ov-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}.council-ov-sections{display:flex;flex-direction:column;gap:var(--space-3)}.council-ov-card{padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.council-ov-card h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 var(--space-2)}.council-ov-card--why h3{color:var(--color-accent)}.council-ov-card--minority{border-color:#a73cdd4d;background:#a73cdd05}.council-ov-card--risks{border-color:#f59f0a4d;background:#f59f0a05}.council-ov-pending{padding:var(--space-4);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.council-ov-pending p{margin:0 0 var(--space-3)}.council-ov-appendix{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.council-ov-appendix summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase}.council-ov-appendix[open] summary{margin-bottom:var(--space-3)}.council-matrix{display:flex;flex-direction:column;gap:var(--space-2);height:100%}.council-matrix-bar{display:flex;align-items:center;gap:var(--space-3)}.council-matrix-search-input{flex:1;display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);max-width:480px}.council-matrix-search-input:focus-within{border-color:var(--color-accent)}.council-matrix-search-input input{flex:1;border:0;outline:none;background:transparent;color:var(--color-text);font-size:var(--font-size-sm);min-width:0}.council-matrix-search-icon{font-size:12px;color:var(--color-text-tertiary)}.council-matrix-search-clear{border:0;background:transparent;color:var(--color-text-tertiary);font-size:16px;cursor:pointer;padding:0 4px}.council-matrix-search-clear:hover{color:var(--color-text)}.council-matrix-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.council-matrix-scroll{flex:1;min-height:0;overflow:auto;padding:2px}.council-matrix-grid{display:grid;gap:6px;align-items:start}.council-matrix-corner{min-height:28px}.council-round-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:4px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.08em;text-transform:uppercase}.council-round-head.is-done{background:#1eae530f;border-color:#1eae5333;color:#16833e}.council-round-head.is-running{background:#2a6df414;border-color:#2a6df44d;color:#0a47c2}.council-matrix-row-head{position:sticky;left:0;z-index:1;display:flex;align-items:center;gap:6px;padding:6px var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:180px;height:fit-content}.council-matrix-row-id{display:flex;flex-direction:column;gap:2px;min-width:0}.council-matrix-row-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.council-cell{display:flex;flex-direction:column;gap:6px;padding:8px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);text-align:left;cursor:pointer;color:var(--color-text);min-height:56px;max-height:140px;overflow:hidden;position:relative;transition:border-color var(--transition-fast),opacity var(--transition-fast),max-height var(--transition-fast)}.council-cell:hover{border-color:var(--color-border-hover)}.council-cell.is-active{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent);max-height:none;background:var(--color-bg);grid-column:auto}.council-cell.is-dimmed{opacity:.25}.council-cell--empty{background:repeating-linear-gradient(135deg,transparent,transparent 6px,var(--color-bg-secondary) 6px,var(--color-bg-secondary) 12px);border-style:dashed;cursor:default;display:flex;align-items:center;justify-content:center;min-height:56px}.council-cell-empty-label{font-family:var(--font-mono);font-size:9px;color:var(--color-text-tertiary);letter-spacing:.08em}.council-cell-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.council-cell-meta{font-family:var(--font-mono);font-size:9px;color:var(--color-text-tertiary)}.council-cell-exec{font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text);margin:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.council-cell-full{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-size-xs);line-height:1.55}.council-cell-sub{display:flex;flex-direction:column;gap:4px}.council-cell-sub h5{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0}.council-cell-sub-body p{margin:0 0 4px}.council-cell-sub-body p:last-child{margin-bottom:0}.council-cell-sub-body ul,.council-cell-sub-body ol{margin:0 0 4px;padding-left:var(--space-4)}.council-cell-sub-body li{margin-bottom:2px}.council-cell-sub-body strong{font-weight:var(--font-weight-semibold)}.council-cell-sub-body code{font-family:var(--font-mono);font-size:.92em;background:var(--color-bg-tertiary);padding:0 3px;border-radius:2px}.council-cell-react-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.council-cell-react-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-secondary);font-size:10px;color:var(--color-text)}.council-chip-pos{display:inline-flex;align-items:center;padding:1px 5px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.05em;line-height:1.4;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.council-chip-pos--go{background:#1eae531a;color:#1a9948;border-color:#1eae534d}.council-chip-pos--defer{background:#f59f0a1a;color:#c47f08;border-color:#f59f0a4d}.council-chip-pos--hold{background:#ef43431a;color:#eb1414;border-color:#ef43434d}.council-chip-pos--pivot{background:#2a6df41a;color:#0c56e9;border-color:#2a6df44d}.council-transcript{display:flex;flex-direction:column;gap:var(--space-3);max-width:1000px;margin:0 auto;padding-bottom:var(--space-6)}.council-transcript-searchbar{display:flex;align-items:center;gap:var(--space-3)}.council-transcript-search{flex:1;display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);max-width:520px}.council-transcript-search input{flex:1;border:0;outline:none;background:transparent;color:var(--color-text);font-size:var(--font-size-sm);min-width:0}.council-transcript-count{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.council-transcript-body{display:flex;flex-direction:column;gap:var(--space-3)}.council-transcript-block{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.council-transcript-block.is-highlighted{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent)}.council-transcript-block-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;background:var(--color-bg-secondary)}.council-transcript-block-head:hover{background:var(--color-bg-tertiary)}.council-transcript-block-title{display:flex;align-items:center;gap:var(--space-2);min-width:0}.council-transcript-block-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0 0 2px}.council-transcript-block-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.council-transcript-chev{font-size:var(--font-size-lg);color:var(--color-text-tertiary);transition:transform var(--transition-fast)}.council-transcript-chev.is-open{transform:rotate(90deg)}.council-transcript-block-body{padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);border-top:1px solid var(--color-border)}.council-sheet-section{display:flex;flex-direction:column;gap:var(--space-2)}.council-sheet-section h4{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0}.council-sheet-prose{font-size:var(--font-size-xs);line-height:1.6;color:var(--color-text)}.council-sheet-prose p{margin:0 0 var(--space-2)}.council-sheet-prose p:last-child{margin-bottom:0}.council-sheet-prose ul,.council-sheet-prose ol{margin:0 0 var(--space-2);padding-left:var(--space-5)}.council-sheet-prose li{margin-bottom:2px}.council-sheet-prose code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-tertiary);padding:1px 4px;border-radius:3px}.council-sheet-prose strong{font-weight:var(--font-weight-semibold)}.council-sheet-prose mark{background:#fad33859;color:var(--color-text);padding:0 2px;border-radius:2px}.council-sheet-empty{padding:var(--space-3);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-style:italic}.council-round-panel{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:flex;flex-direction:column;gap:var(--space-2)}.council-round-panel-head{display:flex;justify-content:space-between;align-items:center}.council-round-panel-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.council-round-sub{display:flex;flex-direction:column;gap:4px}.council-round-sub-title{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary);margin:0}.council-crosscontext{margin:0;padding:var(--space-2) var(--space-3);border-left:3px solid var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-sm);font-size:var(--font-size-xs)}.council-crosscontext strong{display:block;margin-bottom:4px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent)}.council-research-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.council-research-list li{display:flex;justify-content:space-between;padding:4px var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);font-size:var(--font-size-xs)}.council-research-date{font-family:var(--font-mono);color:var(--color-text-tertiary)}.council-roundlog{text-align:left;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg)}.council-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:#fff;font-weight:var(--font-weight-bold);line-height:1;flex-shrink:0;box-shadow:inset 0 0 0 1px #fff3}.council-model-badge{display:inline-flex;align-items:center;padding:0 5px;border:1px solid;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:9px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;line-height:1.5;text-transform:lowercase;white-space:nowrap}.council-aspect{font-family:var(--font-mono);font-size:9px;padding:0 5px;border-radius:var(--radius-sm);background:var(--color-bg-tertiary);color:var(--color-text-secondary);white-space:nowrap;line-height:1.5}.council-status{display:inline-flex;align-items:center;gap:4px;padding:1px var(--space-2);border-radius:var(--radius-full);font-family:var(--font-mono);font-size:10px;font-weight:var(--font-weight-medium);letter-spacing:.04em}.council-status--sm{font-size:10px}.council-status-dot{width:6px;height:6px;border-radius:50%}.council-status--running{background:#2a6df41f;color:#0b50da}.council-status--running .council-status-dot{background:#2a6df4}.council-status--complete{background:#1eae531f;color:#1a9948}.council-status--complete .council-status-dot{background:#1eae53}.council-status--synth{background:var(--color-accent-soft);color:var(--color-accent)}.council-status--synth .council-status-dot{background:var(--color-accent)}.council-status--pending{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.council-status--pending .council-status-dot{background:var(--color-text-tertiary)}.council-stat-tile{padding:4px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);text-align:center}.council-stat-tile--warning{border-color:#f59f0a4d;background:#f59f0a0a}.council-stat-tile--dissent{border-color:#a73cdd4d;background:#a73cdd0a}.council-stat-tile--brand{border-color:var(--color-accent-soft);background:var(--color-accent-soft)}.council-stat-value{font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1}.council-stat-tile--warning .council-stat-value{color:#c47f08}.council-stat-tile--dissent .council-stat-value{color:#9725d0}.council-stat-tile--brand .council-stat-value{color:var(--color-accent)}.council-stat-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);margin-top:1px}.council-cite-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-secondary);font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text);cursor:pointer;margin:0 2px;vertical-align:baseline}.council-cite-chip:hover{border-color:var(--color-accent);background:var(--color-accent-soft)}.council-cite-round{font-weight:var(--font-weight-bold);color:var(--color-accent)}.council-inline-slug{display:inline;padding:1px 6px;border-radius:var(--radius-sm);background:var(--color-accent-soft);color:var(--color-accent);font-family:var(--font-mono);font-size:11px;font-weight:var(--font-weight-semibold);border:1px solid var(--color-accent-soft);cursor:pointer;margin:0 1px;vertical-align:baseline}.council-inline-slug:hover{background:var(--color-accent-soft)}.council-citation-prose{line-height:1.75}@media(prefers-reduced-motion:reduce){.council-hall-card,.council-cell,.council-transcript-chev{transition:none!important;transform:none!important}}.settings-page{max-width:880px;margin-inline:auto}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4);flex-wrap:wrap}.settings-save-row{display:flex;align-items:center;gap:var(--space-3)}.settings-saved{font-size:var(--font-size-sm);color:var(--color-success);font-weight:var(--font-weight-medium)}.settings-error{font-size:var(--font-size-sm);color:var(--color-error);font-weight:var(--font-weight-medium)}.settings-empty-notice{padding:var(--space-3) var(--space-4);background:var(--color-warning-subtle);border:1px solid var(--color-warning);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--space-6)}.settings-section{margin-bottom:var(--space-8);padding:var(--space-5);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.settings-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-4)}.settings-checkboxes{display:flex;flex-direction:column;gap:var(--space-3)}.settings-field-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5;padding-left:calc(var(--space-4) + var(--space-3))}.settings-checkbox-label{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer}.settings-checkbox{width:var(--space-4);height:var(--space-4);accent-color:var(--color-accent);cursor:pointer}.settings-empty{font-size:var(--font-size-sm);color:var(--color-text-tertiary);padding:var(--space-4);text-align:center}.packs-page{max-width:1600px}.packs-empty{font-size:var(--font-size-sm);color:var(--color-text-tertiary);padding:var(--space-8);text-align:center}.packs-section{margin-bottom:var(--space-8)}.packs-section-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.packs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}@media(max-width:640px){.packs-grid{grid-template-columns:1fr}}.packs-card{padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.packs-card--clickable{cursor:pointer;outline:none}.packs-card--clickable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.packs-card--clickable:focus-visible{border-color:var(--color-border-focus);box-shadow:var(--shadow-glow)}.packs-card--clickable:active{transform:scale(.97)}.packs-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.packs-card-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.packs-installed-pill{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-success);background:var(--color-success-subtle);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap;flex-shrink:0}.packs-card-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin-bottom:var(--space-3)}.packs-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.packs-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.packs-action-btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-3);border:1px solid var(--color-border)}.packs-action-btn:active:not(:disabled){transform:scale(.97)}.packs-action-btn:disabled{opacity:.6;cursor:not-allowed}.packs-action-btn--danger{color:var(--color-error);border-color:var(--color-border)}.packs-action-btn--danger:hover:not(:disabled){background:var(--color-error-subtle);color:var(--color-error);border-color:var(--color-error)}.packs-action-error{font-size:var(--font-size-xs);color:var(--color-error)}.packs-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000007a;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.packs-modal-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:560px;width:100%;max-height:80vh;overflow-y:auto;padding:var(--space-6)}.packs-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.packs-modal-title-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;flex:1}.packs-modal-name{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.packs-modal-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.packs-modal-header-actions .packs-card-actions{margin-top:0}.packs-modal-close{font-size:var(--font-size-xs);color:var(--color-text-tertiary);padding:var(--space-1) var(--space-2);flex-shrink:0}.packs-modal-close:hover{color:var(--color-text)}.packs-modal-desc{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);margin-bottom:var(--space-4)}.packs-modal-tags{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-bottom:var(--space-5)}.packs-modal-section{margin-bottom:var(--space-5)}.packs-modal-section:last-child{margin-bottom:0}.packs-modal-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.packs-modal-mono{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md)}.packs-modal-subskills{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.packs-modal-subskill{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);background:var(--color-bg-tertiary);border-radius:var(--radius-md)}.packs-modal-subskill-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.packs-modal-subskill-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.packs-modal-agents{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.packs-modal-agent{font-size:var(--font-size-sm);color:var(--color-text-secondary);padding:var(--space-1) 0}.about-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-12);align-items:center;padding:clamp(40px,7vw,96px) var(--space-8) clamp(32px,5vw,72px)}.about-hero-copy{animation:slide-up-fade .6s ease both}.about-lockup{display:flex;width:fit-content;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);text-decoration:none;color:var(--color-text)}.about-lockup-mark{display:block;flex-shrink:0;filter:drop-shadow(0 2px 10px var(--color-accent-soft));transition:transform var(--transition-fast)}.about-lockup:hover .about-lockup-mark{transform:rotate(8deg) scale(1.06)}.about-lockup-word{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:-.02em;color:var(--color-text)}.about-compat{display:inline-flex;align-items:center;gap:var(--space-2);width:fit-content;margin-top:var(--space-7);padding:6px var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:var(--color-bg-secondary)}.about-compat strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.about-compat-mark{display:inline-flex;color:var(--color-accent);font-weight:var(--font-weight-bold)}.about-title{font-family:var(--font-family-display);font-size:clamp(38px,5.4vw,68px);line-height:1.04;letter-spacing:-.03em;font-weight:var(--font-weight-bold);margin:var(--space-4) 0 var(--space-5)}.about-title-accent{background:linear-gradient(100deg,var(--color-vivid-purple),var(--color-electric-blue));-webkit-background-clip:text;background-clip:text;color:transparent}.about-lead{font-size:clamp(16px,1.5vw,19px);line-height:1.6;color:var(--color-text-secondary);max-width:40ch}.about-lead em{font-style:normal;color:var(--color-text);font-weight:var(--font-weight-semibold)}.about-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.about-command{font-family:var(--font-mono);font-size:var(--font-size-sm);padding:10px var(--space-4);border-radius:var(--radius-md);background:var(--color-onyx);color:var(--color-snow);white-space:nowrap;box-shadow:var(--shadow-md)}.about-link-btn{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);padding:10px var(--space-4);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-text);text-decoration:none;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.about-link-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow)}.about-link-btn--ghost{background:transparent;color:var(--color-text);border:1px solid var(--color-border)}.about-link-btn--ghost:hover{border-color:var(--color-accent);box-shadow:none}.about-hero-media{position:relative;aspect-ratio:1 / 1;display:grid;place-items:center;animation:slide-up-fade .7s ease both;animation-delay:.1s}.about-hero-aura{position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:var(--radius-full);background:radial-gradient(circle at 50% 45%,var(--color-vivid-purple),transparent 62%);filter:blur(38px);opacity:.32;animation:about-breathe 6s ease-in-out infinite}.about-hero-video{position:relative;width:100%;height:100%;object-fit:cover;border-radius:var(--radius-2xl);border:1px solid var(--color-border);box-shadow:var(--shadow-xl);background:var(--color-bg-secondary)}@media(max-width:860px){.about-hero{grid-template-columns:1fr}.about-hero-media{order:-1;max-width:420px;margin-inline:auto;width:100%}}@media(prefers-reduced-motion:reduce){.about-hero-copy,.about-hero-media,.about-hero-aura,.about-lockup-mark{animation:none;transition:none}}.about-contrast{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.about-contrast-card{border-radius:var(--radius-xl);border:1px solid var(--color-border);padding:var(--space-7);background:var(--color-bg-secondary);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.about-contrast-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.about-contrast-card--bad{border-color:color-mix(in srgb,var(--color-error) 30%,var(--color-border));background:var(--color-error-subtle)}.about-contrast-card--good{border-color:color-mix(in srgb,var(--color-accent) 36%,var(--color-border));background:var(--color-accent-soft)}.about-contrast-tag{display:inline-block;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-4)}.about-contrast-card--bad .about-contrast-tag{color:var(--color-error)}.about-contrast-card--good .about-contrast-tag{color:var(--color-accent)}.about-contrast-card ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0}.about-contrast-card li{position:relative;padding-left:var(--space-6);font-size:var(--font-size-base);line-height:1.45;color:var(--color-text)}.about-contrast-card li:before{position:absolute;left:0;font-weight:var(--font-weight-bold)}.about-contrast-card--bad li:before{content:"✕";color:var(--color-error)}.about-contrast-card--good li:before{content:"✓";color:var(--color-accent)}@media(max-width:860px){.about-contrast{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.about-contrast-card{transition:none}}.fd{width:100%;max-width:920px;margin:0 auto}.fd-svg{width:100%;height:auto;display:block;overflow:visible}.fd-node-grad-a{stop-color:var(--color-bg-secondary)}.fd-node-grad-b{stop-color:var(--color-bg-tertiary)}.fd-dot-core{stop-color:var(--color-vivid-purple);stop-opacity:1}.fd-dot-mid{stop-color:var(--color-electric-blue);stop-opacity:.85}.fd-dot-edge{stop-color:var(--color-electric-blue);stop-opacity:0}.fd-wire{stroke:color-mix(in srgb,var(--color-text) 38%,transparent);stroke-width:2}.fd-wire--dashed{stroke-dasharray:5 7;stroke-linecap:round;opacity:.85}.fd-comet-dot{offset-distance:0%;offset-rotate:0deg;animation:fd-comet-move 2.6s linear infinite;will-change:offset-distance}@keyframes fd-comet-move{0%{offset-distance:0%}to{offset-distance:100%}}.fd-node rect{stroke:var(--color-border);stroke-width:1.5}.fd-node--hook rect{stroke:var(--color-accent);stroke-width:2;filter:drop-shadow(0 6px 18px var(--color-accent-soft))}.fd-node--agent rect{fill:var(--color-onyx);stroke:none;filter:drop-shadow(0 8px 22px rgba(0,0,0,.22))}.fd-node--rem rect{fill:var(--color-accent-soft);stroke:var(--color-accent);stroke-width:1.5}.fd-node--accent rect{fill:var(--color-accent-soft)}.fd-node--breathe rect{transform-box:fill-box;transform-origin:center;animation:fd-breathe 4s ease-in-out infinite}@keyframes fd-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.fd-svg text{font-family:var(--font-family-text);text-anchor:middle;dominant-baseline:middle}.fd-node-title{fill:var(--color-text);font-size:17px;font-weight:var(--font-weight-bold);letter-spacing:-.4px}.fd-node--agent .fd-node-title{fill:var(--color-snow)}.fd-node--agent .fd-node-sub{fill:#ffffffb8}.fd-node-sub{fill:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-medium)}.fd-step-tag{fill:var(--color-text-tertiary);font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.fd-region-glyph{fill:var(--color-accent);font-size:19px}.fd-region-file{fill:var(--color-text);font-size:15px;font-weight:var(--font-weight-bold)}.fd-region-tag{fill:var(--color-text-tertiary);font-size:11.5px;font-weight:var(--font-weight-semibold);letter-spacing:.03em;text-transform:uppercase}.fd-label{fill:var(--color-text-tertiary);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase}.fd--mini{max-width:320px}.fd--mini .fd-node-title{font-size:15px}.fd--mini .fd-node-sub{font-size:10px}.fd--mini .fd-region-glyph{font-size:17px}.fd--mini .fd-region-file{font-size:13px}.fd--mini .fd-region-tag{font-size:9.5px}.fd--mini .fd-label{font-size:9px}.fd--mini .fd-step-tag{font-size:10px}@media(prefers-reduced-motion:reduce){.fd-comet-dot,.fd-node--breathe rect{animation:none}.fd-comet-dot{offset-distance:55%}}.hiw2-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);margin-top:clamp(32px,4vw,56px)}.hiw2-step{position:relative;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-bg-secondary);border:1px solid var(--color-border);overflow:hidden;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.hiw2-step:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--color-vivid-purple),var(--color-electric-blue));opacity:0;transition:opacity var(--transition-fast)}.hiw2-step:hover{transform:translateY(-3px);border-color:var(--color-accent);box-shadow:var(--shadow-lg)}.hiw2-step:hover:before{opacity:1}.hiw2-step-n{display:inline-block;font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);background:linear-gradient(100deg,var(--color-vivid-purple),var(--color-electric-blue));-webkit-background-clip:text;background-clip:text;color:transparent}.hiw2-step-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:var(--space-2) 0 var(--space-2)}.hiw2-step-body{font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-secondary)}@media(max-width:860px){.hiw2-steps{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.hiw2-step,.hiw2-step:before{transition:none}}.sleepf-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:clamp(32px,4vw,56px);align-items:start}.sleepf-card{padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.sleepf-card:hover{transform:translateY(-3px);border-color:var(--color-accent);box-shadow:var(--shadow-lg)}.sleepf-card--debt{border-color:color-mix(in srgb,var(--color-accent) 32%,var(--color-border));background:var(--color-accent-soft)}.sleepf-card--done{border-color:color-mix(in srgb,var(--color-success) 36%,var(--color-border));background:var(--color-success-subtle)}.sleepf-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-3);line-height:1.3}.sleepf-card-body{font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-secondary)}.sleepf-cmd{font-family:var(--font-mono);font-size:.85em;padding:1px 6px;border-radius:var(--radius-sm);background:var(--color-onyx);color:var(--color-snow);white-space:nowrap}.sleepf-debt{list-style:none;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.sleepf-debt-row{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.sleepf-debt-level{font-weight:var(--font-weight-bold);color:var(--color-text)}.sleepf-debt-range{font-family:var(--font-mono);color:var(--color-accent);font-weight:var(--font-weight-semibold)}.sleepf-debt-note{color:var(--color-text-tertiary)}.sleepf-specialists{list-style:none;margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.sleepf-spec-row{display:grid;grid-template-columns:auto auto;align-items:center;gap:var(--space-2) var(--space-3)}.sleepf-spec-name{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.sleepf-spec-badge{justify-self:start;font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-tertiary)}.sleepf-spec-badge--always{background:var(--color-accent-soft);color:var(--color-accent)}.sleepf-spec-domain{grid-column:1 / -1;font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text-secondary)}@media(max-width:860px){.sleepf-cards{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.sleepf-card{transition:none}}.recallf-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:clamp(32px,4vw,56px)}.recallf-stage{position:relative;padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.recallf-stage:hover{transform:translateY(-3px);border-color:var(--color-accent);box-shadow:var(--shadow-lg)}.recallf-stage-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.recallf-stage-n{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent);font-family:var(--font-family-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.recallf-stage-tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-tertiary)}.recallf-stage-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.recallf-stage-body{font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-secondary)}@media(max-width:860px){.recallf-stages{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.recallf-stage{transition:none}}.arch{position:relative}.arch-stage{position:relative;padding:clamp(24px,4vw,48px) 0 clamp(16px,3vw,36px);margin-inline:auto;max-width:920px}.arch-glow{position:absolute;top:-8%;right:4%;bottom:4%;left:4%;z-index:0;border-radius:var(--radius-2xl);background:radial-gradient(60% 70% at 28% 18%,var(--color-vivid-purple),transparent 62%),radial-gradient(56% 64% at 82% 86%,var(--color-electric-blue),transparent 60%);filter:blur(56px);opacity:.26;animation:arch-breathe 9s ease-in-out infinite}.arch-stack{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(10px,1.4vw,16px);animation:arch-settle .7s cubic-bezier(.22,1,.36,1) both}.arch-stratum{position:relative;transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.arch-edge{position:absolute;left:0;right:0;bottom:-3px;height:3px;border-radius:0 0 var(--radius-lg) var(--radius-lg);background:linear-gradient(100deg,var(--color-vivid-purple),var(--color-electric-blue));opacity:.55;transition:opacity var(--transition-normal),filter var(--transition-normal)}.arch-face{position:relative;display:flex;align-items:center;gap:clamp(12px,1.6vw,20px);padding:clamp(14px,1.8vw,20px) clamp(16px,2vw,24px);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:linear-gradient(120deg,color-mix(in srgb,var(--color-bg-secondary) 88%,transparent),color-mix(in srgb,var(--color-bg-tertiary) 70%,transparent));box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.arch-glyph{display:grid;place-items:center;flex-shrink:0;width:clamp(38px,4vw,46px);height:clamp(38px,4vw,46px);border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-lg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent) 26%,transparent)}.arch-meta{min-width:0;flex:1}.arch-meta-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-1)}.arch-file{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.arch-region{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:linear-gradient(100deg,var(--color-vivid-purple),var(--color-electric-blue));-webkit-background-clip:text;background-clip:text;color:transparent}.arch-brain{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary)}.arch-desc{font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text-secondary);margin:0}.arch-rides{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;gap:1px;padding-left:clamp(12px,1.6vw,18px);border-left:1px dashed var(--color-border);max-width:17ch}.arch-rides-plus{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-accent)}.arch-rides-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.arch-rides-desc{font-size:var(--font-size-xs);line-height:1.4;color:var(--color-text-tertiary)}.arch-stratum:hover{transform:translateY(-4px);z-index:2}.arch-stratum:hover .arch-face{border-color:var(--color-accent);box-shadow:var(--shadow-xl)}.arch-stratum:hover .arch-edge{opacity:1;filter:drop-shadow(0 0 8px var(--color-accent))}.arch-foot{position:relative;z-index:1;text-align:center;margin:clamp(20px,3vw,36px) auto 0;max-width:52ch;font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-tertiary)}.arch-foot em{font-style:normal;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}@keyframes arch-breathe{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.34;transform:scale(1.05)}}@keyframes arch-settle{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:720px){.arch-face{flex-wrap:wrap}.arch-rides{border-left:none;border-top:1px dashed var(--color-border);padding-left:0;padding-top:var(--space-2);max-width:none;width:100%}}@media(prefers-reduced-motion:reduce){.arch-glow{animation:none}.arch-stack{transform:none;animation:none}.arch-stratum{transform:none}.arch-stratum:hover{transform:translateY(-2px)}.arch-edge{position:static;transform:none;height:3px;margin-top:-3px;border-radius:0 0 var(--radius-lg) var(--radius-lg);opacity:.7}}.marquee-viewport{--marquee-duration: 50s;display:flex;width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}.marquee-track{display:flex;flex:0 0 auto;align-items:stretch;gap:var(--space-5);padding-inline:calc(var(--space-5) / 2);margin:0;list-style:none;animation:marquee-scroll var(--marquee-duration) linear infinite;will-change:transform}.marquee-viewport:hover .marquee-track,.marquee-viewport:focus-within .marquee-track{animation-play-state:paused}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-100%)}}.marquee-card{display:flex;flex-direction:column;gap:var(--space-2);flex:0 0 auto;width:280px;padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.marquee-card:hover{transform:translateY(-3px);border-color:var(--color-accent);box-shadow:var(--shadow-lg)}.marquee-chip{align-self:flex-start;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;padding:2px var(--space-2);border-radius:var(--radius-full)}.marquee-chip--pack{color:var(--color-accent);background:var(--color-accent-soft)}.marquee-chip--standalone{color:var(--color-text-tertiary);background:var(--color-bg-tertiary)}.marquee-card-name{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--color-text)}.marquee-card-desc{margin:0;font-size:var(--font-size-sm);line-height:1.5;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.marquee-viewport--static{overflow:hidden}.marquee-track--skeleton{animation:none}.marquee-card--skeleton{width:280px;height:150px;background:linear-gradient(100deg,var(--color-bg-secondary),var(--color-bg-tertiary),var(--color-bg-secondary));background-size:200% 100%;animation:marquee-shimmer 1.4s ease-in-out infinite}@keyframes marquee-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.marquee-status{margin-top:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}@media(prefers-reduced-motion:reduce){.marquee-viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.marquee-track,.marquee-card--skeleton{animation:none}.marquee-track--dup{display:none}}@media(max-width:600px){.marquee-card{width:240px;padding:var(--space-5)}.marquee-card--skeleton{width:240px}}.feat-scroller{position:relative;height:var(--feat-track-h, auto)}.feat-sticky{position:sticky;top:var(--space-4)}.feat-spotlight{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:var(--space-6);align-items:stretch;margin-top:var(--space-6)}.feat-rail-wrap{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.feat-rail-head{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-2)}.feat-rail-step{font-family:var(--font-family-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:.02em}.feat-rail-step i{font-style:normal;color:var(--color-text-tertiary)}.feat-rail-track{flex:1;height:3px;border-radius:var(--radius-full);background:var(--color-border);overflow:hidden}.feat-rail-fill{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left center;border-radius:inherit;background:linear-gradient(90deg,var(--color-vivid-purple),var(--color-electric-blue));transition:transform 80ms linear}.feat-rail{display:flex;flex-direction:column;gap:var(--space-1)}.feat-rail-item{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left;border:1px solid transparent;border-radius:var(--radius-lg);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.feat-rail-item:hover{background:var(--color-bg-secondary);color:var(--color-text)}.feat-rail-item:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:1px}.feat-rail-item--active{background:var(--color-bg-secondary);border-color:color-mix(in srgb,var(--color-accent) 32%,var(--color-border));color:var(--color-text);box-shadow:var(--shadow-sm)}.feat-rail-item--active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:58%;border-radius:var(--radius-full);background:linear-gradient(var(--color-vivid-purple),var(--color-electric-blue))}.feat-rail-title{font-family:var(--font-family-display);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:-.01em}.feat-rail-tag{flex-shrink:0;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary)}.feat-rail-item--active .feat-rail-tag{color:var(--color-accent)}.feat-stage{position:relative;overflow:hidden;height:clamp(460px,60vh,580px);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:linear-gradient(160deg,var(--color-accent-soft),transparent 55%),var(--color-bg-secondary)}.feat-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:var(--space-4);padding:clamp(var(--space-6),3vw,var(--space-8));opacity:0;will-change:opacity,transform;backface-visibility:hidden}.feat-panel:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:-2px}.feat-panel:not(.feat-panel--near) .fd-comet-dot,.feat-panel:not(.feat-panel--near) .fd-node--breathe rect{animation-play-state:paused}.feat-stage-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.feat-stage-chip{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-soft);padding:2px var(--space-2);border-radius:var(--radius-full)}.feat-stage-title{font-family:var(--font-family-display);font-size:clamp(var(--font-size-xl),2.4vw,var(--font-size-2xl));font-weight:var(--font-weight-bold);letter-spacing:-.02em;line-height:1.15;color:var(--color-text)}.feat-stage-body{font-size:var(--font-size-base);line-height:1.6;color:var(--color-text-secondary);max-width:58ch;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden}.feat-stage-flow{margin-top:auto;align-self:stretch;width:100%;max-width:100%;height:clamp(200px,28vh,300px)}.feat-stage-flow .fd-svg{width:100%;height:100%}.feat-more{margin-top:var(--space-10)}.feat-more-head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5)}.feat-more-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-secondary)}.feat-more-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent);background:var(--color-accent-soft)}.feat-more-head:after{content:"";flex:1;height:1px;background:var(--color-border)}.feat-more-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:720px){.feat-more-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1080px){.feat-more-grid{grid-template-columns:repeat(3,1fr)}}.feat-more-card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.feat-more-card:hover{border-color:color-mix(in srgb,var(--color-accent) 40%,var(--color-border));transform:translateY(-2px);box-shadow:var(--shadow-lg)}.feat-more-glyph{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:var(--radius-md);background:var(--color-accent-soft);color:var(--color-accent);font-size:var(--font-size-base)}.feat-more-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.feat-more-title{font-family:var(--font-family-display);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text)}.feat-more-tagline{font-size:var(--font-size-xs);line-height:1.4;color:var(--color-text-secondary)}@media(max-width:860px){.feat-scroller{--feat-track-h: auto}.feat-sticky{position:static}.feat-rail-head{display:none}.feat-stage{height:auto;overflow:visible}.feat-panel{position:relative;opacity:1!important;transform:none!important}.feat-panel[aria-hidden=true]{display:none}.feat-spotlight{grid-template-columns:1fr;margin-top:var(--space-5)}.feat-rail{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:var(--space-2);padding-bottom:var(--space-2);scrollbar-width:thin}.feat-rail-item{flex-shrink:0;width:auto}.feat-rail-item--active:before{display:none}.feat-stage{min-height:0}}@media(prefers-reduced-motion:reduce){.feat-stage{animation:none}.feat-rail-item,.feat-more-card{transition:none}}.closing{max-width:var(--page-max-width);margin:0 auto;padding:clamp(48px,7vw,104px) var(--space-8);text-align:center;border-top:1px solid var(--color-border)}.closing-title{font-family:var(--font-family-display);font-size:clamp(28px,4vw,46px);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin:0 0 var(--space-5);color:var(--color-text)}.closing-body{font-size:clamp(16px,1.6vw,20px);line-height:1.6;color:var(--color-text-secondary);max-width:60ch;margin:0 auto var(--space-8)}.closing-body strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}.closing-cmds{display:inline-flex;flex-direction:column;gap:var(--space-2);text-align:left;padding:var(--space-6);border-radius:var(--radius-xl);background:var(--color-onyx);box-shadow:var(--shadow-xl);margin-bottom:var(--space-8)}.closing-cmd{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-snow);white-space:nowrap}.closing-cmd-c{color:var(--color-accent);margin-right:var(--space-2)}.closing-cmd-text{color:var(--color-snow)}.closing-cmd-hint{color:color-mix(in srgb,var(--color-snow) 45%,transparent);margin-left:var(--space-2)}.closing-foot{font-size:var(--font-size-sm);color:var(--color-text-tertiary);max-width:52ch;margin:0 auto;line-height:1.55}.about{margin:calc(var(--space-4) * -1);background:radial-gradient(120% 80% at 80% -10%,var(--color-accent-soft),transparent 60%),radial-gradient(90% 60% at -10% 0%,var(--gradient-brand-subtle),transparent 55%),var(--color-bg);color:var(--color-text);overflow-x:clip}.about section,.about .about-hero{max-width:var(--page-max-width);margin-inline:auto}.about-section{padding:clamp(40px,6vw,88px) var(--space-8);border-top:1px solid var(--color-border)}.about-kicker{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-3)}.about-h2{font-family:var(--font-family-display);font-size:clamp(26px,3.4vw,40px);line-height:1.12;letter-spacing:-.02em;font-weight:var(--font-weight-bold);margin-bottom:var(--space-4);max-width:22ch}.about-section-lead{font-size:clamp(15px,1.4vw,18px);line-height:1.6;color:var(--color-text-secondary);max-width:60ch;margin-bottom:var(--space-10)}.about-section-lead em{font-style:italic;color:var(--color-text)}@keyframes about-pulse{0%,to{box-shadow:0 0 0 4px var(--color-accent-soft)}50%{box-shadow:0 0 0 7px transparent}}@keyframes about-breathe{0%,to{opacity:.28;transform:scale(1)}50%{opacity:.44;transform:scale(1.06)}}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-11: 44px;--space-12: 48px;--space-13: 52px;--space-16: 76px;--space-20: 80px;--space-24: 120px;--space-28: 144px;--font-family-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Inter Variable", "Inter", "Segoe UI", Roboto, sans-serif;--font-family-text: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family: var(--font-family-text);--font-mono: "Sometype Mono", "JetBrains Mono", "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--zoom: 1;--font-size-xs: calc(12px * var(--zoom));--font-size-sm: calc(14px * var(--zoom));--font-size-base: calc(16px * var(--zoom));--font-size-lg: calc(20px * var(--zoom));--font-size-xl: calc(26px * var(--zoom));--font-size-2xl: calc(40px * var(--zoom));--font-size-3xl: calc(52px * var(--zoom));--font-size-display: calc(76px * var(--zoom));--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-display: 1.05;--line-height-tight: 1.12;--line-height-snug: 1.14;--line-height-heading-sm: 1.18;--line-height-normal: 1.5;--line-height-relaxed: 1.43;--letter-spacing-display: -3.8px;--letter-spacing-heading-lg: -1.82px;--letter-spacing-heading: -1.6px;--letter-spacing-heading-sm: -1.19px;--letter-spacing-subheading: -.91px;--letter-spacing-tight: -.26px;--letter-spacing-body: -.26px;--letter-spacing-caption: -.14px;--radius-sm: 6px;--radius-md: 9px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 999px;--radius-nav: 9px;--color-ink: #292d34;--color-deep-space: #090c1d;--color-onyx: #202023;--color-graphite: #646464;--color-smoke: #b3b3b3;--color-ash: #e8e8e8;--color-snow: #ffffff;--color-fog: #e9ebf0;--color-tint-blue: #edf6fd;--color-deep-violet: #7b68ee;--color-vivid-purple: #6647f0;--color-rich-plum: #514b81;--color-electric-blue: #0091ff;--color-warm-coral: #ff5b36;--color-obsidian: #000000;--color-porcelain: #f7f8f8;--color-aether-blue: var(--color-electric-blue);--color-azure: var(--color-electric-blue);--color-cobalt-link: var(--color-deep-violet);--color-emerald: hsl(142 71% 40%);--color-cyan-spark: var(--color-electric-blue);--color-amethyst: var(--color-deep-violet);--color-caution: #ff7a00;--color-silver-mist: var(--color-ash);--color-slate: #474747;--color-citrus-finish: #dddc8c;--color-blush-finish: #e8d0d0;--color-indigo-finish: #596680;--color-silver-finish: #e3e4e5;--gradient-citrus: linear-gradient(184deg, #292d34 0%, #dfe74f 33%, #5e9c2a 66%, #0a8619 95%);--gradient-indigo: linear-gradient(184deg, #292d34 20%, #a8d3fb 43%, #0012f9 76%, #2535e2 95%);--gradient-blush: linear-gradient(184deg, #292d34 20%, #f3c4f6 43%, #f500b4 76%, #cc29bc 95%);--gradient-warm-fade: linear-gradient(rgba(246, 233, 232, 0), rgba(255, 91, 54, .23));--gradient-dark-onyx: linear-gradient(97deg, rgb(32, 32, 32) 43.17%, rgb(143, 143, 143) 110.86%);--color-brand-deep: var(--color-vivid-purple);--color-brand-mid: var(--color-deep-violet);--color-brand-vivid: var(--color-deep-violet);--color-brand-hot: var(--color-electric-blue);--gradient-brand: linear-gradient(135deg, #6647f0, #7b68ee);--gradient-brand-subtle: linear-gradient(135deg, rgba(123, 104, 238, .08), rgba(0, 145, 255, .08));--color-bg: var(--color-snow);--color-bg-secondary: var(--color-snow);--color-bg-tertiary: var(--color-fog);--color-bg-elevated: var(--color-snow);--color-text: var(--color-ink);--color-text-secondary: var(--color-graphite);--color-text-tertiary: var(--color-slate);--color-text-on-brand: var(--color-snow);--color-border: var(--color-ash);--color-border-hover: #d4d4d4;--color-border-focus: var(--color-deep-violet);--color-accent: var(--color-deep-violet);--color-accent-text: var(--color-snow);--color-accent-soft: rgba(123, 104, 238, .12);--color-success: hsl(142 71% 40%);--color-success-subtle: hsl(142 71% 95%);--color-warning: var(--color-caution);--color-warning-subtle: hsl(22 100% 95%);--color-error: hsl(0 72% 51%);--color-error-subtle: hsl(0 72% 96%);--color-priority-critical: hsl(0 72% 51%);--color-priority-high: var(--color-caution);--color-priority-medium: var(--color-graphite);--color-priority-low: var(--color-smoke);--color-urgency-critical: hsl(0 72% 51%);--color-urgency-high: var(--color-caution);--color-urgency-medium: var(--color-graphite);--color-urgency-low: var(--color-smoke);--color-quadrant-do: hsl(0 72% 51%);--color-quadrant-schedule: var(--color-deep-violet);--color-quadrant-delegate: var(--color-caution);--color-quadrant-eliminate: var(--color-graphite);--color-status-todo: var(--color-caution);--color-status-in-progress: var(--color-deep-violet);--color-status-in-review: var(--color-vivid-purple);--color-status-completed: hsl(142 71% 40%);--shadow-sm: rgba(13, 21, 48, .04) 0px 4px 4px 0px;--shadow-md: rgba(0, 0, 0, .1) 0px 1px 3px 0px, rgba(0, 0, 0, .1) 0px 1px 2px -1px;--shadow-lg: rgba(18, 43, 165, .04) 0px 1px 1px -.5px, rgba(18, 43, 165, .04) 0px 3px 3px -1.5px, rgba(18, 43, 165, .04) 0px 6px 6px -3px, rgba(18, 43, 165, .04) 0px 12px 12px -6px;--shadow-xl: rgba(0, 0, 0, .12) 0px 12px 32px -8px, rgba(0, 0, 0, .06) 0px 4px 12px -4px;--shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .04);--shadow-glow: 0 0 0 3px rgba(123, 104, 238, .18);--glass-bg: rgba(255, 255, 255, .84);--glass-bg-hover: rgba(255, 255, 255, .94);--glass-border: rgba(232, 232, 232, .8);--glass-blur: blur(16px);--transition-fast: .12s ease;--transition-normal: .24s ease;--transition-slow: .4s ease;--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width: 220px;--header-height: 52px;--page-max-width: 1200px;--card-padding: 12px}[data-theme=dark]{--color-bg: #14171f;--color-bg-secondary: #1c1f2a;--color-bg-tertiary: #2a2f3d;--color-bg-elevated: #1c1f2a;--color-text: #f5f6fa;--color-text-secondary: #c8ccd9;--color-text-tertiary: #9aa0b3;--color-text-on-brand: var(--color-snow);--color-border: #2f3445;--color-border-hover: #3d4358;--color-border-focus: #9d8cff;--color-accent: #9d8cff;--color-accent-text: var(--color-snow);--color-accent-soft: rgba(157, 140, 255, .18);--gradient-brand: linear-gradient(135deg, #6647f0, #9d8cff);--gradient-brand-subtle: linear-gradient(135deg, rgba(157, 140, 255, .16), rgba(0, 145, 255, .16));--color-success: hsl(142 71% 55%);--color-success-subtle: rgba(39, 200, 90, .14);--color-warning: #ffae3b;--color-warning-subtle: rgba(255, 174, 59, .14);--color-error: #ff5a5f;--color-error-subtle: rgba(255, 90, 95, .14);--color-caution: #ffae3b;--color-status-todo: #ffae3b;--color-status-in-progress: #9d8cff;--color-status-in-review: #c4b5fd;--color-status-completed: #4ade80;--color-priority-critical: #ff5a5f;--color-priority-high: #ffae3b;--color-priority-medium: #c8ccd9;--color-priority-low: #6e7388;--color-urgency-critical: #ff5a5f;--color-urgency-high: #ffae3b;--color-urgency-medium: #c8ccd9;--color-urgency-low: #6e7388;--color-quadrant-do: #ff5a5f;--color-quadrant-schedule: #9d8cff;--color-quadrant-delegate: #ffae3b;--color-quadrant-eliminate: #9aa0b3;--shadow-sm: rgba(0, 0, 0, .32) 0px 1px 2px 0px;--shadow-md: rgba(0, 0, 0, .4) 0px 2px 8px -2px, rgba(0, 0, 0, .28) 0px 1px 3px -1px;--shadow-lg: rgba(0, 0, 0, .5) 0px 8px 24px -8px, rgba(0, 0, 0, .32) 0px 4px 8px -4px;--shadow-xl: rgba(0, 0, 0, .6) 0px 16px 40px -12px, rgba(0, 0, 0, .4) 0px 6px 16px -6px;--shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .32);--shadow-glow: 0 0 0 3px rgba(157, 140, 255, .28);--glass-bg: rgba(28, 31, 42, .78);--glass-bg-hover: rgba(28, 31, 42, .92);--glass-border: rgba(255, 255, 255, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg)}a{color:inherit;text-decoration:none}button{border:none;background:none;cursor:pointer;font:inherit;color:inherit}input,textarea,select{font:inherit;color:inherit}ul,ol{list-style:none}img,svg{display:block;max-width:100%}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}html,body{font-family:var(--font-family);font-feature-settings:"calt" 0,"clig" 0,"liga" 0;letter-spacing:var(--letter-spacing-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{background-color:var(--color-bg);color:var(--color-text);overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}::selection{background:var(--color-accent-soft);color:var(--color-text)}[data-theme=dark] ::selection{background:#9d8cff52;color:var(--color-snow)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-md)}button,input,textarea,select{font-family:inherit;letter-spacing:inherit}.page-title{font-family:var(--font-family-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-snug);letter-spacing:var(--letter-spacing-heading);margin-bottom:var(--space-5);color:var(--color-text)}[data-theme=dark] .page-title{color:var(--color-text)}.error-state{padding:var(--space-4);border-radius:var(--radius-md);background:var(--color-error-subtle);color:var(--color-error);border:1px solid var(--color-error);font-size:var(--font-size-sm)}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-6);text-align:center;color:var(--color-text);background:var(--color-bg)}.error-boundary h1{font-size:var(--font-size-xl);margin-bottom:var(--space-3)}.error-boundary p{color:var(--color-text-secondary);margin-bottom:var(--space-4);max-width:480px;word-break:break-word}.error-boundary button{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-accent-text);border:none;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.error-boundary button:hover{opacity:.9}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.mermaid-stage svg .node rect,.mermaid-stage svg .node polygon,.mermaid-stage svg .node path,.mermaid-stage svg .node circle{stroke-width:1.5px!important}.mermaid-stage svg .node.done>rect,.mermaid-stage svg .node.done>polygon,.mermaid-stage svg .node.done>path{fill:#dcfce7!important;stroke:#15803d!important}.mermaid-stage svg .node.done foreignObject *,.mermaid-stage svg .node.done text{color:#14532d!important;fill:#14532d!important}.mermaid-stage svg .node.active>rect,.mermaid-stage svg .node.active>polygon,.mermaid-stage svg .node.active>path{fill:#fef3c7!important;stroke:#a16207!important}.mermaid-stage svg .node.active foreignObject *,.mermaid-stage svg .node.active text{color:#713f12!important;fill:#713f12!important}.mermaid-stage svg .node.todo>rect,.mermaid-stage svg .node.todo>polygon,.mermaid-stage svg .node.todo>path{fill:#f3f4f6!important;stroke:#6b7280!important}.mermaid-stage svg .node.todo foreignObject *,.mermaid-stage svg .node.todo text{color:#374151!important;fill:#374151!important}.mermaid-stage svg .node.blocked>rect,.mermaid-stage svg .node.blocked>polygon,.mermaid-stage svg .node.blocked>path{fill:#fee2e2!important;stroke:#b91c1c!important}.mermaid-stage svg .node.blocked foreignObject *,.mermaid-stage svg .node.blocked text{color:#7f1d1d!important;fill:#7f1d1d!important}.mermaid-stage svg .cluster rect,.mermaid-stage svg .cluster polygon{fill:var(--color-bg-tertiary)!important;stroke:var(--color-border)!important;stroke-width:1px!important;rx:12!important;ry:12!important}.mermaid-stage svg .cluster-label foreignObject *,.mermaid-stage svg .cluster-label text{color:var(--color-text-secondary)!important;fill:var(--color-text-secondary)!important;font-weight:600!important}.mermaid-stage svg .edgeLabel,.mermaid-stage svg .edgeLabel rect,.mermaid-stage svg .edgeLabel foreignObject *,.mermaid-stage svg .edgeLabel text{background:var(--color-bg-secondary)!important;color:var(--color-text-secondary)!important;fill:var(--color-text-secondary)!important}.mermaid-stage svg .edgePath path{stroke:var(--color-text-tertiary)!important;stroke-width:1.5px!important}.mermaid-stage svg .arrowheadPath,.mermaid-stage svg .marker{fill:var(--color-text-tertiary)!important;stroke:var(--color-text-tertiary)!important}[data-theme=dark] .mermaid-stage svg .node.done>rect,[data-theme=dark] .mermaid-stage svg .node.done>polygon,[data-theme=dark] .mermaid-stage svg .node.done>path{fill:#4ade8029!important;stroke:#4ade80!important}[data-theme=dark] .mermaid-stage svg .node.done foreignObject *,[data-theme=dark] .mermaid-stage svg .node.done text{color:#86efac!important;fill:#86efac!important}[data-theme=dark] .mermaid-stage svg .node.active>rect,[data-theme=dark] .mermaid-stage svg .node.active>polygon,[data-theme=dark] .mermaid-stage svg .node.active>path{fill:#fbbf2429!important;stroke:#fbbf24!important}[data-theme=dark] .mermaid-stage svg .node.active foreignObject *,[data-theme=dark] .mermaid-stage svg .node.active text{color:#fcd34d!important;fill:#fcd34d!important}[data-theme=dark] .mermaid-stage svg .node.todo>rect,[data-theme=dark] .mermaid-stage svg .node.todo>polygon,[data-theme=dark] .mermaid-stage svg .node.todo>path{fill:#9aa0b31f!important;stroke:#6e7388!important}[data-theme=dark] .mermaid-stage svg .node.todo foreignObject *,[data-theme=dark] .mermaid-stage svg .node.todo text{color:#c8ccd9!important;fill:#c8ccd9!important}[data-theme=dark] .mermaid-stage svg .node.blocked>rect,[data-theme=dark] .mermaid-stage svg .node.blocked>polygon,[data-theme=dark] .mermaid-stage svg .node.blocked>path{fill:#f8717129!important;stroke:#f87171!important}[data-theme=dark] .mermaid-stage svg .node.blocked foreignObject *,[data-theme=dark] .mermaid-stage svg .node.blocked text{color:#fca5a5!important;fill:#fca5a5!important}.mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>rect,.mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>polygon,.mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>path{fill:#ede9fe!important;stroke:#7b68ee!important}.mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked) foreignObject *,.mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked) text{color:#5b21b6!important;fill:#5b21b6!important}[data-theme=dark] .mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>rect,[data-theme=dark] .mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>polygon,[data-theme=dark] .mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked)>path{fill:#9d8cff2e!important;stroke:#9d8cff!important}[data-theme=dark] .mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked) foreignObject *,[data-theme=dark] .mermaid-stage svg .node:not(.done):not(.active):not(.todo):not(.blocked) text{color:#c4b5fd!important;fill:#c4b5fd!important}@keyframes slide-up-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-stagger{animation:slide-up-fade .28s cubic-bezier(.4,0,.2,1) both}.animate-stagger-1{animation-delay:30ms}.animate-stagger-2{animation-delay:60ms}.animate-stagger-3{animation-delay:90ms}.animate-stagger-4{animation-delay:.12s}.animate-stagger-5{animation-delay:.15s}.animate-stagger-6{animation-delay:.18s}.animate-stagger-7{animation-delay:.21s}.animate-stagger-8{animation-delay:.24s}@media(max-width:640px){.page-title{font-size:var(--font-size-xl);margin-bottom:var(--space-4)}}
@@ -0,0 +1,19 @@
1
+ import{bi as bt}from"./index-CIMJcxbn.js";const ct=20,we={rect:"rectangle",circle:"ellipse"},lt={startOnLoad:!1,flowchart:{curve:"linear"},themeVariables:{fontSize:`${ct}px`},maxEdges:500,maxTextSize:5e4};class rt{constructor({converter:r}){this.convert=(e,n)=>this.converter(e,{...n,fontSize:n.fontSize||ct}),this.converter=r}}var z;(function(t){t.ROUND="round",t.STADIUM="stadium",t.DOUBLECIRCLE="doublecircle",t.CIRCLE="circle",t.DIAMOND="diamond",t.CYLINDER="cylinder"})(z||(z={}));var R;(function(t){t.COLOR="color"})(R||(R={}));var E;(function(t){t.FILL="fill",t.STROKE="stroke",t.STROKE_WIDTH="stroke-width",t.STROKE_DASHARRAY="stroke-dasharray"})(E||(E={}));var nt={},Xt;function Te(){if(Xt)return nt;Xt=1,Object.defineProperty(nt,"__esModule",{value:!0}),nt.removeMarkdown=void 0;var t=function(r,e){e===void 0&&(e={listUnicodeChar:""}),e=e||{},e.listUnicodeChar=e.hasOwnProperty("listUnicodeChar")?e.listUnicodeChar:!1,e.stripListLeaders=e.hasOwnProperty("stripListLeaders")?e.stripListLeaders:!0,e.gfm=e.hasOwnProperty("gfm")?e.gfm:!0,e.useImgAltText=e.hasOwnProperty("useImgAltText")?e.useImgAltText:!0,e.preserveLinks=e.hasOwnProperty("preserveLinks")?e.preserveLinks:!1;var n=r||"";n=n.replace(/^(-\s*?|\*\s*?|_\s*?){3,}\s*$/gm,"");try{e.stripListLeaders&&(e.listUnicodeChar?n=n.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,e.listUnicodeChar+" $1"):n=n.replace(/^([\s\t]*)([\*\-\+]|\d+\.)\s+/gm,"$1")),e.gfm&&(n=n.replace(/\n={2,}/g,`
2
+ `).replace(/~{3}.*\n/g,"").replace(/~~/g,"").replace(/`{3}.*\n/g,"")),e.preserveLinks&&(n=n.replace(/\[(.*?)\][\[\(](.*?)[\]\)]/g,"$1 ($2)")),n=n.replace(/<[^>]*>/g,"").replace(/^[=\-]{2,}\s*$/g,"").replace(/\[\^.+?\](\: .*?$)?/g,"").replace(/\s{0,2}\[.*?\]: .*?$/g,"").replace(/\!\[(.*?)\][\[\(].*?[\]\)]/g,e.useImgAltText?"$1":"").replace(/\[(.*?)\][\[\(].*?[\]\)]/g,"$1").replace(/^\s{0,3}>\s?/g,"").replace(/(^|\n)\s{0,3}>\s?/g,`
3
+
4
+ `).replace(/^\s{1,2}\[(.*?)\]: (\S+)( ".*?")?\s*$/g,"").replace(/^(\n)?\s{0,}#{1,6}\s+| {0,}(\n)?\s{0,}#{0,} {0,}(\n)?\s{0,}$/gm,"$1$2$3").replace(/([\*_]{1,3})(\S.*?\S{0,1})\1/g,"$2").replace(/([\*_]{1,3})(\S.*?\S{0,1})\1/g,"$2").replace(/(`{3,})(.*?)\1/gm,"$2").replace(/`(.+?)`/g,"$1").replace(/\n{2,}/g,`
5
+
6
+ `)}catch(s){return console.error(s),r}return n};return nt.removeMarkdown=t,nt}var Ce=Te();const Le={arrow_circle:{endArrowhead:"circle"},arrow_cross:{endArrowhead:"bar"},arrow_open:{endArrowhead:null,startArrowhead:null},double_arrow_circle:{endArrowhead:"circle",startArrowhead:"circle"},double_arrow_cross:{endArrowhead:"bar",startArrowhead:"bar"},double_arrow_point:{endArrowhead:"arrow",startArrowhead:"arrow"}},Ie=t=>Le[t],mt=t=>{let r=t.text;return t.labelType==="markdown"&&(r=Ce.removeMarkdown(t.text)),Oe(r)},Oe=t=>{const r=/\s?(fa|fab):[a-zA-Z0-9-]+/g;return t.replace(r,"")},it=t=>{const r={};return Object.keys(t).forEach(e=>{var n;switch(e){case E.FILL:{r.backgroundColor=t[e],r.fillStyle="solid";break}case E.STROKE:{r.strokeColor=t[e];break}case E.STROKE_WIDTH:{r.strokeWidth=Number((n=t[e])==null?void 0:n.split("px")[0]);break}case E.STROKE_DASHARRAY:{r.strokeStyle="dashed";break}}}),r},Et=t=>{const r={};return Object.keys(t).forEach(e=>{switch(e){case R.COLOR:{r.strokeColor=t[e];break}}}),r},_e=(t,r)=>[t,r],Re=32,oe=.62,Ne=12,De=12,ie=(t,r)=>Math.max(20,Math.ceil(t.length*r*oe)),Pe=(t,r,e,n)=>{const s=n||ct;if(t!==z.CYLINDER||!r||r.includes(`
7
+ `))return s;const i=Math.max(20,e-Ne);return ie(r,s)<=i?s:Math.max(De,Math.floor(i/(r.length*oe)))},$e=t=>{const r={};t.subGraphs.map(n=>{n.nodeIds.forEach(s=>{r[n.id]={id:n.id,parent:null,isLeaf:!1},r[s]={id:s,parent:n.id,isLeaf:t.vertices[s]!==void 0}})});const e={};return[...Object.keys(t.vertices),...t.subGraphs.map(n=>n.id)].forEach(n=>{if(!r[n])return;let s=r[n];const i=[];for(s.isLeaf||i.push(`subgraph_group_${s.id}`);s.parent;)i.push(`subgraph_group_${s.parent}`),s=r[s.parent];e[n]=i}),{getGroupIds:n=>e[n]||[],getParentId:n=>r[n]?r[n].parent:null}},Ye=new rt({converter:(t,r)=>{const e=[],n=r.fontSize,{getGroupIds:s,getParentId:i}=$e(t);return t.subGraphs.reverse().forEach(o=>{const c=s(o.id),l=mt(o),u=ie(l,n||16)+Re*2,h=Math.max(o.width,u),f=o.x-(h-o.width)/2,g=it(o.containerStyle),m=Et(o.labelStyle),b={id:o.id,type:"rectangle",groupIds:c,x:f,y:o.y,width:h,height:o.height,label:{groupIds:c,text:l,fontSize:n,verticalAlign:"top",...m},...g};e.push(b)}),Object.values(t.vertices).forEach(o=>{if(!o)return;const c=s(o.id),l=mt(o),a=Pe(o.type,l,o.width,n),d=it(o.containerStyle),u=Et(o.labelStyle);let h={id:o.id,type:"rectangle",groupIds:c,x:o.x,y:o.y,width:o.width,height:o.height,strokeWidth:2,label:{groupIds:c,text:l,fontSize:a,...u},link:o.link||null,...d};switch(o.type){case z.STADIUM:{h={...h,roundness:{type:3}};break}case z.ROUND:{h={...h,roundness:{type:3}};break}case z.DOUBLECIRCLE:{c.push(`doublecircle_${o.id}}`);const g={type:"ellipse",groupIds:c,x:o.x+5,y:o.y+5,width:o.width-10,height:o.height-10,strokeWidth:2,roundness:{type:3},label:{groupIds:c,text:l,fontSize:a,...u}};h={...h,groupIds:c,type:"ellipse"},e.push(g);break}case z.CIRCLE:{h.type="ellipse";break}case z.DIAMOND:{h.type="diamond";break}}e.push(h)}),t.edges.forEach(o=>{let c=[];const l=i(o.start),a=i(o.end);l&&l===a&&(c=s(l));const{startX:d,startY:u,reflectionPoints:h}=o,f=h.map(S=>_e(S.x-h[0].x,S.y-h[0].y)),g=Ie(o.type||"arrow_point"),m=e.find(S=>S.id===o.start),b=e.find(S=>S.id===o.end);if(!m||!b)return;const y={id:`${o.start}_${o.end}`,type:"arrow",groupIds:c,x:d,y:u,strokeWidth:o.stroke==="thick"?4:2,strokeStyle:o.stroke==="dotted"?"dashed":void 0,points:f,...o.text?{label:{text:mt(o),fontSize:n,groupIds:c}}:{},roundness:{type:2},...g,start:{id:m.id||""},end:{id:b.id||""}};e.push(y)}),{elements:e}}});let P=(t=21)=>crypto.getRandomValues(new Uint8Array(t)).reduce((r,e)=>(e&=63,e<36?r+=e.toString(36):e<62?r+=(e-26).toString(36).toUpperCase():e>62?r+="-":r+="_",r),"");const ve=new rt({converter:t=>{const r=P(),{width:e,height:n}=t,s={type:"image",x:0,y:0,width:e,height:n,status:"saved",fileId:r};return{files:{[r]:{id:r,mimeType:t.mimeType,dataURL:t.dataURL}},elements:[s]}}}),ot=(t,r)=>[t,r],Lt=t=>t.replace(/\\n/g,`
8
+ `),U=t=>{const r={type:"line",x:t.startX,y:t.startY,points:[ot(0,0),ot(t.endX-t.startX,t.endY-t.startY)],width:t.endX-t.startX,height:t.endY-t.startY,strokeStyle:t.strokeStyle||"solid",strokeColor:t.strokeColor||"#000",strokeWidth:t.strokeWidth||1};return t.groupId&&Object.assign(r,{groupIds:[t.groupId]}),t.id&&Object.assign(r,{id:t.id}),r},V=t=>{const r={type:"text",x:t.x,y:t.y,width:t.width,height:t.height,text:Lt(t.text)||"",fontSize:t.fontSize,verticalAlign:"top",strokeColor:t.color};return t.groupId&&Object.assign(r,{groupIds:[t.groupId]}),t.id&&Object.assign(r,{id:t.id}),r},tt=t=>{var s,i,o,c,l;const r={text:Lt(((s=t==null?void 0:t.label)==null?void 0:s.text)||""),fontSize:(i=t==null?void 0:t.label)==null?void 0:i.fontSize,textAlign:(o=t.label)==null?void 0:o.textAlign,verticalAlign:((c=t.label)==null?void 0:c.verticalAlign)||"middle",strokeColor:((l=t.label)==null?void 0:l.color)||"#000",...t.groupId?{groupIds:[t.groupId]}:{}};let e={};t.type==="rectangle"&&t.subtype==="activation"&&(e={backgroundColor:"#e9ecef",fillStyle:"solid"});const n={id:t.id,type:t.type,x:t.x,y:t.y,width:t.width,height:t.height,label:r,strokeStyle:t==null?void 0:t.strokeStyle,strokeWidth:t==null?void 0:t.strokeWidth,strokeColor:t==null?void 0:t.strokeColor,backgroundColor:t==null?void 0:t.bgColor,fillStyle:"solid",...e};return t.groupId&&Object.assign(n,{groupIds:[t.groupId]}),n},It=t=>{var e,n,s,i;const r={type:"arrow",x:t.startX,y:t.startY,points:((e=t.points)==null?void 0:e.map(([o,c])=>ot(o,c)))||[ot(0,0),ot(t.endX-t.startX,t.endY-t.startY)],width:t.endX-t.startX,height:t.endY-t.startY,strokeStyle:(t==null?void 0:t.strokeStyle)||"solid",endArrowhead:(t==null?void 0:t.endArrowhead)||null,startArrowhead:(t==null?void 0:t.startArrowhead)||null,label:{text:Lt(((n=t==null?void 0:t.label)==null?void 0:n.text)||""),fontSize:16,textAlign:(s=t==null?void 0:t.label)==null?void 0:s.textAlign,verticalAlign:(i=t==null?void 0:t.label)==null?void 0:i.verticalAlign},roundness:{type:2},start:t.start,end:t.end};return t.groupId&&Object.assign(r,{groupIds:[t.groupId]}),r},dt=10,St=16,Fe=24,Me=4,Xe=t=>{if(!t)return!0;const r=t.trim().toLowerCase();return r==="transparent"||r==="none"||r==="rgba(0,0,0,0)"||r==="rgba(0, 0, 0, 0)"},qe=(t,r)=>Math.max(20,Math.round(t.length*r*.6)),qt=(t,r,e=!0)=>{const n=t,s=n.groupIds??[];if(s.includes(r)||(n.groupIds=[...s,r]),!e||!n.label)return;const i=n.label.groupIds??[];i.includes(r)||(n.label.groupIds=[...i,r])},We=new rt({converter:t=>{const r=[],e=[];if(Object.values(t.nodes).forEach(n=>{!n||!n.length||n.forEach(s=>{let i;switch(s.type){case"line":i=U(s);break;case"rectangle":case"ellipse":i=tt(s);break;case"text":i=V(s);break;default:throw`unknown type ${s.type}`}s.type==="rectangle"&&(s==null?void 0:s.subtype)==="activation"?e.push(i):r.push(i)})}),Object.values(t.lines).forEach(n=>{n&&r.push(U(n))}),Object.values(t.arrows).forEach(n=>{n&&(r.push(It(n)),n.sequenceNumber&&r.push(tt(n.sequenceNumber)))}),r.push(...e),t.loops){const{lines:n,texts:s,nodes:i}=t.loops;n.forEach(o=>{r.push(U(o))}),s.forEach(o=>{r.push(V(o))}),i.forEach(o=>{r.push(tt(o))})}return t.groups&&t.groups.forEach(n=>{const{actorKeys:s,name:i}=n;let o=1/0,c=1/0,l=0,a=0;if(!s.length)return;const d=r.filter(y=>{if(y.id){const S=y.id.indexOf("-"),O=y.id.substring(0,S);return s.includes(O)}return!1});if(!d.length||(d.forEach(y=>{y.x===void 0||y.y===void 0||y.width===void 0||y.height===void 0||(o=Math.min(o,y.x),c=Math.min(c,y.y),l=Math.max(l,y.x+y.width),a=Math.max(a,y.y+y.height))}),!Number.isFinite(o)||!Number.isFinite(c)||!Number.isFinite(l)||!Number.isFinite(a)))return;const u=o-dt,h=c-dt,f=l-o+dt*2,g=a-c+dt*2,m=P(),b=P(),p=tt({type:"rectangle",x:u,y:h,width:f,height:g,bgColor:Xe(n.fill)?void 0:n.fill,strokeColor:"#1f1f1f",strokeWidth:1,id:m,groupId:b});if(r.unshift(p),r.forEach(y=>{y.id!==m&&(y.x===void 0||y.y===void 0||y.width===void 0||y.height===void 0||y.x>=o&&y.x+y.width<=l&&y.y>=c&&y.y+y.height<=a&&qt(y,b))}),i){const y=V({id:P(),text:i,x:u+Me,y:h-Fe,width:qe(i,St),height:St+8,fontSize:St,color:"#1f1f1f",groupId:b});qt(y,b,!1),r.push(y)}}),{elements:r}}}),Be=new rt({converter:t=>{const r=[];return t.nodes.forEach(e=>{!e||!e.length||e.forEach(n=>{let s;switch(n.type){case"line":s=U(n);break;case"rectangle":case"ellipse":s=tt(n);break;case"text":s=V(n);break;default:throw`unknown type ${n.type}`}r.push(s)})}),Object.values(t.lines).forEach(e=>{e&&r.push(U(e))}),Object.values(t.arrows).forEach(e=>{if(!e)return;const n=It(e);r.push(n)}),Object.values(t.text).forEach(e=>{const n=V(e);r.push(n)}),Object.values(t.namespaces).forEach(e=>{const n=Object.keys(e.classes),s=[...n],i=[...t.lines,...t.arrows,...t.text];n.forEach(c=>{const l=i.filter(a=>a.metadata&&a.metadata.classId===c).map(a=>a.id);l.length&&s.push(...l)});const o={type:"frame",id:P(),name:e.id,children:s};r.push(o)}),{elements:r}}}),ze=new rt({converter:t=>{const r=[];return t.nodes.forEach(e=>{!e||!e.length||e.forEach(n=>{let s;switch(n.type){case"line":s=U(n);break;case"rectangle":case"ellipse":s=tt(n);break;case"text":s=V(n);break;default:throw`unknown type ${n.type}`}r.push(s)})}),t.lines.forEach(e=>{r.push(U(e))}),t.arrows.forEach(e=>{r.push(It(e))}),t.text.forEach(e=>{r.push(V(e))}),{elements:r}}}),ht=(t,r)=>[t,r],st=16,ae=14,je=1,kt="#000000",ce=5,Ge=ce*2,He=ce*2,Ue=1.25,le=new Set(["choice","fork","join","stateStart","stateEnd","divider"]),wt=t=>t.shape==="stateEnd"?[`state_end_group_${t.id}`]:void 0,de=t=>t.shape==="rectWithTitle"&&t.description.length?[t.text,...t.description].join(`
9
+ `):t.text;let H;const Ve=()=>{if(H!==void 0)return H;if(typeof document>"u")return H=null,H;try{H=document.createElement("canvas").getContext("2d")}catch{H=null}return H},et=(t,r)=>{const e=Ve();return e?(e.font=`${r}px Excalifont, sans-serif`,e.measureText(t).width):t.length*r*.6},Ke=(t,r,e)=>{if(et(t,r)<=e)return[t];const n=[];let s="";for(const i of t){const o=`${s}${i}`;if(s&&et(o,r)>e){n.push(s),s=i;continue}s=o}return s&&n.push(s),n},Ze=(t,r,e)=>{if(!t.trim()||et(t,r)<=e)return t;const n=t.split(/\s+/).filter(Boolean),s=[];let i="";for(const o of n){const c=Ke(o,r,e);for(const[l,a]of c.entries()){const u=i?`${i}${i&&l===0?" ":""}${a}`:a;if(et(u,r)<=e){i=u;continue}i&&s.push(i),i=a}c.length>1}return s.push(i),s.join(`
10
+ `)},Je=(t,r,e)=>{const s=t.map(c=>Ze(c,r,e)).join(`
11
+ `).split(`
12
+ `),i=Math.max(...s.map(c=>et(c,r))),o=s.length*r*Ue;return{width:i,height:o}},Qe=(t,r,e,n)=>{const s=t.split(`
13
+ `);for(let i=st;i>=ae;i-=je){const{height:o}=Je(s,i,r);if(o<=e)return i}return n},tr=t=>{const r=de(t);if(!r||le.has(t.shape))return st;const e=Math.max(1,t.width-Ge),n=Math.max(1,t.height-He),s=r.split(`
14
+ `);return s.length>1&&Math.max(...s.map(o=>et(o,st)))<=e?st:Qe(r,e,n,s.length===1?st:ae)},er=t=>{if(le.has(t.shape))return;const r=de(t);if(r)return{text:r,fontSize:tr(t),verticalAlign:t.shape==="rectWithTitle"||t.shape==="roundedWithTitle"?"top":"middle",...Et(t.labelStyle)}},rr=t=>{const r=it(t.containerStyle),e=er(t),n=t.shape==="choice"?"diamond":t.shape==="stateStart"||t.shape==="stateEnd"?"ellipse":"rectangle",s=t.shape==="rect"||t.shape==="rectWithTitle"||t.shape==="roundedWithTitle",i=t.shape==="stateStart"||t.shape==="fork"||t.shape==="join",o=r.backgroundColor||r.strokeColor||kt,c=r.strokeColor||r.backgroundColor||kt;return{id:t.id,type:n,...wt(t)?{groupIds:wt(t)}:{},x:t.x,y:t.y,width:t.width,height:t.height,...e?{label:e}:{},...r,...s?{roundness:{type:3}}:{},...i?{backgroundColor:o,strokeColor:c,fillStyle:"solid"}:{}}},nr=t=>{if(!t.dividerLine)return null;const r=it(t.containerStyle);return{id:`${t.id}__divider`,type:"line",x:t.dividerLine.startX,y:t.dividerLine.startY,width:t.dividerLine.endX-t.dividerLine.startX,height:t.dividerLine.endY-t.dividerLine.startY,points:[ht(0,0),ht(t.dividerLine.endX-t.dividerLine.startX,t.dividerLine.endY-t.dividerLine.startY)],strokeColor:r.strokeColor||"#000",strokeWidth:r.strokeWidth||1}},sr=t=>{const r=it(t.containerStyle),e=Math.max(2,Math.min(t.width,t.height)*.32),n=t.endInnerColor||r.strokeColor||r.backgroundColor||kt;return{id:`${t.id}__inner`,type:"ellipse",groupIds:wt(t),x:t.x+e,y:t.y+e,width:Math.max(1,t.width-e*2),height:Math.max(1,t.height-e*2),backgroundColor:n,strokeColor:n,fillStyle:"solid",strokeWidth:1}},or=t=>{const r=t.reflectionPoints.map((e,n,s)=>{const i=s[0];return n===0?ht(0,0):ht(e.x-i.x,e.y-i.y)});return{id:t.id,type:"arrow",x:t.startX,y:t.startY,width:t.endX-t.startX,height:t.endY-t.startY,points:r,strokeColor:t.strokeColor||"#000",strokeWidth:t.strokeWidth||2,strokeStyle:t.strokeStyle||"solid",endArrowhead:t.isNoteEdge?null:"triangle",roundness:{type:2},start:{id:t.start},end:{id:t.end},...t.text?{label:{text:t.text,fontSize:16}}:{}}},ir=new rt({converter:t=>{const r=[];return t.nodes.forEach(e=>{if(!e.isRenderable)return;const n=rr(e);r.push(n);const s=nr(e);s&&r.push(s),e.shape==="stateEnd"&&r.push(sr(e))}),t.edges.forEach(e=>{r.push(or(e))}),{elements:r}}}),D=t=>{t=cr(t);const r=t.replace(/#(\d+);/g,"&#$1;").replace(/#([a-z]+);/g,"&$1;"),e=document.createElement("textarea");return e.innerHTML=r,e.value},K=t=>{const r=t.getAttribute("transform"),e=r==null?void 0:r.match(/translate\(([ \d.-]+),\s*([\d.-]+)\)/);let n=0,s=0;return e&&(n=Number(e[1]),s=Number(e[2])),{transformX:n,transformY:s}},ar=t=>{let r=t;return r=r.replace(/style.*:\S*#.*;/g,e=>e.substring(0,e.length-1)),r=r.replace(/classDef.*:\S*#.*;/g,e=>e.substring(0,e.length-1)),r=r.replace(/#\w+;/g,e=>{const n=e.substring(1,e.length-1);return/^\+?\d+$/.test(n)?`fl°°${n}¶ß`:`fl°${n}¶ß`}),r},cr=function(t){return t.replace(/fl°°/g,"#").replace(/fl°/g,"&").replace(/¶ß/g,";")},lr=.5,Ot=(t,r=lr)=>{const e=[];return t.forEach(n=>{const s=e[e.length-1];if(!s){e.push(n);return}Math.hypot(n[0]-s[0],n[1]-s[1])<=r||e.push(n)}),e},_t=t=>{const r=t.getAttribute("d");if(!r)return null;const e=Array.from(r.matchAll(/-?\d*\.?\d+(?:e[-+]?\d+)?/gi),n=>Number(n[0]));return e.length<4?null:{startX:e[0],startY:e[1],endX:e[e.length-2],endY:e[e.length-1]}},ue=t=>{const r=t.getAttribute("data-points");if(!r){const e=_t(t);return e?[{x:e.startX,y:e.startY},{x:e.endX,y:e.endY}]:[]}try{const e=atob(r),n=JSON.parse(e);return Array.isArray(n)?n.filter(s=>s&&typeof s.x=="number"&&typeof s.y=="number"&&Number.isFinite(s.x)&&Number.isFinite(s.y)):[]}catch{return[]}},he=(t,r={x:0,y:0},e="LM")=>{if(t.tagName.toLowerCase()!=="path")throw new Error(`Invalid input: Expected an HTMLElement of tag "path", got ${t.tagName}`);const n=t.getAttribute("d");if(!n)throw new Error('Path element does not contain a "d" attribute');const s=n.split(new RegExp(`(?=[${e}])`)),i=s[0].substring(1).split(",").map(l=>parseFloat(l)),o=s[s.length-1].substring(1).split(",").map(l=>parseFloat(l)),c=s.map(l=>{const a=l[0],d=l.substring(1).split(",").map(u=>parseFloat(u));return a==="C"?{x:d[4],y:d[5],command:a}:{x:d[0],y:d[1],command:a}}).filter((l,a,d)=>{if(a===0||a===d.length-1)return!0;if(l.x===d[a-1].x&&l.y===d[a-1].y||a===d.length-2&&l.command==="C")return!1;if(a===d.length-2&&(d[a-1].x===l.x||d[a-1].y===l.y)){const u=d[d.length-1];return Math.hypot(u.x-l.x,u.y-l.y)>20}return l.x!==d[a-1].x||l.y!==d[a-1].y}).map(l=>({x:l.x+r.x,y:l.y+r.y}));return{startX:i[0]+r.x,startY:i[1]+r.y,endX:o[0]+r.x,endY:o[1]+r.y,reflectionPoints:c}},dr=t=>({...t,elements:t.elements.map(r=>{if(!("points"in r)||!Array.isArray(r.points))return r;const e=r.points;if(e.length<2)return r;const n=Ot(e);return n.length===e.length?r:{...r,points:n}})}),ur=(t,r={})=>{const e=(()=>{switch(t.type){case"graphImage":return ve.convert(t,r);case"flowchart":return Ye.convert(t,r);case"sequence":return We.convert(t,r);case"class":return Be.convert(t,r);case"erd":return ze.convert(t,r);case"state":return ir.convert(t,r);default:throw new Error(`graphToExcalidraw: unknown graph type "${t.type}, only flowcharts are supported!"`)}})();return dr(e)},A=t=>t.replace(/\s*!important\s*$/i,"").trim(),hr=(t,r)=>{let e=r;for(;e<t.length&&/\s/.test(t[e]);)e+=1;const n=e;for(;e<t.length&&/[a-z-]/i.test(t[e]);)e+=1;if(e===n)return!1;for(;e<t.length&&/\s/.test(t[e]);)e+=1;return t[e]===":"},$=t=>{const r=[];let e=0;for(;e<t.length;){for(;e<t.length&&/[\s;,]/.test(t[e]);)e+=1;if(e>=t.length)break;const n=e;for(;e<t.length&&t[e]!==":"&&!(t[e]===";"||t[e]===",");)e+=1;if(e>=t.length||t[e]!==":")break;const s=t.substring(n,e).trim().toLowerCase();e+=1;const i=e;let o=0,c=null;for(;e<t.length;){const a=t[e];if(c){a===c&&t[e-1]!=="\\"&&(c=null),e+=1;continue}if(a==='"'||a==="'"){c=a,e+=1;continue}if(a==="("){o+=1,e+=1;continue}if(a===")"){o=Math.max(0,o-1),e+=1;continue}if(o===0&&(a===";"||a===","||/\s/.test(a)&&hr(t,e)))break;e+=1}const l=A(t.substring(i,e));s&&l&&r.push({property:s,value:l}),e<t.length&&(t[e]===";"||t[e]===",")&&(e+=1)}return r},Y=t=>{const r=A(t);if(!r)return!1;if(typeof CSS<"u"&&typeof CSS.supports=="function")return CSS.supports("color",r);if(typeof document<"u"){const e=document.createElement("div");return e.style.color="",e.style.color=r,e.style.color!==""}return!1},Wt=(t,r)=>{var n;const e=t.getAttribute("style");return e&&((n=$(e).find(s=>s.property===r))==null?void 0:n.value)||""},xt=(...t)=>{for(const r of t){const e=A(r||"");if(Y(e))return e}},Rt=(t,r)=>{var o,c,l,a;const e=t.querySelector("text, foreignObject, div, span, p")||t,n=xt((o=e.getAttribute)==null?void 0:o.call(e,"fill"),Wt(e,"fill"),(c=e.style)==null?void 0:c.fill);if(n)return n;const s=xt((l=e.getAttribute)==null?void 0:l.call(e,"color"),Wt(e,"color"),(a=e.style)==null?void 0:a.color);if(s)return s;const i=xt(r);if(i)return i},Nt=(t,r,e)=>{switch(r){case E.FILL:case E.STROKE:Y(e)&&(t[r]=e);break;case E.STROKE_WIDTH:case E.STROKE_DASHARRAY:t[r]=e;break}},ft=(t,r,e)=>{r===R.COLOR&&Y(e)&&(t[R.COLOR]=e)},gt=(t,r,e)=>{t&&$(t).forEach(({property:n,value:s})=>{Nt(r,n,s),ft(e,n,s)})},fe=(t,r)=>{t&&$(t).forEach(({property:e,value:n})=>{if(e==="fill"&&Y(n)){r[R.COLOR]=n;return}ft(r,e,n)})},ge=(t,r)=>{if(!t)return;[[E.FILL,t.getAttribute("fill")],[E.STROKE,t.getAttribute("stroke")],[E.STROKE_WIDTH,t.getAttribute("stroke-width")],[E.STROKE_DASHARRAY,t.getAttribute("stroke-dasharray")]].forEach(([n,s])=>{const i=A(s||"");i&&Nt(r,n,i)})},ye=(t,r)=>{if(!t)return;const e=t.getAttribute("fill")||t.getAttribute("color"),n=A(e||"");Y(n)&&(r[R.COLOR]=n)},Tt=(t,r,e,n)=>{var i,o;if(!(r instanceof Map))return;const s=r.get(t);s&&((i=s.styles)==null||i.forEach(c=>{$(c).forEach(({property:l,value:a})=>{Nt(e,l,a),ft(n,l,a)})}),(o=s.textStyles)==null||o.forEach(c=>{$(c).forEach(({property:l,value:a})=>{ft(n,l,a)})}))},fr=(t,r,e)=>{var h;const n=t.nodes.map(f=>f.startsWith("flowchart-")?f.split("-")[1]:f),s=r.querySelector(`[id='${t.id}']`);if(!s)throw new Error("SubGraph element not found");const i=Dt(s,r),o=s.getBBox(),c={width:o.width,height:o.height},l={},a={},d=s.querySelector(":scope > rect, :scope > path, :scope > polygon, :scope > ellipse")||s.querySelector(".cluster > rect, .cluster > path, .cluster > polygon, .cluster > ellipse")||s.querySelector("rect, path, polygon, ellipse");gt(s.getAttribute("style"),l,a),gt(d==null?void 0:d.getAttribute("style"),l,a),ge(d,l);const u=s.querySelector(".cluster-label text, .cluster-label tspan")||s.querySelector("text");return fe(u==null?void 0:u.getAttribute("style"),a),ye(u,a),Tt(t.id,e,l,a),(h=t.classes)==null||h.forEach(f=>{Tt(f,e,l,a)}),{id:t.id,nodeIds:n,text:D(t.title),labelType:"text",...i,...c,containerStyle:l,labelStyle:a}},Bt=(t,r,e)=>{var h,f;const n=r.querySelector(`[id*="${t.domId}"]`);if(!n)return;let s;((h=n.parentElement)==null?void 0:h.tagName.toLowerCase())==="a"&&(s=n.parentElement.getAttribute("xlink:href"));const i=Dt(s?n.parentElement:n,r),o=n.getBBox(),c={width:o.width,height:o.height},l={},a={};t.classes&&e instanceof Map&&(Array.isArray(t.classes)?t.classes:[t.classes]).forEach(g=>{Tt(g,e,l,a)}),(f=t.styles)==null||f.forEach(g=>{gt(g,l,a)});const d=n.querySelector(".label-container");return gt(d==null?void 0:d.getAttribute("style"),l,a),ge(d,l),Array.from(n.querySelectorAll(".label, .nodeLabel, .label text, .label tspan, .label span, .label div")).forEach(g=>{fe(g.getAttribute("style"),a),ye(g,a)}),{id:t.id,labelType:t.labelType,text:D(t.text||""),type:t.type,link:s||void 0,...i,...c,containerStyle:l,labelStyle:a}},gr=(t,r,e)=>{const n=e.querySelector(`[id*="${t.id}"]`);if(!n)throw new Error("Edge element not found");const s=Dt(n,e),i=he(n,s);return t.length=void 0,{...t,...i,text:D(t.text)}},Dt=(t,r)=>{var l;if(!t)throw new Error("Element not found");let e=(l=t.parentElement)==null?void 0:l.parentElement;const n=t.childNodes[0];let s={x:0,y:0};if(n){const{transformX:a,transformY:d}=K(n),u=n.getBBox();s={x:Number(n.getAttribute("x"))||a+u.x||0,y:Number(n.getAttribute("y"))||d+u.y||0}}const{transformX:i,transformY:o}=K(t),c={x:i+s.x,y:o+s.y};for(;e&&e.id!==r.id;){if(e.classList.value==="root"&&e.hasAttribute("transform")){const{transformX:a,transformY:d}=K(e);c.x+=a,c.y+=d}e=e.parentElement}return c},yr=(t,r)=>{const e=t.getVertices(),n=t.getEdges(),s=t.getSubGraphs(),i=t.getClasses(),o={},c=i instanceof Map?i:{};e instanceof Map?e.forEach((u,h)=>{o[h]=Bt(u,r,c)}):typeof e=="object"&&e!==null&&Object.entries(e).forEach(([u,h])=>{o[u]=Bt(h,r,c)});const l=new Map,a=(Array.isArray(n)?n:[]).map(u=>{if(!r.querySelector(`[id*="${u.id}"]`))return null;const h=`${u.start}-${u.end}`,f=l.get(h)||0;return l.set(h,f+1),gr(u,f,r)}).filter(u=>u!==null&&u.reflectionPoints.length>1);return{type:"flowchart",subGraphs:(Array.isArray(s)?s:[]).map(u=>fr(u,r,c)),vertices:o,edges:a}},pr=(t,r)=>{const e={};r!=null&&r.label&&(e.label={text:D(r.label),fontSize:16});const n=t.tagName;if(n==="line")e.startX=Number(t.getAttribute("x1")),e.startY=Number(t.getAttribute("y1")),e.endX=Number(t.getAttribute("x2")),e.endY=Number(t.getAttribute("y2"));else if(n==="path"){const o=t.getAttribute("d");if(!o)throw new Error('Path element does not contain a "d" attribute');const c=o.split(/(?=[LC])/),l=c[0].substring(1).split(",").map(u=>parseFloat(u)),a=[];c.forEach(u=>{const h=u.substring(1).trim().split(" ").map(f=>{const[g,m]=f.split(",");return[parseFloat(g)-l[0],parseFloat(m)-l[1]]});a.push(...h)});const d=a[a.length-1];e.startX=l[0],e.startY=l[1],e.endX=d[0],e.endY=d[1],e.points=a}r!=null&&r.label&&(e.startY=e.startY-10,e.endY=e.endY-10);const s=t.getAttribute("stroke"),i=(s&&s!=="none"?s:"")||getComputedStyle(t).stroke||"";return e.strokeColor=i?A(i):null,e.strokeWidth=Number(t.getAttribute("stroke-width")),e.type="arrow",e.strokeStyle=(r==null?void 0:r.strokeStyle)||"solid",e.startArrowhead=(r==null?void 0:r.startArrowhead)||null,e.endArrowhead=(r==null?void 0:r.endArrowhead)||null,e},Pt=(t,r,e,n,s)=>{const i={};return i.type="arrow",i.startX=t,i.startY=r,i.endX=e,i.endY=n,Object.assign(i,{...s}),i},yt=(t,r,e,n)=>({type:"text",x:t,y:r,text:e,width:(n==null?void 0:n.width)||20,height:(n==null?void 0:n.height)||20,fontSize:(n==null?void 0:n.fontSize)||ct,id:n==null?void 0:n.id,color:n==null?void 0:n.color,groupId:n==null?void 0:n.groupId,metadata:n==null?void 0:n.metadata}),pe=(t,r,e)=>{const n={},s=Number(t.getAttribute("x")),i=Number(t.getAttribute("y"));n.type="text",n.text=D(r),e!=null&&e.id&&(n.id=e.id),e!=null&&e.groupId&&(n.groupId=e.groupId);const o=t.getBBox();n.width=o.width,n.height=o.height,n.x=s-o.width/2,n.y=i;const c=parseInt(getComputedStyle(t).fontSize);return n.fontSize=c,n.color=Rt(t),n},W=(t,r,e={})=>{const n={};n.type=r;const{label:s,subtype:i,id:o,groupId:c}=e;n.id=o,c&&(n.groupId=c),s&&(n.label={text:D(s.text),fontSize:16,textAlign:s==null?void 0:s.textAlign,verticalAlign:s==null?void 0:s.verticalAlign});const l=t.getBBox();switch(n.x=l.x,n.y=l.y,n.width=l.width,n.height=l.height,n.subtype=i,i){case"highlight":const a=t.getAttribute("fill");a&&(n.bgColor=A(a));break;case"note":n.strokeStyle="dashed";break}return n},at=(t,r,e,n,s,i)=>{const o={};o.startX=r,o.startY=e,o.endX=n,i!=null&&i.groupId&&(o.groupId=i.groupId),i!=null&&i.id&&(o.id=i.id),o.endY=s;const c=t.getAttribute("stroke");return o.strokeColor=c?A(c):null,o.strokeWidth=Number(t.getAttribute("stroke-width")),o.type="line",o},zt={0:"SOLID",1:"DOTTED",3:"SOLID_CROSS",4:"DOTTED_CROSS",5:"SOLID_OPEN",6:"DOTTED_OPEN",24:"SOLID_POINT",25:"DOTTED_POINT"},X={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,SOLID_POINT:24,DOTTED_POINT:25,CRITICAL_START:27},br=t=>{let r;switch(t){case X.SOLID:case X.SOLID_CROSS:case X.SOLID_OPEN:case X.SOLID_POINT:r="solid";break;case X.DOTTED:case X.DOTTED_CROSS:case X.DOTTED_OPEN:case X.DOTTED_POINT:r="dotted";break;default:r="solid";break}return r},mr=(t,r)=>{var n,s;if(!!((n=t.nextElementSibling)!=null&&n.classList.contains("sequenceNumber"))){const i=(s=t.nextElementSibling)==null?void 0:s.textContent;if(!i)throw new Error("sequence number not present");const o=30,c=o/2,a={type:"rectangle",x:r.startX-10,y:r.startY-c,label:{text:i,fontSize:14},bgColor:"#e9ecef",height:o,subtype:"sequence"};Object.assign(r,{sequenceNumber:a})}},jt=(t,r,e)=>{if(!t)throw"root node not found";const n=P(),s=Array.from(t.children),i=[];return s.forEach((o,c)=>{const l=`${e==null?void 0:e.id}-${c}`;let a;switch(o.tagName){case"line":const d=Number(o.getAttribute("x1")),u=Number(o.getAttribute("y1")),h=Number(o.getAttribute("x2")),f=Number(o.getAttribute("y2"));a=at(o,d,u,h,f,{groupId:n,id:l});break;case"text":a=pe(o,r,{groupId:n,id:l});break;case"circle":a=W(o,"ellipse",{label:o.textContent?{text:o.textContent}:void 0,groupId:n,id:l});default:a=W(o,we[o.tagName],{label:o.textContent?{text:o.textContent}:void 0,groupId:n,id:l})}i.push(a)}),i},Gt=(t,r)=>{const e=r.getAttribute("fill"),n=r.getAttribute("stroke"),s=r.getAttribute("stroke-width"),i=r.getAttribute("stroke-dasharray");e&&e!=="none"&&(t.bgColor=A(e)),n&&n!=="none"&&(t.strokeColor=A(n)),s&&(t.strokeWidth=Number(s)),i&&i.trim()&&(t.strokeStyle="dashed")},Sr=(t,r)=>{const e=Array.from(r.querySelectorAll(".actor-top")),n=Array.from(r.querySelectorAll(".actor-bottom")),s=[],i=[],o={},c=t instanceof Map?Array.from(t.values()):Object.values(t),l=Array.from(r.querySelectorAll(".actor-line")),a=(d,u)=>{var m;const h=d.name,f=l.find(b=>b.getAttribute("name")===h);if(f)return f;const g=d.type==="participant"?(m=u.parentElement)==null?void 0:m.previousElementSibling:u.previousElementSibling;return g?g.tagName==="line"?g:g.querySelector("line"):null};return c.forEach(d=>{const u=e.find(g=>g.getAttribute("name")===d.name),h=n.find(g=>g.getAttribute("name")===d.name);if(!u||!h)throw"root not found";const f=d.description;if(d.type==="participant"){const g=W(u,"rectangle",{id:`${d.name}-top`,label:{text:f},subtype:"actor"});if(Gt(g,u),!g)throw"Top Node element not found!";s.push([g]);const m=W(h,"rectangle",{id:`${d.name}-bottom`,label:{text:f},subtype:"actor"});o[d.name]={topId:`${d.name}-top`,bottomId:`${d.name}-bottom`,bindType:"rectangle"},Gt(m,h),s.push([m]);const b=a(d,u);if((b==null?void 0:b.tagName)!=="line")throw"Line not found";const p=Number(b.getAttribute("x1"));if(!g.height)throw"Top node element height is null";const y=g.y+g.height,S=m.y,O=Number(b.getAttribute("x2")),w=at(b,p,y,O,S);i.push(w)}else if(d.type==="actor"){const g=jt(u,f,{id:`${d.name}-top`});s.push(g);const m=jt(h,f,{id:`${d.name}-bottom`});s.push(m);const b=a(d,u);if((b==null?void 0:b.tagName)!=="line")throw"Line not found";const p=Number(b.getAttribute("x1")),y=Number(b.getAttribute("y1")),S=Number(b.getAttribute("x2")),O=m.find(T=>T.type==="ellipse");if(O){const T=O.y,C=at(b,p,y,S,T);i.push(C)}const w=g.find(T=>T.type==="ellipse"),L=m.find(T=>T.type==="ellipse");w!=null&&w.id&&(L!=null&&L.id)&&(o[d.name]={topId:w.id,bottomId:L.id,bindType:"ellipse"})}}),{nodes:s,lines:i,actorMap:o}},xr=(t,r,e)=>{const n=[],s=Array.from(r.querySelectorAll('[class*="messageLine"]')),i=Object.keys(zt),o=t.filter(c=>i.includes(c.type.toString()));return s.forEach((c,l)=>{const a=o[l],d=zt[a.type],u=pr(c,{label:a==null?void 0:a.message,strokeStyle:br(a.type),endArrowhead:d==="SOLID_OPEN"||d==="DOTTED_OPEN"?null:"arrow"}),h=e[a.from],f=e[a.to];h!=null&&h.topId&&(f!=null&&f.topId)&&(u.start={type:h.bindType||"rectangle",id:h.topId},u.end={type:f.bindType||"rectangle",id:f.topId}),mr(c,u),n.push(u)}),n},Ar=(t,r)=>{const e=Array.from(r.querySelectorAll(".note")).map(i=>i.parentElement),n=t.filter(i=>i.type===X.NOTE),s=[];return e.forEach((i,o)=>{if(!i)return;const c=i.firstChild,l=n[o].message,a=W(c,"rectangle",{label:{text:l},subtype:"note"}),d=c.getAttribute("fill"),u=c.getAttribute("stroke"),h=c.getAttribute("stroke-width"),f=c.getAttribute("stroke-dasharray");d&&d!=="none"&&(a.bgColor=A(d)),u&&u!=="none"&&(a.strokeColor=A(u)),h&&(a.strokeWidth=Number(h)),f&&f.trim()&&(a.strokeStyle="dashed"),s.push(a)}),s},Er=t=>{const r=Array.from(t.querySelectorAll("[class*=activation]")),e=[];return r.forEach(n=>{const s=W(n,"rectangle",{label:{text:""},subtype:"activation"});(()=>{const o=n.getAttribute("fill"),c=n.getAttribute("stroke"),l=n.getAttribute("stroke-width"),a=n.getAttribute("stroke-dasharray");o&&o!=="none"&&(s.bgColor=A(o)),c&&c!=="none"&&(s.strokeColor=A(c)),l&&(s.strokeWidth=Number(l)),a&&a.trim()&&(s.strokeStyle="dashed")})(),e.push(s)}),e},kr=(t,r)=>{const e=Array.from(r.querySelectorAll(".loopLine")),n=[],s=[],i=[];e.forEach(d=>{const u=Number(d.getAttribute("x1")),h=Number(d.getAttribute("y1")),f=Number(d.getAttribute("x2")),g=Number(d.getAttribute("y2")),m=at(d,u,h,f,g);m.strokeStyle="dotted",m.strokeColor="#adb5bd",m.strokeWidth=2,n.push(m)});const o=Array.from(r.querySelectorAll(".loopText")),c=t.filter(d=>d.type===X.CRITICAL_START).map(d=>d.message);o.forEach(d=>{var m;const u=d.textContent||"",h=pe(d,u),f=((m=u.match(/\[(.*?)\]/))==null?void 0:m[1])||"";c.includes(f)&&(h.x+=16),s.push(h)});const l=Array.from(r==null?void 0:r.querySelectorAll(".labelBox")),a=Array.from(r==null?void 0:r.querySelectorAll(".labelText"));return l.forEach((d,u)=>{var g;const h=((g=a[u])==null?void 0:g.textContent)||"",f=W(d,"rectangle",{label:{text:h}});f.strokeColor="#adb5bd",f.bgColor="#e9ecef",f.width=void 0,i.push(f)}),{lines:n,texts:s,nodes:i}},wr=t=>{const r=Array.from(t.querySelectorAll(".rect")).filter(n=>{var s;return((s=n.parentElement)==null?void 0:s.tagName)!=="g"}),e=[];return r.forEach(n=>{const s=W(n,"rectangle",{label:{text:""},subtype:"highlight"});e.push(s)}),e},Tr=(t,r)=>{const e=t.db,n=[],i=e.getBoxes().map(b=>({...b,fill:A(b.fill||"")})),o=wr(r),c=e.getActors(),{nodes:l,lines:a,actorMap:d}=Sr(c,r),u=e.getMessages(),h=xr(u,r,d),f=Ar(u,r),g=Er(r),m=kr(u,r);return n.push(o),n.push(...l),n.push(f),n.push(g),{type:"sequence",lines:a,arrows:h,nodes:n,loops:m,groups:i}},Cr=t=>{const r={};return t&&t.forEach(e=>{$(e).forEach(({property:n,value:s})=>{n&&s&&(r[n]=A(s))})}),r},ut={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3},Ht={LINE:0,DOTTED_LINE:1},Ut=16,Lr=t=>{let r;switch(t){case Ht.LINE:r="solid";break;case Ht.DOTTED_LINE:r="dotted";break;default:r="solid"}return r},Vt=t=>{let r;switch(t){case ut.AGGREGATION:r="diamond_outline";break;case ut.COMPOSITION:r="diamond";break;case ut.EXTENSION:r="triangle_outline";break;case"none":r=null;break;case ut.DEPENDENCY:default:r="arrow";break}return r},At=(t,r)=>{let e=0,n=0,s=t;for(;s&&s!==r;){const{transformX:i,transformY:o}=K(s);e+=i,n+=o,s=s.parentElement}return{tx:e,ty:n}},Kt=new Set(["triangle_outline","diamond","diamond_outline"]),be=(t,r=.5)=>{if(t.length<=2)return[...t];const e=[t[0]];for(let n=1;n<t.length-1;n++){const s=e[e.length-1],i=t[n],o=t[n+1],c=o.x-s.x,l=o.y-s.y,a=Math.hypot(c,l);if(!a)continue;const u=Math.abs(c*(i.y-s.y)-l*(i.x-s.x))/a,h=((i.x-s.x)*c+(i.y-s.y)*l)/(a*a);u<=r&&h>=-r&&h<=1+r||e.push(i)}return e.push(t[t.length-1]),e},me=t=>{const r=Ot(ue(t).map(n=>[n.x,n.y])).map(([n,s])=>({x:n,y:s})),e=_t(t);return e&&r.length>=2&&(r[0]={x:e.startX,y:e.startY},r[r.length-1]={x:e.endX,y:e.endY}),be(r)},Zt=(t,r,e)=>{const n=t.x-r.x,s=t.y-r.y,i=Math.hypot(n,s);return i?{x:t.x+n/i*e,y:t.y+s/i*e}:t},Ir=(t,r)=>{const e=Ot(r.map(i=>[i.x,i.y])).map(([i,o])=>({x:i,y:o}));if(e.length<2)throw new Error("Arrow route must contain at least two points");const n=e[0],s=e[e.length-1];t.startX=n.x,t.startY=n.y,t.endX=s.x,t.endY=s.y,t.points=e.map(i=>[i.x-n.x,i.y-n.y])},Or=t=>{var i;const r=(i=t.points)==null?void 0:i.map(([o,c])=>({x:t.startX+o,y:t.startY+c})).filter(o=>Number.isFinite(o.x)&&Number.isFinite(o.y));if(!r||r.length<2)return t;const e=[...r],n=!!t.startArrowhead&&Kt.has(t.startArrowhead),s=!!t.endArrowhead&&Kt.has(t.endArrowhead);if(!n&&!s)return t;if(n&&(e[0]=Zt(e[0],e[1],Ut)),s){const o=e.length-1;e[o]=Zt(e[o],e[o-1],Ut)}return Ir(t,e),t},_r=(t,r)=>{const e=A(t.getAttribute("stroke")||getComputedStyle(t).stroke||""),n=parseFloat(t.getAttribute("stroke-width")||getComputedStyle(t).strokeWidth||"1");Y(e)&&e!=="none"&&(r.strokeColor=e),Number.isFinite(n)&&n>0&&(r.strokeWidth=n)},Rr=t=>{const r=[];return t.forEach(e=>{me(e).forEach(n=>{const s=r[r.length-1];s&&s.x===n.x&&s.y===n.y||r.push(n)})}),be(r)},Se=(t,r,e)=>{if(t.length<2)throw new Error(`Class diagram edge ${(r==null?void 0:r.id)||"<unknown>"} is missing usable path points`);const n=t[0],s=t[t.length-1],i=Pt(n.x,n.y,s.x,s.y,{id:(r==null?void 0:r.getAttribute("data-id"))||(r==null?void 0:r.id)||void 0,...e,points:t.map(o=>[o.x-n.x,o.y-n.y])});return r&&_r(r,i),Or(i)},xe=(t,r)=>Se(Rr(t),t[0],r),Nr=(t,r)=>{const e=me(t);return Se([e[0],e[e.length-1]],t,r)},Dr=(t,r)=>xe([t],r),Pr=(t,r)=>[`${t}-cyclic-special-1`,`${t}-cyclic-special-mid`,`${t}-cyclic-special-2`].map(n=>r.querySelector(`path[id="${n}"][data-edge="true"]`)).filter(n=>n!==null),$r=t=>{var r;return((r=t.points)==null?void 0:r.map(([e,n])=>({x:t.startX+e,y:t.startY+n})).filter(e=>Number.isFinite(e.x)&&Number.isFinite(e.y)))||[]},Jt=(t,r)=>{const e=$r(t);if(e.length<2)return null;const n=r==="start",s=n?e[0]:e[e.length-1],i=n?e[1]:e[e.length-2],o=i.x===s.x?n?-1:1:Math.sign(i.x-s.x),c=i.y===s.y?1:Math.sign(i.y-s.y);return{x:s.x+o*20,y:s.y+(c>=0?12:-28)}},Yr=(t,r)=>{let e=t;for(;e&&e!==r;){if(e.classList.contains("annotation-group")||e.classList.contains("label-group"))return"header";if(e.classList.contains("members-group"))return"members";if(e.classList.contains("methods-group"))return"methods";e=e.parentElement}return"other"},vr=(t,r,e)=>{const n=[],s=[],i=[];return Object.values(t).forEach(o=>{var Ft;const{domId:c,id:l}=o,a=P(),d=Cr(o.styles||o.cssStyles);let u;try{u=e?e(l):void 0}catch{u=void 0}const h=x=>{const k=new RegExp(`^classId-${x}(?:-|$)`);return Array.from(r.querySelectorAll("[id]")).filter(q=>k.test(q.id))[0]},f=u&&r.querySelector(`#${u}`)||r.querySelector(`#${c}`)||r.querySelector(`[data-id='${l}']`)||h(l);if(!f)throw Error(`DOM Node with id ${c} not found`);const g=f.querySelector("rect")||f,m=g.getBBox(),{tx:b,ty:p}=At(g,r),y={type:"rectangle",id:l,groupId:a,x:m.x+b,y:m.y+p,width:m.width,height:m.height,metadata:{classId:l}},S=g.getAttribute("fill"),O=g.getAttribute("stroke"),w=g.getAttribute("stroke-width"),L=g.getAttribute("stroke-dasharray"),T=getComputedStyle(g),C=A(S||d.fill||(S?T.fill:"")),I=A(O||d.stroke||(O?T.stroke:"")),_=w||d["stroke-width"]||(w?T.strokeWidth:""),F=L||d["stroke-dasharray"]||(L?T.strokeDasharray==="none"?"":T.strokeDasharray:""),vt=x=>{if(!x||!Y(x))return!1;const k=x.toLowerCase();return!(k==="none"||k==="transparent"||k==="rgba(0, 0, 0, 0)"||k==="black"||k==="#000"||k==="#000000"||k==="rgb(0, 0, 0)"||k==="rgba(0, 0, 0, 1)")};vt(C)?y.bgColor=C:y.bgColor=void 0,vt(I)?y.strokeColor=I:y.strokeColor=void 0,_?y.strokeWidth=Number(_):y.strokeWidth=void 0,F&&F.trim().length>0?y.strokeStyle="dashed":y.strokeStyle=void 0,n.push(y),[...Array.from(f.querySelectorAll("line")),...Array.from(f.querySelectorAll("g.divider path"))].forEach(x=>{const{tx:k,ty:j}=At(x,r);let q,v,Q,N;if(x.tagName.toLowerCase()==="line")q=Number(x.getAttribute("x1"))+k,v=Number(x.getAttribute("y1"))+j,Q=Number(x.getAttribute("x2"))+k,N=Number(x.getAttribute("y2"))+j;else{const B=x.getBBox();q=B.x+k,Q=B.x+B.width+k;const G=B.y+B.height/2+j;v=G,N=G}if(q===Q&&v===N)return;const M=at(x,q,v,Q,N,{groupId:a,id:P()});y.strokeColor?M.strokeColor=y.strokeColor:M.strokeColor=void 0,y.strokeWidth!==void 0?M.strokeWidth=y.strokeWidth:M.strokeWidth=void 0,y.strokeStyle?M.strokeStyle=y.strokeStyle:M.strokeStyle=void 0,M.metadata={classId:l},s.push(M)});const ke=Array.from(f.querySelectorAll("text, foreignObject")),J=[];ke.forEach(x=>{var B;const k=x.tagName.toLowerCase()==="foreignobject",j=k?[]:Array.from(x.querySelectorAll("tspan")),q=j.length?j.map(G=>{var Mt;return(Mt=G.textContent)==null?void 0:Mt.trim()}).filter(Boolean).join(`
15
+ `):((B=x.textContent)==null?void 0:B.trim())||"";if(!q)return;const v=x.getBBox(),{ty:Q}=At(x,r);let N=parseFloat(getComputedStyle(x).fontSize||"");if(k&&(!Number.isFinite(N)||!N)){const G=x.querySelector("div, span, p");G&&(N=parseFloat(getComputedStyle(G).fontSize||""))}(!Number.isFinite(N)||N<=0)&&(N=Math.max(12,v.height*.6)),N=N*.9;const M=Rt(x,d.color);J.push({section:Yr(x,f),text:D(q),x:v.x,y:v.y+Q,width:y&&y.width?Math.max(y.width-8,v.width):v.width,height:v.height,fontSize:N,color:M})});const pt=J.filter(x=>x.section==="header").sort((x,k)=>x.y-k.y||x.x-k.x);if(!y.label){const x=pt.length===0&&J.length===1?J:pt;x.length>0&&(y.label={text:x.map(k=>k.text).join(`
16
+ `),fontSize:Math.max(...x.map(k=>k.fontSize)),color:(Ft=x.find(k=>k.color))==null?void 0:Ft.color,verticalAlign:"top"})}J.filter(x=>pt.length>0?x.section!=="header":!(y.label&&J.length===1)).forEach(x=>{const k=yt(((y==null?void 0:y.x)||0)+4,x.y,x.text,{width:x.width,height:x.height,fontSize:x.fontSize,color:x.color,id:P(),groupId:a,metadata:{classId:l}});i.push(k)})}),{nodes:n,lines:s,text:i}},Fr=(t,r,e,n)=>{const s=Array.from(e.querySelectorAll('.edgePaths path[data-edge="true"]:not([id^="edgeNote"]):not([id*="-cyclic-special-"])'));if(t.length===0)return{arrows:[],text:[]};const i=[],o=[];let c=0;return t.forEach(l=>{const{id1:a,id2:d,relation:u}=l,h=r.find(_=>_.id===a),f=r.find(_=>_.id===d);if(!h)throw new Error(`parseRelations: Cannot find node with id ${a}`);if(!f)throw new Error(`parseRelations: Cannot find node with id ${d}`);const g=Lr(u.lineType),m=Vt(u.type1),b=Vt(u.type2);let p;if(a===d){const _=Pr(a,e);if(!_.length)throw new Error(`parseRelations: Cannot find rendered SVG edge for relation ${a} -> ${d}`);p=xe(_,{strokeStyle:g,startArrowhead:m,endArrowhead:b,label:l.title?{text:l.title}:void 0,start:{type:"rectangle",id:h.id},end:{type:"rectangle",id:f.id}})}else{const _=s[c];if(!_)throw new Error(`parseRelations: Cannot find rendered SVG edge for relation ${a} -> ${d}`);c+=1,p=Nr(_,{strokeStyle:g,startArrowhead:m,endArrowhead:b,label:l.title?{text:l.title}:void 0,start:{type:"rectangle",id:h.id},end:{type:"rectangle",id:f.id}})}i.push(p);const{relationTitle1:y,relationTitle2:S}=l,O=a===d,w=20,L=15,T=15;let C,I;if(y&&y!=="none"){if(O){const F=Jt(p,"start");F&&(C=F.x,I=F.y)}else switch(n){case"TB":C=p.startX-w,p.endX<p.startX&&(C-=T),I=p.startY+L;break;case"BT":C=p.startX+w,p.endX>p.startX&&(C+=T),I=p.startY-L;break;case"LR":C=p.startX+w,I=p.startY+L,p.endY>p.startY&&(I+=T);break;case"RL":C=p.startX-w,I=p.startY-L,p.startY>p.endY&&(I-=T);break;default:C=p.startX-w,I=p.startY+L}C??(C=p.startX-w),I??(I=p.startY+L);const _=yt(C,I,y,{fontSize:16});o.push(_)}if(S&&S!=="none"){if(O){const F=Jt(p,"end");F&&(C=F.x,I=F.y)}else switch(n){case"TB":C=p.endX+w,p.endX<p.startX&&(C+=T),I=p.endY-L;break;case"BT":C=p.endX-w,p.endX>p.startX&&(C-=T),I=p.endY+L;break;case"LR":C=p.endX-w,I=p.endY-L,p.endY>p.startY&&(I-=T);break;case"RL":C=p.endX+w,I=p.endY+L,p.startY>p.endY&&(I+=T);break;default:C=p.endX+w,I=p.endY-L}C??(C=p.endX+w),I??(I=p.endY+L);const _=yt(C,I,S,{fontSize:16});o.push(_)}}),{arrows:i,text:o}},Mr=(t,r,e)=>{const n=[],s=[];return t.forEach((i,o)=>{const{id:c,text:l,class:a}=i,d=r.querySelector(`#${c}`);if(!d)throw new Error(`Node with id ${c} not found!`);const{transformX:u,transformY:h}=K(d),f=d.firstChild,g=W(f,"rectangle",{id:c,subtype:"note",label:{text:l}});if(Object.assign(g,{x:g.x+u,y:g.y+h}),n.push(g),a){const m=e.find(L=>L.id===a);if(!m)throw new Error(`class node with id ${a} not found!`);const b=r.querySelector(`path[id="edgeNote${o+1}"][data-edge="true"]`);if(b){s.push(Dr(b,{strokeStyle:"dotted",startArrowhead:null,endArrowhead:null,start:{id:g.id,type:"rectangle"},end:{id:m.id,type:"rectangle"}}));return}const p=g.x+(g.width||0)/2,y=g.y+(g.height||0),S=p,O=m.y,w=Pt(p,y,S,O,{strokeStyle:"dotted",startArrowhead:null,endArrowhead:null,start:{id:g.id,type:"rectangle"},end:{id:m.id,type:"rectangle"}});s.push(w)}}),{notes:n,connectors:s}},Xr=(t,r)=>{var p,y,S,O,w;const e=t.db,n=((p=e.getDirection)==null?void 0:p.call(e))||"TB",s=[],i=[],o=[],c=[],l=((y=e.getNamespaces)==null?void 0:y.call(e))||[],a=((S=e.getClasses)==null?void 0:S.call(e))||{},d=a instanceof Map?Object.fromEntries(a):a;if(d&&Object.keys(d).length){const L=typeof e.lookUpDomId=="function"?e.lookUpDomId.bind(e):void 0,T=vr(d,r,L);s.push(T.nodes),i.push(...T.lines),o.push(...T.text),c.push(...T.nodes)}const u=((O=e.getRelations)==null?void 0:O.call(e))||[],{arrows:h,text:f}=Fr(u,c,r,n),g=((w=e.getNotes)==null?void 0:w.call(e))||[],{notes:m,connectors:b}=Mr(g,r,c);return s.push(m),h.push(...b),o.push(...f),{type:"class",nodes:s,lines:i,arrows:h,text:o,namespaces:l}},Qt=18,qr=t=>{const r={};return t&&t.forEach(e=>{$(e).forEach(({property:n,value:s})=>{n&&s&&(r[n]=A(s))})}),r},Wr=t=>{if(t==null||t==="")return;const r=typeof t=="number"?t:parseFloat(A(t));if(!(!Number.isFinite(r)||r<=0))return r},$t=(t,r)=>{let e=0,n=0,s=t;for(;s&&s!==r;){const{transformX:i,transformY:o}=K(s);e+=i,n+=o,s=s.parentElement}return{tx:e,ty:n}},Br=t=>{var n;const r=Array.from(t.querySelectorAll("tspan")),e=r.length?r.map(s=>{var i;return(i=s.textContent)==null?void 0:i.trim()}).filter(Boolean).join(`
17
+ `):((n=t.textContent)==null?void 0:n.trim())||"";return D(e)},zr=t=>{const r=t.querySelector("text, foreignObject, div, span, p")||t;let e=parseFloat(getComputedStyle(r).fontSize||"");return(!Number.isFinite(e)||e<=0)&&(e=Math.max(12,t.getBBox().height*.75)),e},jr=(t,r,e)=>{const n=Br(t);if(!n)return null;const s=t.getBBox(),{tx:i,ty:o}=$t(t,r);return{className:t.getAttribute("class")||"",text:n,x:s.x+i,y:s.y+o,width:s.width,height:s.height,fontSize:zr(t),color:Rt(t,e)}},Gr=(t,r,e,n,s,i,o)=>{const{tx:c,ty:l}=$t(t,r);let a=0,d=0,u=0,h=0;if(t.tagName.toLowerCase()==="line")a=Number(t.getAttribute("x1"))+c,d=Number(t.getAttribute("y1"))+l,u=Number(t.getAttribute("x2"))+c,h=Number(t.getAttribute("y2"))+l;else{const g=_t(t);if(!g)return null;a=g.startX+c,d=g.startY+l,u=g.endX+c,h=g.endY+l}const f={type:"line",id:P(),groupId:e,startX:a,startY:d,endX:u,endY:h,metadata:{entityId:n}};return s&&Y(s)&&s!=="none"&&(f.strokeColor=s),i!==void 0&&(f.strokeWidth=i),o&&(f.strokeStyle=o),f},te=t=>{switch(t==null?void 0:t.toLowerCase()){case"one":return"cardinality_one";case"many":return"cardinality_many";case"only_one":return"cardinality_exactly_one";case"one_or_more":return"cardinality_one_or_many";case"zero_or_one":return"cardinality_zero_or_one";case"zero_or_more":return"cardinality_zero_or_many";default:return null}},Hr=t=>{switch(t){case"dotted":return"dotted";case"dashed":return"dashed";default:return"solid"}},Ur=(t,r)=>{const e=r.querySelector(`path[id="${t.id}"][data-edge="true"]`);return e?[e]:t.start!==t.end?[]:[`${t.start}-cyclic-special-1`,`${t.start}-cyclic-special-mid`,`${t.start}-cyclic-special-2`].map(s=>r.querySelector(`path[id="${s}"][data-edge="true"]`)).filter(s=>s!==null)},Vr=t=>{const r=[];return t.forEach(e=>{ue(e).forEach(n=>{const s=r[r.length-1];s&&s.x===n.x&&s.y===n.y||r.push(n)})}),r},Kr=(t,r)=>{const e=r.querySelector(`[id="${t.id}"]`);if(!e)throw new Error(`ER entity ${t.id} not found in rendered SVG`);const n=t.attributes.length?P():void 0,s=e.getBBox(),{tx:i,ty:o}=$t(e,r),c=qr([...t.cssStyles||[],...t.cssCompiledStyles||[]]),l=A(c.fill||""),a=A(c.stroke||""),d=Wr(c["stroke-width"]),u=A(c["stroke-dasharray"]||""),h=Array.from(e.querySelectorAll("g.label")).map(S=>jr(S,r,c.color)).filter(S=>S!==null),f=h.find(S=>S.className.includes("name"))||h[0],g=h.filter(S=>S!==f),m=(f==null?void 0:f.text)||D(t.alias||t.label||""),b={type:"rectangle",id:t.id,groupId:n,x:s.x+i,y:s.y+o,width:s.width,height:s.height,label:{text:m,fontSize:t.attributes.length?Qt:(f==null?void 0:f.fontSize)||16,color:f==null?void 0:f.color,textAlign:"center",verticalAlign:t.attributes.length?"top":"middle"},metadata:{entityId:t.id,entityLabel:t.label,entityAlias:t.alias}};Y(l)&&l!=="none"&&(b.bgColor=l),Y(a)&&a!=="none"&&(b.strokeColor=a),d&&Number.isFinite(d)&&d>0&&(b.strokeWidth=d),u&&u!=="none"&&(b.strokeStyle="dashed");const p=Array.from(e.querySelectorAll(".divider path, path.divider, line.divider")).map(S=>Gr(S,r,n,t.id,b.strokeColor,b.strokeWidth,b.strokeStyle)).filter(S=>S!==null),y=g.map(S=>yt(S.x,S.y,S.text,{id:P(),groupId:n,width:S.width,height:S.height,fontSize:Qt,color:S.color,metadata:{entityId:t.id}}));return{container:b,lines:p,text:y}},Zr=(t,r)=>{const e=Ur(t,r);if(!e.length)throw new Error(`ER relationship ${t.id} not found in rendered SVG`);const n=Vr(e);if(n.length<2)throw new Error(`ER relationship ${t.id} is missing usable path points`);const s=n[0],i=n[n.length-1],o=e[0],c=A(o.getAttribute("stroke")||getComputedStyle(o).stroke||""),l=Number(o.getAttribute("stroke-width")||getComputedStyle(o).strokeWidth||1),a=Pt(s.x,s.y,i.x,i.y,{id:t.id,label:t.label?{text:D(t.label),fontSize:16,textAlign:"center"}:void 0,strokeStyle:Hr(t.pattern),startArrowhead:te(t.arrowTypeStart),endArrowhead:te(t.arrowTypeEnd),start:{type:"rectangle",id:t.start},end:{type:"rectangle",id:t.end},points:n.map(d=>[d.x-s.x,d.y-s.y])});return Y(c)&&c!=="none"&&(a.strokeColor=c),Number.isFinite(l)&&l>0&&(a.strokeWidth=l),a},Jr=(t,r)=>{const e=t.getData(),n=e.nodes,s=e.edges,i=[],o=[],c=[];n.forEach(a=>{const d=Kr(a,r);i.push(d.container),o.push(...d.lines),c.push(...d.text)});const l=s.map(a=>Zr(a,r));return{type:"erd",nodes:[i],lines:o,arrows:l,text:c}},Z=t=>{const r=A(t||"");return!r||r==="none"||r==="transparent"||r==="rgba(0, 0, 0, 0)"||r==="rgba(0,0,0,0)"?!1:Y(r)},Ae=(t,r,e)=>{switch(r){case E.FILL:case E.STROKE:Z(e)&&(t[r]=A(e));break;case E.STROKE_WIDTH:case E.STROKE_DASHARRAY:A(e)&&(t[r]=A(e));break}},Ee=(t,r,e)=>{r===R.COLOR&&Z(e)&&(t[R.COLOR]=A(e))},Qr=(t,r,e)=>{t&&$(t).forEach(({property:n,value:s})=>{Ae(r,n,s),Ee(e,n,s)})},tn=(t,r)=>{t&&$(t).forEach(({property:e,value:n})=>{if(e===E.FILL&&Z(n)){r[R.COLOR]=A(n);return}Ee(r,e,n)})},en=t=>{const r=new Set;return t.filter(Boolean).forEach(e=>{$(e||"").forEach(({property:n})=>{r.add(n)})}),r},rn=(t,r,e)=>{if(!t)return;[[E.FILL,t.getAttribute("fill")],[E.STROKE,t.getAttribute("stroke")],[E.STROKE_WIDTH,t.getAttribute("stroke-width")],[E.STROKE_DASHARRAY,t.getAttribute("stroke-dasharray")]].forEach(([s,i])=>{if(!e.has(s)||r[s])return;const o=A(i||"");o&&Ae(r,s,o)})},nn=(t,r,e)=>{if(!t)return;const n=[t,...Array.from(t.querySelectorAll("text, foreignObject, div, span, p"))];for(const s of n){if(r[R.COLOR]||(e.has(R.COLOR)||e.has(E.FILL))&&(tn(s.getAttribute("style"),r),r[R.COLOR]))break;const i=A(s.getAttribute("fill")||s.getAttribute("color")||"");(e.has(R.COLOR)||e.has(E.FILL))&&Z(i)&&(r[R.COLOR]=i)}},Yt=(t,r)=>{let e=0,n=0,s=t;for(;s&&s!==r;){const{transformX:i,transformY:o}=K(s);e+=i,n+=o,s=s.parentElement}return{tx:e,ty:n}},sn=(t,r)=>{const e=t.getBBox(),{tx:n,ty:s}=Yt(t,r);return{x:e.x+n,y:e.y+s,width:e.width,height:e.height}},on=(t,r)=>{const e=t.querySelector("line.divider");if(!e)return;const{tx:n,ty:s}=Yt(e,r);return{startX:Number(e.getAttribute("x1"))+n,startY:Number(e.getAttribute("y1"))+s,endX:Number(e.getAttribute("x2"))+n,endY:Number(e.getAttribute("y2"))+s}},an=t=>{const r=t.getBBox();return Math.abs(r.width*r.height)},ee=(t,r)=>{const e=t.getAttribute("style");if(!e)return;const n=$(e).find(s=>s.property===r);if(n)return A(n.value)},Ct=(t,r)=>{const e=t.map(s=>({element:s,area:an(s)})).filter(({area:s})=>Number.isFinite(s)&&s>0);return e.length===0?null:e.sort((s,i)=>r==="largest"?i.area-s.area:s.area-i.area)[0].element},cn=(t,r)=>{if(!t||!r.has(E.FILL)&&!r.has(E.STROKE))return;const e=A(t.getAttribute("fill")||ee(t,E.FILL)||""),n=A(t.getAttribute("stroke")||ee(t,E.STROKE)||"");if(Z(e))return e;if(Z(n))return n},ln=(t,r)=>{const e=Array.from(t.querySelectorAll("circle, ellipse, path")),n=Ct(e,"smallest");return cn(n,r)},dn=t=>{if(t.length<2)return t;const r=t.slice(1),e=r.filter(n=>n.trim().length>0).reduce((n,s)=>{var o;const i=((o=s.match(/^\s*/))==null?void 0:o[0].length)??0;return Math.min(n,i)},Number.POSITIVE_INFINITY);return!Number.isFinite(e)||e<=0?t.map(n=>n.trimEnd()):[t[0].trimEnd(),...r.map(n=>n.replace(new RegExp(`^\\s{0,${e}}`),"").trimEnd())]},un=t=>{const r=Array.isArray(t.label)?t.label.map(n=>D(n)):D(t.label||"").split(`
18
+ `);return dn(r).join(`
19
+ `)},hn=t=>t.description?(Array.isArray(t.description)?t.description:[t.description]).map(e=>D(e)).filter(e=>e.length>0):[],fn=t=>{const r=new Set,e=s=>(s&&r.add(s),s),n=s=>{const i=s.find(o=>!r.has(o));return e(i||null)};return s=>{const i=[`[id='${s.domId}']`,`[id='${s.id}']`,`[data-id='${s.id}']`];for(const o of i){const c=t.querySelector(o);if(c)return e(c)}switch(s.shape){case"divider":return n(Array.from(t.querySelectorAll("g.statediagram-cluster-alt")));case"stateStart":return n(Array.from(t.querySelectorAll("g.node.default")).filter(o=>o.querySelector("circle.state-start")));case"stateEnd":return n(Array.from(t.querySelectorAll("g.node.default")).filter(o=>!o.querySelector("circle.state-start")));default:return null}}},gn=(t,r)=>{switch(r){case"roundedWithTitle":return t.querySelector("rect.outer")||t.querySelector("rect")||t;case"divider":return t.querySelector("rect.divider")||t.querySelector("rect")||t;case"rectWithTitle":return t.querySelector("rect.outer")||t.querySelector("rect")||t;case"stateStart":return Ct(Array.from(t.querySelectorAll("circle, ellipse, path")),"largest")||t;case"stateEnd":return Ct(Array.from(t.querySelectorAll("circle, ellipse, path")),"largest")||t;case"choice":case"fork":case"join":case"note":case"rect":default:return t.querySelector("rect, path, circle, ellipse, polygon")||t}},yn=(t,r,e)=>{const n=e(t);if(!n)throw new Error(`State node element not found for "${t.id}"`);const s=gn(n,t.shape),i={},o={},c=[t.labelStyle,...t.cssCompiledStyles||[],...t.cssStyles||[]],l=en(c);c.filter(Boolean).forEach(d=>{Qr(d,i,o)}),rn(s,i,l),nn(n,o,l);const a=sn(s,r);return{id:t.id,shape:t.shape,text:un(t),description:hn(t),x:a.x,y:a.y,width:a.width,height:a.height,parentId:t.parentId,position:t.position,containerStyle:i,labelStyle:o,dividerLine:t.shape==="rectWithTitle"?on(n,r):void 0,endInnerColor:t.shape==="stateEnd"?ln(n,l):void 0,isRenderable:t.shape!=="noteGroup"}},pn=(t,r)=>{var a;const e=r.querySelector(`[id='${t.id}']`);if(!e)return null;const{tx:n,ty:s}=Yt(e,r),i=he(e,{x:n,y:s},"MCL");if(i.reflectionPoints.length<2)return null;const o={},c=(d,u)=>{switch(d){case E.STROKE:Z(u)&&(o.strokeColor=A(u));break;case E.STROKE_WIDTH:{const h=parseFloat(A(u));Number.isFinite(h)&&h>0&&(o.strokeWidth=h);break}case E.STROKE_DASHARRAY:A(u)&&(o.strokeStyle="dashed");break}};[t.style].filter(Boolean).forEach(d=>{$(d||"").forEach(({property:u,value:h})=>{c(u,h)})});const l=t.arrowhead==="none"||((a=t.classes)==null?void 0:a.includes("note-edge"));return{id:t.id,start:t.start,end:t.end,text:D(t.label||""),...i,strokeColor:o.strokeColor,strokeWidth:o.strokeWidth,strokeStyle:l?"dashed":o.strokeStyle,isNoteEdge:l}},bn=(t,r)=>{const{nodes:e,edges:n}=t.getData(),s=fn(r);return{type:"state",nodes:e.map(i=>yn(i,r,s)),edges:n.map(i=>pn(i,r)).filter(i=>i!==null)}};let re=Promise.resolve();const mn=t=>{const r=re.then(t,t);return re=r.then(()=>{},()=>{}),r};let ne=null,Sn=0;const xn=t=>JSON.stringify(t),se=t=>{const r=t.querySelector("svg");if(!r)throw new Error("SVG element not found");const e=r.getBoundingClientRect(),n=e.width,s=e.height;r.setAttribute("width",`${n}`),r.setAttribute("height",`${s}`);const i="image/svg+xml",o=unescape(encodeURIComponent(r.outerHTML)),l=`data:image/svg+xml;base64,${btoa(o)}`;return{type:"graphImage",mimeType:i,dataURL:l,width:n,height:s}},An=async(t,r=lt)=>mn(async()=>{var a,d;const e=((a=r.themeVariables)==null?void 0:a.fontSize)??lt.themeVariables.fontSize,n={...lt,...r,fontSize:e,themeVariables:{...lt.themeVariables,...r.themeVariables,fontSize:e}},s=xn(n);s!==ne&&(bt.initialize(n),ne=s);const i=await bt.mermaidAPI.getDiagramFromText(ar(t)),o=`mermaid-to-excalidraw-${Sn++}`,c=document.createElement("div");c.setAttribute("style","opacity: 0; position: fixed; z-index: -1; left: -99999px; top: -99999px;");const l=`${o}-container`;c.id=l,(d=document.getElementById(l))==null||d.remove(),document.body.appendChild(c);try{const{svg:u}=await bt.render(o,t,c);c.innerHTML=u;let h;try{switch(i.type){case"flowchart-v2":case"graph":{h=yr(i.db,c);break}case"sequence":{h=Tr(i,c);break}case"class":case"classDiagram":{h=Xr(i,c);break}case"er":{h=Jr(i.db,c);break}case"state":case"stateDiagram":{h=bn(i.db,c);break}default:h=se(c)}}catch(f){console.error("Error processing Mermaid diagram:",f),h=se(c)}return h}finally{c.remove()}}),wn=async(t,r)=>{var o;const e=r||{},n=parseInt(((o=e.themeVariables)==null?void 0:o.fontSize)??"")||ct,s=await An(t,{...e,themeVariables:{...e.themeVariables}});return ur(s,{fontSize:n})};export{wn as parseMermaidToExcalidraw};