@aalis/plugin-webui-client 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/assets/AuthorityPage-D8tM4Jkk.js +16 -0
  2. package/dist/assets/ConfirmDialog-DbV-E1Nd.js +1 -0
  3. package/dist/assets/{DynamicPage-CNJTcLnN.js → DynamicPage-C3r8FUPm.js} +1 -1
  4. package/dist/assets/{FilesPage-BDkXMn2Z.js → FilesPage-BsecL1P2.js} +1 -1
  5. package/dist/assets/MarketplacePage-BeKSN-rv.js +6 -0
  6. package/dist/assets/{PlatformPage-69hFZKZQ.js → PlatformPage-COs5JjPE.js} +1 -1
  7. package/dist/assets/PluginConfigPage-D2LUENTd.js +23 -0
  8. package/dist/assets/{SessionsPage-UesoGK-U.js → SessionsPage-BSXA8zsW.js} +1 -1
  9. package/dist/assets/{arc-C1C8ofUu.js → arc-BcIO9BfO.js} +1 -1
  10. package/dist/assets/{architectureDiagram-3BPJPVTR-8ItpcM0M.js → architectureDiagram-3BPJPVTR-Ckgcj3C6.js} +1 -1
  11. package/dist/assets/{blockDiagram-GPEHLZMM-e278UOZ1.js → blockDiagram-GPEHLZMM-DUJAGy-V.js} +1 -1
  12. package/dist/assets/{c4Diagram-AAUBKEIU-zEn3CuR9.js → c4Diagram-AAUBKEIU-2O4dZC2J.js} +1 -1
  13. package/dist/assets/channel-Rk2mElPG.js +1 -0
  14. package/dist/assets/{chunk-2J33WTMH-BRSV8jER.js → chunk-2J33WTMH-raYd61X4.js} +1 -1
  15. package/dist/assets/{chunk-4BX2VUAB-DQe5s5lD.js → chunk-4BX2VUAB-yyQO-yMR.js} +1 -1
  16. package/dist/assets/{chunk-55IACEB6-CC6IKjNG.js → chunk-55IACEB6-CFywrQV5.js} +1 -1
  17. package/dist/assets/{chunk-727SXJPM-DW7QtRdS.js → chunk-727SXJPM-BuMVJVk6.js} +1 -1
  18. package/dist/assets/{chunk-AQP2D5EJ-BmZhrldk.js → chunk-AQP2D5EJ-Cf22e-wI.js} +1 -1
  19. package/dist/assets/{chunk-FMBD7UC4-DdCUM4gd.js → chunk-FMBD7UC4-BQAwLV2v.js} +1 -1
  20. package/dist/assets/{chunk-ND2GUHAM-mCIgZWkP.js → chunk-ND2GUHAM-DoDWTieE.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-CbOaIP_o.js → chunk-QZHKN3VN-CHYdElx3.js} +1 -1
  22. package/dist/assets/classDiagram-4FO5ZUOK-CuD8LqLR.js +1 -0
  23. package/dist/assets/classDiagram-v2-Q7XG4LA2-CuD8LqLR.js +1 -0
  24. package/dist/assets/{clock-C78cKfEH.js → clock-C13OxDcQ.js} +1 -1
  25. package/dist/assets/{cose-bilkent-S5V4N54A-JG-g7yO6.js → cose-bilkent-S5V4N54A-BDhJ5StZ.js} +1 -1
  26. package/dist/assets/{dagre-BM42HDAG-WsBIHgG6.js → dagre-BM42HDAG-CZHlqrZg.js} +1 -1
  27. package/dist/assets/{diagram-2AECGRRQ-BRWYjjQ4.js → diagram-2AECGRRQ-B18MLe8Z.js} +1 -1
  28. package/dist/assets/{diagram-5GNKFQAL-BytqVEJ-.js → diagram-5GNKFQAL-Bxuqyrbt.js} +1 -1
  29. package/dist/assets/{diagram-KO2AKTUF-hb8rpL1j.js → diagram-KO2AKTUF-DzYO6txa.js} +1 -1
  30. package/dist/assets/{diagram-LMA3HP47-xy7p2Dua.js → diagram-LMA3HP47-BTdo9KPv.js} +1 -1
  31. package/dist/assets/{diagram-OG6HWLK6-C8Xsbb2D.js → diagram-OG6HWLK6-DuRqHpgf.js} +1 -1
  32. package/dist/assets/{erDiagram-TEJ5UH35-CmPUjEAN.js → erDiagram-TEJ5UH35-BQTIyY-f.js} +1 -1
  33. package/dist/assets/{flowDiagram-I6XJVG4X-CyA6TsIo.js → flowDiagram-I6XJVG4X-CdVtB4GR.js} +1 -1
  34. package/dist/assets/{ganttDiagram-6RSMTGT7-DFyQ0_Fc.js → ganttDiagram-6RSMTGT7-C7HBiJ6w.js} +1 -1
  35. package/dist/assets/{gitGraphDiagram-PVQCEYII-B-Vn7-Dr.js → gitGraphDiagram-PVQCEYII-DOIMmzt3.js} +1 -1
  36. package/dist/assets/{globe-Kcd-3YqI.js → globe-CmrIFzvQ.js} +1 -1
  37. package/dist/assets/index-BmSmi5hw.js +207 -0
  38. package/dist/assets/{index-CaU2rCNv.css → index-EjEFcXcf.css} +1 -1
  39. package/dist/assets/{infoDiagram-5YYISTIA-DWqAc1XU.js → infoDiagram-5YYISTIA-Bt9ytkbK.js} +1 -1
  40. package/dist/assets/{ishikawaDiagram-YF4QCWOH-BMYuTloU.js → ishikawaDiagram-YF4QCWOH-Cv4Z-Yx7.js} +1 -1
  41. package/dist/assets/{journeyDiagram-JHISSGLW-nlNlTZ17.js → journeyDiagram-JHISSGLW-BP5fVFGk.js} +1 -1
  42. package/dist/assets/{kanban-definition-UN3LZRKU-faJtQP8n.js → kanban-definition-UN3LZRKU-D6NKAn15.js} +1 -1
  43. package/dist/assets/{linear-BEHw4aep.js → linear-sOj0r-nV.js} +1 -1
  44. package/dist/assets/{mermaid.core-CdhXQnZd.js → mermaid.core-DRBjcUv6.js} +4 -4
  45. package/dist/assets/{mindmap-definition-RKZ34NQL-CceAdb-a.js → mindmap-definition-RKZ34NQL-DY9ZVZYO.js} +1 -1
  46. package/dist/assets/{pieDiagram-4H26LBE5-BlgRYzJ4.js → pieDiagram-4H26LBE5-BFHJPE_0.js} +1 -1
  47. package/dist/assets/{quadrantDiagram-W4KKPZXB-Af7PyAAW.js → quadrantDiagram-W4KKPZXB-CB7WGOU4.js} +1 -1
  48. package/dist/assets/{requirementDiagram-4Y6WPE33-VO1Y3hfL.js → requirementDiagram-4Y6WPE33-1Vfe3_sr.js} +1 -1
  49. package/dist/assets/{sankeyDiagram-5OEKKPKP-DfiQjgmw.js → sankeyDiagram-5OEKKPKP-TmuLSXwo.js} +1 -1
  50. package/dist/assets/{sequenceDiagram-3UESZ5HK-CerqLOrN.js → sequenceDiagram-3UESZ5HK-YvTQKyOr.js} +1 -1
  51. package/dist/assets/{stateDiagram-AJRCARHV-BKoCD-3C.js → stateDiagram-AJRCARHV-CKfFj6XP.js} +1 -1
  52. package/dist/assets/{stateDiagram-v2-BHNVJYJU-D3J-8YEh.js → stateDiagram-v2-BHNVJYJU-zUKSxMr4.js} +1 -1
  53. package/dist/assets/{timeline-definition-PNZ67QCA-B2VNsLMh.js → timeline-definition-PNZ67QCA-CngO2jjJ.js} +1 -1
  54. package/dist/assets/{vennDiagram-CIIHVFJN-DjijEYHv.js → vennDiagram-CIIHVFJN-DURn8ESK.js} +1 -1
  55. package/dist/assets/{wardley-L42UT6IY-D5JprGQD.js → wardley-L42UT6IY-BKa-ecG2.js} +1 -1
  56. package/dist/assets/{wardleyDiagram-YWT4CUSO-D5-MQMdk.js → wardleyDiagram-YWT4CUSO-C6V3F7Mg.js} +1 -1
  57. package/dist/assets/{xychartDiagram-2RQKCTM6-D4As0A0v.js → xychartDiagram-2RQKCTM6-VniDsYL5.js} +1 -1
  58. package/dist/index.html +2 -2
  59. package/package.json +10 -10
  60. package/dist/assets/AuthorityPage-BM4HipXP.js +0 -12
  61. package/dist/assets/MarketplacePage-pv_YtVO7.js +0 -18
  62. package/dist/assets/PluginConfigPage-C40cz0di.js +0 -23
  63. package/dist/assets/channel-LERG0Vbd.js +0 -1
  64. package/dist/assets/classDiagram-4FO5ZUOK-CjC5-lNd.js +0 -1
  65. package/dist/assets/classDiagram-v2-Q7XG4LA2-CjC5-lNd.js +0 -1
  66. package/dist/assets/index-CAL5qre3.js +0 -207
@@ -1 +1 @@
1
- *{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0f14;--bg-secondary: #16161e;--surface: #1c1c28;--surface-hover: #24243a;--surface-active: #2a2a42;--primary: #7c6ff7;--primary-hover: #6b5ce6;--primary-glow: rgba(124, 111, 247, .12);--accent: #48c78e;--danger: #ff6b6b;--warning: #f0c060;--text: #e4e4ef;--text-secondary: #9a9ab8;--text-muted: #5e5e7e;--user-bg: #1e2a44;--assistant-bg: #1c1c2e;--border: #2a2a3e;--border-light: #35355a;--radius: 10px;--radius-lg: 14px;--nav-width: 52px;--nav-expanded: 180px;--header-height: 48px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}#root{height:100%}.app-layout{display:flex;height:100%}.nav-rail{width:var(--nav-width);min-width:var(--nav-width);background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20;transition:width var(--transition),min-width var(--transition);overflow:hidden}.nav-rail:hover{width:var(--nav-expanded);min-width:var(--nav-expanded)}body.is-dragging-chat .nav-rail:hover{width:var(--nav-width);min-width:var(--nav-width)}.nav-rail-top{display:flex;flex-direction:column;flex:1;padding:8px 6px;gap:2px}.nav-logo{width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;background:linear-gradient(135deg,var(--primary),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px;flex-shrink:0}.nav-item{display:flex;align-items:center;gap:10px;padding:0 10px;height:38px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all var(--transition);white-space:nowrap;overflow:hidden;position:relative}.nav-item:hover{color:var(--text);background:var(--surface-hover)}.nav-item.active{color:var(--text);background:var(--surface-active)}.nav-item.active:before{content:"";position:absolute;left:-6px;top:6px;bottom:6px;width:3px;background:var(--primary);border-radius:0 2px 2px 0}.nav-item-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.nav-item-svg{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.nav-item-svg svg{width:20px;height:20px}.nav-item-label{font-size:.8rem;font-weight:500;opacity:0;transition:opacity var(--transition);display:flex;flex-direction:column;align-items:center;line-height:1.2}.nav-item-plugin-name{font-size:.6rem;font-weight:400;color:var(--text-muted);opacity:.7}.nav-rail:hover .nav-item-label{opacity:1}.nav-rail-bottom{padding:12px 6px;display:flex;justify-content:center}.nav-status{width:10px;height:10px;border-radius:50%}.nav-status.online{background:var(--accent);box-shadow:0 0 8px #48c78e80}.nav-status.offline{background:var(--danger);box-shadow:0 0 8px #ff6b6b80}.content-area{flex:1;display:flex;flex-direction:column;min-width:280px;overflow:hidden}.content-header{display:flex;align-items:center;gap:12px;padding:10px 24px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.content-title{font-size:.92rem;font-weight:600;flex:1;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.content-user{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.content-user-level{padding:1px 6px;border:1px solid var(--border);border-radius:999px;font-size:11px;opacity:.85}.content-body{flex:1;overflow:hidden;position:relative}.page-content{padding:20px 28px;overflow-y:auto;overflow-x:hidden;height:100%;animation:page-fade .25s ease}.section-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:24px;margin-bottom:10px}.section-label:first-child{margin-top:0}.empty-hint{color:var(--text-muted);font-size:.82rem}.page-content::-webkit-scrollbar{width:5px}.page-content::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}.overview-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.overview-card:hover{border-color:var(--border-light)}.overview-card-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0}.overview-card-body{min-width:0}.overview-card-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.overview-card-value{font-size:1rem;font-weight:700;color:var(--text)}.status-dot-lg{display:inline-block;width:12px;height:12px;border-radius:50%}.status-dot-lg.online{background:var(--accent);box-shadow:0 0 6px #48c78e66}.status-dot-lg.offline{background:var(--danger);box-shadow:0 0 6px #ff6b6b66}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:24px}.service-slot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color var(--transition)}.service-slot-card:hover{border-color:var(--border-light)}.service-slot-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.service-slot-header-badges{display:flex;align-items:center;gap:6px}.service-slot-name{font-size:.92rem;font-weight:700;color:var(--text)}.service-slot-select-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.service-slot-label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.service-select{flex:1;min-width:0;padding:5px 10px;font-size:.78rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none;cursor:pointer;min-width:140px;transition:border-color var(--transition)}.service-select:focus{border-color:var(--primary)}.service-clear-prefer{padding:4px 8px;font-size:.72rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.service-clear-prefer:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.service-clear-prefer:disabled{opacity:.5;cursor:not-allowed}.service-slot-single{display:flex;align-items:center;gap:8px}.service-slot-provider-name{font-size:.8rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-slot-context-id{font-weight:400;color:var(--text-muted);font-size:.72rem}.service-slot-caps{margin-top:8px}.service-provider-row{padding:6px 0;border-top:1px solid var(--border)}.service-provider-row:first-child,.service-provider-row.winner{border-top:none}.service-provider-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.service-provider-name{font-size:.85rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-provider-meta{display:flex;gap:8px;align-items:center;margin-top:2px}.service-priority{font-size:.7rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;background:var(--bg);padding:1px 6px;border-radius:4px;border:1px solid var(--border)}.service-router-badge{font-size:.68rem;background:#6366f11f;color:#6366f1;border:1px solid rgba(99,102,241,.35);padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge.preferred{background:#eab30826;color:#ca8a04;border:1px solid rgba(234,179,8,.4)}.service-winner-badge.default{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.service-prefer-btn{background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 4px;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center}.service-prefer-btn:hover:not(:disabled){background:var(--bg);color:var(--text)}.service-prefer-btn.preferred{color:#ca8a04}.service-prefer-btn:disabled{cursor:wait;opacity:.5}.service-slot-toggle{margin-top:8px;background:transparent;border:none;padding:4px 0;cursor:pointer;color:var(--text-secondary);font-size:.78rem;display:inline-flex;align-items:center;gap:4px}.service-slot-toggle:hover{color:var(--text)}.service-slot-rest{margin-top:6px}.tools-grid{display:flex;flex-wrap:wrap;gap:6px}.marketplace-install-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.marketplace-install-input{flex:1;padding:6px 10px;background:var(--bg-light);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;outline:none}.marketplace-install-input:focus{border-color:var(--accent)}.marketplace-plugin-list{display:flex;flex-direction:column;gap:8px}.page-marketplace{display:flex;flex-direction:column;align-items:stretch}.marketplace-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;align-items:start}.marketplace-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}.marketplace-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.marketplace-card-name{font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text);text-decoration:none}a.marketplace-card-name:hover{color:var(--primary);text-decoration:underline}.market-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.market-count{margin-left:8px;font-size:.75rem;font-weight:400;color:var(--text-muted)}.market-kw{font-size:.62rem;padding:1px 7px;border-radius:8px;background:var(--surface-hover);color:var(--text-secondary);border:1px solid transparent;cursor:pointer;transition:var(--transition)}.market-kw:hover{border-color:var(--primary);color:var(--text)}.market-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:.69rem;color:var(--text-muted);align-items:center}.market-meta-item{display:inline-flex;align-items:center;gap:4px}.marketplace-card-version{font-size:.72rem;color:var(--text-secondary)}.marketplace-card-author{font-size:.72rem;color:var(--text-secondary);opacity:.8}.marketplace-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.marketplace-card .btn{align-self:flex-start}.chat-column{display:flex;flex-direction:column;height:100%;flex-shrink:1;min-width:240px}.session-sidebar{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg-secondary);max-height:280px;overflow:hidden;flex-shrink:0}.session-sidebar.collapsed{max-height:none;padding:4px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.session-sidebar-toggle{font-size:12px;color:var(--text-muted)}.session-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.session-sidebar-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.session-sidebar-actions{display:flex;gap:4px}.session-sidebar-btn{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background var(--transition),color var(--transition)}.session-sidebar-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.session-sidebar-list{overflow-y:auto;flex:1;padding:4px 0}.session-node-row{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;border-radius:4px;margin:1px 4px;transition:background var(--transition);font-size:13px;min-height:28px}.session-node-row:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.session-node-row.active{background:var(--accent-faded, rgba(99,102,241,.15));color:var(--accent, #6366f1)}.session-node-row.archived{opacity:.5}.session-expand-btn{width:16px;height:16px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.session-status-icon{font-size:8px;flex-shrink:0;width:12px;text-align:center}.session-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-rename-input{flex:1;min-width:0;padding:1px 4px;border:1px solid var(--accent);border-radius:3px;background:var(--bg);color:var(--text);font-size:13px;outline:none}.session-child-badge{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text-muted);font-size:10px;padding:1px 5px;border-radius:8px;flex-shrink:0}.session-actions{display:none;gap:2px;flex-shrink:0}.session-node-row:hover .session-actions{display:flex}.session-action-btn{width:20px;height:20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center}.session-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text)}.session-action-btn.danger:hover{color:var(--color-error, #f44336)}.session-config-editor{padding:8px 12px;margin:2px 4px 4px;background:var(--bg, #1a1a2e);border:1px solid var(--border);border-radius:6px;font-size:12px;display:flex;flex-direction:column;gap:6px}.session-config-loading{color:var(--text-muted);text-align:center;padding:8px}.session-config-field{display:flex;flex-direction:column;gap:2px}.session-config-field>span{font-size:11px;color:var(--text-muted);font-weight:500}.session-config-field select,.session-config-field input[type=number],.session-config-field textarea{padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary);color:var(--text);font-size:12px;outline:none;resize:vertical}.session-config-field select:focus,.session-config-field input:focus,.session-config-field textarea:focus{border-color:var(--accent, #6366f1)}.session-config-chips{display:flex;flex-wrap:wrap;gap:4px}.session-config-chip{padding:2px 8px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;transition:all var(--transition)}.session-config-chip.active{background:var(--accent-faded, rgba(99,102,241,.2));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1)}.session-config-chip.active.inherited{background:var(--accent-faded, rgba(99,102,241,.1));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1);border-style:dashed;opacity:.7}.session-config-chip.reset{font-size:10px;color:var(--text-muted);border-style:dashed}.session-config-chip:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.session-config-toggles{display:flex;flex-direction:column;gap:4px}.session-config-toggles label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.session-config-toggles input[type=checkbox]{accent-color:var(--accent, #6366f1)}.session-config-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.session-config-btn{padding:3px 12px;border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-secondary)}.session-config-btn.save{background:var(--accent, #6366f1);color:#fff;border-color:var(--accent, #6366f1)}.session-config-btn.save:hover{opacity:.85}.session-config-btn.cancel:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.chat-panel{display:flex;flex-direction:column;background:var(--bg);flex:1;min-height:0;position:relative}.chat-panel.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.drag-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.drag-overlay-content{font-size:1.1rem;font-weight:600;color:#fff;background:var(--primary);padding:14px 28px;border-radius:var(--radius-lg);box-shadow:0 4px 20px #0000004d}.resize-handle{width:5px;cursor:col-resize;background:transparent;flex-shrink:0;position:relative;z-index:10;transition:background var(--transition)}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--border)}.resize-handle:hover,.resize-handle:active{background:var(--primary-glow)}.resize-handle:hover:after,.resize-handle:active:after{background:var(--primary)}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.chat-panel-title{font-size:.88rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.chat-panel-session-name{color:var(--text-muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel-new-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-panel-new-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.chat-panel-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.uploaded-files-drawer{position:absolute;top:56px;right:12px;width:380px;max-width:calc(100% - 24px);max-height:60vh;background:var(--bg, #1c1c1e);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:10px;box-shadow:0 8px 24px #00000059;z-index:50;display:flex;flex-direction:column;overflow:hidden}.uploaded-files-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border, rgba(255,255,255,.08))}.uploaded-files-drawer-title{font-weight:600;font-size:.9rem}.uploaded-files-drawer-actions{display:flex;gap:4px}.uploaded-files-drawer-btn{width:26px;height:26px;border-radius:5px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.uploaded-files-drawer-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.uploaded-files-drawer-btn.danger:hover{color:#ff6b6b}.uploaded-files-drawer-btn[disabled]{opacity:.4;cursor:not-allowed}.uploaded-files-drawer-body{overflow-y:auto;padding:6px}.uploaded-files-drawer-empty,.uploaded-files-drawer-error{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:.85rem}.uploaded-files-drawer-error{color:#ff6b6b}.uploaded-files-drawer-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px}.uploaded-files-drawer-item:hover{background:var(--bg-hover, rgba(255,255,255,.04))}.uploaded-files-drawer-icon{color:var(--text-muted);flex-shrink:0}.uploaded-files-drawer-info{flex:1;min-width:0}.uploaded-files-drawer-name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-meta{font-size:.7rem;color:var(--text-muted);margin-top:2px}.uploaded-files-drawer-id{font-size:.65rem;color:var(--text-muted);opacity:.7;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-btn .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.token-usage-badge{position:relative;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;background:#ffffff0f;cursor:default;font-size:.75rem;color:var(--text-muted);transition:background var(--transition)}.token-usage-badge:hover{background:#ffffff1a}.token-usage-number{font-variant-numeric:tabular-nums}.token-usage-number.caution{color:#f0a020}.token-usage-number.warn{color:#ef4444}.token-usage-panel{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:var(--bg-secondary, #1e1e2e);border:1px solid var(--border);border-radius:10px;padding:14px;box-shadow:0 8px 24px #00000059;z-index:100;font-size:.78rem}.token-usage-panel:before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}.token-panel-title{font-weight:600;color:var(--text);margin-bottom:10px}.token-panel-bar{height:6px;border-radius:3px;background:#ffffff14;margin-bottom:4px;overflow:hidden}.token-panel-bar-fill{height:100%;border-radius:3px;background:var(--primary, #6366f1);transition:width .3s ease}.token-panel-bar-fill.caution{background:#f0a020}.token-panel-bar-fill.warn{background:#ef4444}.token-panel-ratio{color:var(--text-muted);font-size:.72rem;margin-bottom:10px}.token-panel-rows{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.token-panel-row{display:flex;justify-content:space-between;color:var(--text-secondary)}.token-panel-row.sub{padding-left:12px;font-size:.75rem;opacity:.85}.token-panel-row span:last-child{font-variant-numeric:tabular-nums;color:var(--text)}.token-panel-section-header{display:flex;justify-content:space-between;color:var(--text);font-weight:500;font-size:.8rem;padding-top:2px;border-top:1px solid var(--border)}.token-panel-section-total{font-variant-numeric:tabular-nums;font-weight:400;color:var(--text-secondary)}.token-panel-compress-btn{width:100%;padding:6px 0;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.78rem;display:flex;align-items:center;justify-content:center;gap:4px;transition:background var(--transition),color var(--transition)}.token-panel-compress-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.token-panel-compress-btn:disabled{opacity:.5;cursor:not-allowed}.token-panel-empty{color:var(--text-secondary);font-size:.78rem;text-align:center;padding:8px 0}.compress-bubble{display:flex;align-items:center;gap:6px;padding:8px 14px;margin:4px 0;border-radius:8px;font-size:.82rem;color:var(--text-secondary);background:#6366f11a;border:1px solid rgba(99,102,241,.2)}.compress-bubble.start{color:var(--primary, #6366f1)}.compress-bubble.done{color:#22c55e;background:#22c55e1a;border-color:#22c55e33}.compress-bubble.error{color:#ef4444;background:#ef44441a;border-color:#ef444433}@keyframes compress-spin{to{transform:rotate(360deg)}}.compress-spinner{animation:compress-spin 1s linear infinite}.system-event-separator{display:flex;align-items:center;gap:12px;padding:8px 0;-webkit-user-select:none;user-select:none}.system-event-line{flex:1;height:1px;background:var(--border-color, rgba(255, 255, 255, .1))}.system-event-text{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary, #888);white-space:nowrap}.system-event-separator.compressing .system-event-text{color:var(--primary, #6366f1)}.system-event-separator.compress-done .system-event-text{color:#22c55e}.system-event-separator.compress-error .system-event-text{color:#ef4444}.compress-timer{font-variant-numeric:tabular-nums;opacity:.8;margin-left:2px}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px;display:flex;flex-direction:column;gap:8px;will-change:scroll-position;scroll-behavior:auto}.messages::-webkit-scrollbar{width:5px}.messages::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.empty{text-align:center;color:var(--text-muted);margin:auto;font-size:.95rem}.empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.4}.message-group{display:flex;flex-direction:column;gap:2px;max-width:88%;animation:msg-in .3s cubic-bezier(.4,0,.2,1) both;contain:layout style}.message-group.user{align-self:flex-end}.message-group.assistant{align-self:flex-start}.message-sender{font-size:.72rem;font-weight:600;color:var(--text-muted);padding:0 2px;display:flex;align-items:baseline;gap:8px}.message-group.user .message-sender{justify-content:flex-end}.message-time{font-weight:400;font-size:.68rem;opacity:.7;font-variant-numeric:tabular-nums}.message-model-badge{font-weight:400;font-size:.66rem;padding:1px 6px;border-radius:999px;background:var(--surface-2, rgba(120, 120, 140, .12));color:var(--text-secondary, #888);font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:help}.message-bubble{padding:10px 14px;border-radius:var(--radius-lg);line-height:1.65;word-break:break-word;font-size:.9rem}.message-group.user .message-bubble{background:var(--user-bg);border-bottom-right-radius:4px;white-space:pre-wrap}.message-group.assistant .message-bubble{background:var(--assistant-bg);border:1px solid var(--border);border-bottom-left-radius:4px}.message-group.assistant .message-bubble p{margin:0 0 .6em;line-height:1.7}.message-group.assistant .message-bubble p:last-child{margin-bottom:0}.message-group.assistant .message-bubble h1,.message-group.assistant .message-bubble h2,.message-group.assistant .message-bubble h3,.message-group.assistant .message-bubble h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.message-group.assistant .message-bubble h1:first-child,.message-group.assistant .message-bubble h2:first-child,.message-group.assistant .message-bubble h3:first-child{margin-top:0}.message-group.assistant .message-bubble h1{font-size:1.3em}.message-group.assistant .message-bubble h2{font-size:1.15em}.message-group.assistant .message-bubble h3{font-size:1.05em}.message-group.assistant .message-bubble ul,.message-group.assistant .message-bubble ol{margin:.4em 0 .6em 1.2em;padding:0}.message-group.assistant .message-bubble li{margin-bottom:.25em}.message-group.assistant .message-bubble blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.message-group.assistant .message-bubble a{color:var(--primary);text-decoration:none}.message-group.assistant .message-bubble a:hover{text-decoration:underline}.message-group.assistant .message-bubble hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.message-group.assistant .message-bubble table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.message-group.assistant .message-bubble th,.message-group.assistant .message-bubble td{border:1px solid var(--border);padding:6px 10px;text-align:left}.message-group.assistant .message-bubble th{background:var(--surface);font-weight:600}.message-group.assistant .message-bubble img{max-width:100%;border-radius:6px}.message-group.assistant .message-bubble code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.message-group.assistant .message-bubble pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5}.message-group.assistant .message-bubble pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.message-group.assistant .message-bubble pre::-webkit-scrollbar{height:4px}.message-group.assistant .message-bubble pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.json-message-view{display:flex;flex-direction:column;gap:6px}.json-field{display:flex;align-items:baseline;gap:8px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-wrap:wrap}.json-field:last-child{border-bottom:none}.json-field-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;min-width:56px;-webkit-user-select:none;user-select:none}.json-field-value{color:var(--text);font-size:.88rem;line-height:1.5;word-break:break-word}.json-field-value-md{flex:1;min-width:0}.json-field-value-md p{margin:0}.json-field-value-md p+p{margin-top:.4em}.json-field-reply{margin-top:4px;padding:8px 10px;background:color-mix(in srgb,var(--primary) 6%,transparent);border-radius:var(--radius);border-bottom:none;flex-direction:column;gap:4px}.json-field-reply .json-field-label{color:var(--primary)}.json-field-group{flex-direction:column;gap:0;padding-bottom:0}.json-field-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;border-radius:var(--radius)}.json-field-toggle:hover{opacity:.8}.json-field-children{padding-left:16px;border-left:2px solid color-mix(in srgb,var(--border) 60%,transparent);margin-left:6px}.json-field-partial{opacity:.6;font-style:italic}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--primary);margin-left:1px;vertical-align:text-bottom;animation:cursor-blink .8s step-end infinite}@keyframes cursor-blink{50%{opacity:0}}.typing-indicator{display:flex;gap:4px;padding:14px 18px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.input-area{display:flex;align-items:stretch;gap:10px;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary)}.input-area textarea{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;color:var(--text);font-size:.9rem;resize:none;font-family:inherit;outline:none;min-height:52px;max-height:300px;overflow-y:auto;transition:border-color var(--transition)}.input-area textarea::placeholder{color:var(--text-muted)}.input-area textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.send-btn{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.35;cursor:not-allowed}.send-btn.stop-btn,.send-btn.stop-mode{background:var(--danger, #e53935);font-size:.85rem}.send-btn.stop-btn:hover:not(:disabled),.send-btn.stop-mode:hover:not(:disabled){background:color-mix(in srgb,var(--danger, #e53935) 85%,black)}.stop-generate-btn{display:flex;align-items:center;gap:4px;margin-top:6px;padding:4px 14px;font-size:.78rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger, #e53935) 30%,transparent);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);align-self:flex-start}.stop-generate-btn:hover{background:color-mix(in srgb,var(--danger, #e53935) 20%,transparent);border-color:var(--danger, #e53935)}.checkpoint-rollback-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-self:flex-start}.checkpoint-rollback-actions .checkpoint-rollback-btn{margin-top:0}.checkpoint-rollback-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;font-size:.72rem;color:var(--text-secondary, #888);background:transparent;border:1px dashed color-mix(in srgb,var(--text-secondary, #888) 35%,transparent);border-radius:var(--radius);cursor:pointer;opacity:.55;transition:all var(--transition);align-self:flex-start}.checkpoint-rollback-btn:hover{opacity:1;color:var(--warning, #d97706);border-color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 8%,transparent)}.checkpoint-warn{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding:0 4px;font-size:.68rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 12%,transparent);border-radius:3px}.checkpoint-rolled-back{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.72rem;color:var(--text-muted, #aaa);-webkit-user-select:none;user-select:none}.tool-limit-bar{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0;padding:12px 16px;background:color-mix(in srgb,var(--warning, #ff9800) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--warning, #ff9800) 30%,transparent);border-radius:var(--radius)}.tool-limit-text{font-size:.82rem;color:var(--warning, #ff9800);font-weight:500}.tool-limit-actions{display:flex;align-items:center;gap:10px}.tool-limit-btn.continue{padding:5px 16px;font-size:.8rem;color:#fff;background:var(--primary, #2196f3);border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.tool-limit-btn.continue:hover{background:color-mix(in srgb,var(--primary, #2196f3) 80%,#000)}.tool-limit-hint{font-size:.75rem;color:var(--text-secondary, #888)}.tool-call-progress-bubble{padding:0;background:transparent;border:none;box-shadow:none;margin-top:-2px}.tool-call-block-pending{display:block;margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden;animation:tool-call-pending-pulse 1.4s ease-in-out infinite}.tool-call-block-pending .tool-call-summary{padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.tool-call-progress-icon{display:inline-flex;align-items:center;color:#3b82f6d9}.tool-call-progress-meta{margin-left:auto;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text-tertiary, rgba(255, 255, 255, .35))}@keyframes tool-call-pending-pulse{0%,to{border-color:#3b82f626}50%{border-color:#3b82f68c}}.upload-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.upload-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary)}.upload-btn:disabled{opacity:.35;cursor:not-allowed}.pending-images{display:flex;gap:8px;padding:8px 24px;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--border);background:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-images::-webkit-scrollbar{height:4px}.pending-images::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-images::-webkit-scrollbar-track{background:transparent}.pending-image-item{position:relative;width:64px;min-width:64px;height:64px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.pending-image-item img{width:100%;height:100%;object-fit:cover}.pending-image-remove{position:absolute;top:0;right:0;background:#0009;color:#fff;border:none;width:18px;height:18px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 var(--radius)}.pending-image-remove:hover{background:var(--danger, #e53935)}.pending-order-badge{position:absolute;bottom:2px;left:2px;background:#0009;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;line-height:1;pointer-events:none}.pending-file-order{font-size:.7rem;color:var(--text-muted);min-width:18px;flex-shrink:0}.message-images{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;max-width:100%}.message-image-wrap{position:relative;display:inline-flex}.message-image{max-width:min(200px,100%);max-height:200px;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain;cursor:pointer;transition:transform var(--transition)}.message-image:hover{transform:scale(1.02)}.message-attach-order{position:absolute;bottom:3px;left:3px;background:#0000008c;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;pointer-events:none}.message-files{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.message-file-item{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;color:var(--text);max-width:fit-content}.message-file-item .message-attach-order{position:static;background:none;color:var(--text-muted);font-size:.7rem;min-width:unset;height:unset;border-radius:0;padding:0}.pending-files{display:flex;gap:6px;padding:8px 24px;background:var(--bg-secondary);border-top:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-files::-webkit-scrollbar{height:4px}.pending-files::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-files::-webkit-scrollbar-track{background:transparent}.pending-file-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;max-width:fit-content;white-space:nowrap;flex-shrink:0}.pending-file-icon{flex-shrink:0}.pending-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.pending-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:.9rem;flex-shrink:0}.pending-file-remove:hover{color:var(--danger, #e53935)}.todo-bar{border-top:1px solid var(--border);background:var(--bg-secondary);padding:0 24px;font-size:.82rem}.todo-bar-header{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.todo-bar-icon{color:var(--primary);flex-shrink:0}.todo-bar-done .todo-bar-icon{color:var(--success, #4caf50)}.todo-bar-title{font-weight:600;color:var(--text);font-size:.82rem}.todo-bar-count{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.todo-bar-progress{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;min-width:40px}.todo-bar-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s ease}.todo-bar-done .todo-bar-progress-fill{background:var(--success, #4caf50)}.todo-bar-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0}.todo-bar-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0;opacity:.6;transition:opacity var(--transition),color var(--transition)}.todo-bar-clear:hover{color:var(--danger, #e53935);opacity:1}.todo-bar-clear:disabled{opacity:.25;cursor:not-allowed;color:var(--text-muted)}.todo-bar-list{display:flex;flex-direction:column;gap:2px;padding-bottom:8px}.todo-item{display:flex;align-items:center;gap:8px;padding:3px 0;line-height:1.4}.todo-item-title{color:var(--text);font-size:.8rem}.todo-item-completed .todo-item-title{color:var(--text-muted);text-decoration:line-through}.todo-item-in-progress .todo-item-title{color:var(--primary);font-weight:500}.todo-icon{flex-shrink:0}.todo-icon-pending{color:var(--text-muted);opacity:.5}.todo-icon-active{color:var(--primary);animation:todoSpin 1.5s linear infinite}.todo-icon-done{color:var(--success, #4caf50)}@keyframes todoSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-logs{display:flex;flex-direction:column;height:100%;padding:16px 24px}.log-controls{display:flex;align-items:center;gap:6px;margin-bottom:12px;flex-shrink:0}.log-filter{padding:5px 12px;font-size:.72rem;font-weight:500;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.log-filter.active{background:var(--primary-glow);color:var(--primary);border-color:var(--primary)}.log-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.log-list::-webkit-scrollbar{width:5px}.log-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.log-entry{font-family:SF Mono,Fira Code,monospace;font-size:.72rem;line-height:1.6;padding:3px 8px;border-radius:4px;background:var(--surface);display:flex;gap:6px;flex-wrap:nowrap;cursor:pointer}.log-entry:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.log-entry.expanded{flex-wrap:wrap;background:var(--surface-hover, rgba(255,255,255,.06));align-items:flex-start}.log-entry .log-time{color:var(--text-muted);flex-shrink:0}.log-entry .log-level{font-weight:600;flex-shrink:0;width:38px}.log-entry .log-level.debug{color:var(--text-muted)}.log-entry .log-level.info{color:#60a5fa}.log-entry .log-level.warn{color:var(--warning)}.log-entry .log-level.error{color:var(--danger)}.log-entry .log-scope{color:#c084fc;flex-shrink:0}.log-entry .log-msg{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry.expanded .log-msg{white-space:pre-wrap;word-break:break-word;overflow:visible;text-overflow:clip;flex:1 1 100%}.log-hint{margin-left:auto;font-size:.7rem;color:var(--text-muted);align-self:center}.page-plugin-config{width:100%}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.badge.active{background:#48c78e26;color:var(--accent)}.badge.official{background:#5b8def26;color:#5b8def}.badge.community{background:#ffffff0f;color:var(--text-secondary)}.badge.pending{background:#f0c06026;color:var(--warning)}.badge.error,.badge.disposed{background:#ff6b6b26;color:var(--danger)}.tool-chip{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.72rem;font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);color:var(--text-secondary);margin:2px}.tool-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:0 2px}.tool-group-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .2s}.tool-group-card:hover{border-color:var(--primary)}.tool-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tool-group-name{font-weight:600;font-size:.88rem;color:var(--text)}.tool-group-count{font-size:.72rem;color:var(--primary);background:#6366f11a;padding:2px 8px;border-radius:10px}.tool-group-desc{font-size:.76rem;color:var(--text-secondary);line-height:1.4;margin-bottom:8px}.tool-group-meta{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-muted)}.tool-group-id{font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);padding:1px 6px;border-radius:4px}.tool-group-plugin{opacity:.7}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);border:1px solid var(--primary);border-radius:var(--radius);padding:8px 20px;font-size:.82rem;z-index:1000;animation:toastIn .25s ease;box-shadow:0 4px 20px #0006}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.plugin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;transition:opacity var(--transition)}.plugin-card.disabled{opacity:.55}.plugin-card.errored{border-color:var(--danger);border-left:3px solid var(--danger)}.plugin-error-msg{padding:6px 14px 8px;font-size:.78rem;color:var(--danger);background:#ef44440f}.overview-card-error{border-color:var(--danger)}.plugin-search-row{position:relative;margin:10px 0 16px}.plugin-search-input{width:100%;padding:9px 36px 9px 14px;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color var(--transition)}.plugin-search-input::placeholder{color:var(--text-muted)}.plugin-search-input:focus{border-color:var(--primary)}.plugin-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:2px 4px}.plugin-search-clear:hover{color:var(--text-secondary)}.plugin-category{margin-bottom:12px}.plugin-category-header{display:flex;align-items:center;gap:8px;padding:8px 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.plugin-category-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.plugin-category-count{font-size:11px;color:var(--text-muted);background:var(--surface-active);padding:1px 7px;border-radius:10px;font-weight:600}.plugin-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.plugin-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plugin-card-name{font-size:.85rem;font-weight:600}.plugin-card-module-name{font-size:.7rem;font-weight:400;opacity:.45;margin-left:6px}.plugin-instance-suffix{color:var(--primary);font-weight:400;opacity:.85}.core-badge{background:#7c6ff726;color:var(--primary);font-size:.65rem}.plugin-card-provides{padding:0 14px 8px}.plugin-card-caps{padding:0 14px 8px;display:flex;flex-wrap:wrap;gap:4px}.cap-chip{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary)}.cap-chip.dep-required{border-color:#5b8def;color:#5b8def}.cap-chip.dep-optional{opacity:.75}.cap-chip.cap-sensitive{border-color:#f59e0b;color:#f59e0b}.cap-chip.cap-danger{border-color:#ef4444;color:#ef4444;font-weight:600}.plugin-card-extends{padding:4px 14px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.extends-label{font-size:.75rem;color:#9ca3af;margin-right:4px}.extends-chip{display:inline-block;padding:1px 7px;border-radius:8px;font-size:.7rem;font-family:Fira Mono,monospace}.extends-chip.event{background:#3b82f626;color:#60a5fa}.extends-chip.hook{background:#a855f726;color:#c084fc}.extends-chip.mixin{background:#eab30826;color:#fbbf24}.plugin-provides-inline{display:inline-flex;gap:4px;margin-left:6px;flex-wrap:wrap}.provides-chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.65rem;font-family:SF Mono,Fira Code,monospace;background:#7c6ff71f;color:var(--primary);border:1px solid rgba(124,111,247,.25)}.plugin-card-config{padding:0 14px 12px;border-top:1px solid var(--border)}.plugin-reload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);opacity:.92;display:flex;align-items:center;justify-content:center;gap:8px;z-index:10;border-radius:8px;font-size:13px;color:var(--text-muted);pointer-events:all}.plugin-reload-spinner{animation:spin .8s linear infinite}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch.core-locked{opacity:.4;pointer-events:none}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-light);border-radius:20px;cursor:pointer;transition:background var(--transition)}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:var(--text);border-radius:50%;transition:transform var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.btn{padding:6px 14px;font-size:.78rem;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97);transition-duration:.05s}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:#fff}.btn-danger{background:#d32f2f;color:#fff;border-color:#d32f2f}.btn-danger:hover:not(:disabled){background:#b71c1c}.btn-warn{background:#ed6c02;color:#fff;border-color:#ed6c02}.btn-warn:hover:not(:disabled){background:#e65100}.btn-sm{padding:4px 10px;font-size:.72rem}.config-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.config-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.config-block-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background var(--transition)}.config-block-hint{flex:1;font-size:.72rem;color:var(--text-muted);opacity:.7;text-align:right}.config-block-header:hover{background:var(--surface-hover)}.config-block-title{font-size:.85rem;font-weight:600}.config-block-toggle{font-size:.7rem;color:var(--text-muted);transition:transform var(--transition)}.config-block-toggle.open{transform:rotate(90deg)}.config-block-body{padding:0 12px 10px;font-size:.8rem}.config-item{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-top:1px solid var(--border)}.config-item:first-child{border-top:none}.config-item .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem}.config-item .val{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.config-nested{padding:2px 0}.config-nested-header{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.config-nested-header:hover{background:var(--surface-hover);border-radius:4px}.config-nested-header .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;font-weight:600}.config-nested-count{font-size:.68rem;color:var(--text-muted);margin-left:auto}.config-nested-body{border-left:1px solid var(--border);margin-left:6px;padding-left:8px}.config-edit-form{padding:8px 0}.config-edit-row{margin-bottom:8px}.config-edit-label{display:block;font-size:.72rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;margin-bottom:3px}.config-edit-input{width:100%;padding:6px 10px;font-size:.78rem;font-family:SF Mono,Fira Code,monospace;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none;transition:border-color var(--transition)}.config-edit-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}textarea.config-textarea{min-height:80px;max-height:300px;resize:vertical;font-family:inherit;line-height:1.5;overflow-y:auto}.config-edit-actions{display:flex;gap:6px;padding-top:4px}.config-edit-hint{display:block;font-size:.68rem;color:var(--text-muted);margin-top:2px;opacity:.8}.field-key{font-family:SF Mono,Fira Code,monospace;font-size:inherit;color:var(--text);background:#ffffff0f;padding:1px 4px;border-radius:3px}.field-hint{font-size:.68rem;color:var(--text-muted);font-family:inherit;opacity:.85}.config-edit-group{margin-bottom:10px;padding:8px 10px;background:#ffffff05;border:1px solid var(--border);border-radius:8px}.config-edit-group-label{font-size:.74rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.config-edit-input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}select.config-edit-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px;cursor:pointer}.multiselect-group{display:flex;flex-wrap:wrap;gap:6px 12px}.multiselect-item{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-item input[type=checkbox]{accent-color:#5b7fff}.thinking-block{margin-bottom:4px;border-radius:8px;background:#8b5cf60f;border:1px solid rgba(139,92,246,.15);overflow:hidden}.thinking-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.thinking-summary::-webkit-details-marker{display:none}.thinking-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.thinking-summary:before{transform:rotate(90deg)}.thinking-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(139,92,246,.1)}.thinking-content p{margin:4px 0}.thinking-content::-webkit-scrollbar{width:4px}.thinking-content::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:2px}.tool-call-block{margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden}.tool-call-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.tool-call-summary::-webkit-details-marker{display:none}.tool-call-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.tool-call-summary:before{transform:rotate(90deg)}.tool-call-timer{margin-left:auto;font-size:.72rem;font-weight:400;color:var(--text-tertiary, rgba(255,255,255,.35));font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.tool-call-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(59,130,246,.1)}.tool-call-content pre{margin:4px 0;padding:6px 8px;background:#00000026;border-radius:4px;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.tool-call-content strong{display:block;margin-top:6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:#3b82f6b3}.tool-call-content::-webkit-scrollbar{width:4px}.tool-call-content::-webkit-scrollbar-thumb{background:#3b82f633;border-radius:2px}.page-platforms .empty-hint{text-align:center;color:#fff6;padding:40px 0;font-size:.9rem}.platform-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;margin-bottom:12px;transition:border-color .2s}.platform-card:hover{border-color:#ffffff26}.platform-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.platform-card-name{font-size:1rem;font-weight:600;color:#ffffffe6}.platform-card-id{font-size:.75rem;color:#fff6;background:#ffffff0f;padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,monospace}.platform-no-connections{color:#ffffff59;font-size:.85rem;padding:8px 0}.platform-connections{display:flex;flex-direction:column;gap:6px}.platform-connection{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffff08;border-radius:6px;font-size:.85rem}.platform-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.platform-status-dot.online{background:#22c55e;box-shadow:0 0 6px #22c55e80}.platform-status-dot.connecting{background:#f59e0b;box-shadow:0 0 6px #f59e0b80;animation:pulse 1.5s ease-in-out infinite}.platform-status-dot.offline{background:#6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.platform-conn-id{color:#fffc;font-family:JetBrains Mono,monospace;font-size:.82rem}.platform-conn-status{font-size:.75rem;padding:1px 6px;border-radius:3px}.platform-conn-status.online{color:#22c55e;background:#22c55e1a}.platform-conn-status.connecting{color:#f59e0b;background:#f59e0b1a}.platform-conn-status.offline{color:#6b7280;background:#6b72801a}.platform-conn-detail{margin-left:auto;font-size:.75rem;color:#ffffff59;font-family:JetBrains Mono,monospace}.btn-sm{padding:2px 10px;font-size:.75rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0d;color:#fff9;cursor:pointer;transition:all .15s}.btn-sm:hover:not(:disabled){background:#ffffff1a;color:#ffffffd9}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.cmd-chip{display:inline-flex;align-items:center;gap:3px}.chip-badge{font-size:.62rem;line-height:1;vertical-align:middle}.chip-badge.chip-auth{color:gold}.chip-badge.chip-danger{color:var(--danger)}.authority-add-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.authority-add-form .config-edit-input{width:auto;min-width:120px;flex:1}.authority-cmd-list{font-size:.78rem}.authority-cmd-header{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:8px 12px;font-size:.72rem;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.authority-cmd-row{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border);transition:background .15s}.authority-cmd-row:last-child{border-bottom:none}.authority-cmd-row:hover{background:var(--surface-hover)}.authority-cmd-row.overridden{background:#7c6ff70a}.authority-cmd-row.is-sub{background:#00000004;border-left:2px solid var(--border)}.authority-cmd-row.is-sub.overridden{background:#7c6ff70f}.authority-cmd-toggle{font-size:9px;transition:transform .15s;-webkit-user-select:none;user-select:none}.authority-cmd-toggle.open{transform:rotate(90deg)}.authority-cmd-name{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;font-weight:500}.authority-cmd-plugin{color:var(--text-muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-owner-header,.authority-owner-row{grid-template-columns:1fr 1.5fr .8fr}.authority-user-header,.authority-user-row{grid-template-columns:1fr 1.5fr .8fr 1fr}.authority-cell-platform{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem}.authority-cell-id{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-badge{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px;background:#ffffff14;color:var(--text-secondary)}.authority-user-flag{margin-left:6px;padding:0 5px;font-size:.66rem;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary)}.authority-user-expand{display:flex;flex-direction:column;gap:4px;padding:8px 16px 10px;border-bottom:1px solid var(--border);background:#ffffff05}.authority-user-expand label{font-size:.7rem;color:var(--text-secondary)}.authority-unlink-btn{margin-left:4px;padding:0 2px;border:0;background:none;color:var(--text-secondary);font-size:.7rem;cursor:pointer}.authority-unlink-btn:hover{color:#ff6b6b}.authority-badge.owner{background:#ffd70026;color:gold}.authority-badge.high{background:#7c6ff726;color:var(--primary)}.authority-safety-tag{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px}.authority-safety-tag.safe{background:#48c78e1f;color:#48c78e}.authority-safety-tag.dangerous{background:#ff6b6b1f;color:var(--danger)}.authority-actions{display:flex;gap:4px}.authority-inline-input{width:70px!important;padding:2px 6px!important;font-size:.76rem!important}.authority-inline-select{width:100px!important;padding:2px 6px!important;font-size:.76rem!important}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-scale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.confirm-dialog{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px 28px;max-width:440px;width:90%;text-align:center;box-shadow:0 8px 32px #0000004d;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.confirm-dialog-icon{font-size:36px;margin-bottom:8px}.confirm-dialog h3{margin:0 0 8px;font-size:16px;color:var(--text)}.confirm-dialog-desc{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.5}.confirm-dialog-desc strong{color:var(--text);font-family:var(--mono)}.confirm-dialog-args{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:11px;font-family:var(--mono);color:var(--muted);text-align:left;max-height:160px;overflow:auto;margin:0 0 16px;white-space:pre-wrap;word-break:break-all}.confirm-dialog-actions{display:flex;gap:10px;justify-content:center}.btn-confirm-danger{padding:8px 20px;border-radius:6px;border:none;cursor:pointer;font-size:13px;font-weight:600;background:#e74c3c;color:#fff;transition:background .15s}.btn-confirm-danger:hover{background:#c0392b}.btn-confirm-cancel{padding:8px 20px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:13px;background:var(--card-bg);color:var(--muted);transition:all .15s}.btn-confirm-cancel:hover{border-color:var(--text);color:var(--text)}.restart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fade-in .2s ease}.restart-dialog{text-align:center}.restart-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.restart-dialog h3{margin:0 0 6px;font-size:18px;color:#fff;font-weight:600}.restart-desc{margin:0;font-size:13px;color:#fff9}.dynamic-page{display:flex;flex-direction:column;gap:20px;padding:24px}.dynamic-page.has-graph{height:100%;min-height:0;overflow:hidden}.page-content.has-graph{overflow:hidden}.dyn-scroll-region{flex:1 1 0;min-height:160px;overflow-y:auto;padding-bottom:12px}.dyn-scroll-region::-webkit-scrollbar{width:5px}.dyn-scroll-region::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.dyn-section-title{margin:0 0 12px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dyn-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.dyn-stat-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-stat-card:hover{border-color:var(--border-light)}.dyn-stat-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0;color:var(--primary)}.dyn-stat-body{min-width:0}.dyn-stat-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.dyn-stat-value{font-size:1rem;font-weight:700;color:var(--text)}.dyn-table-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition);max-width:100%;min-width:0}.dyn-table-block:hover{border-color:var(--border-light)}.dyn-table-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%}.dyn-table{width:100%;border-collapse:collapse;font-size:13px}.dyn-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-light);color:var(--text-muted);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.dyn-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);transition:background var(--transition);vertical-align:middle}.dyn-cell-nowrap{white-space:nowrap}.dyn-cell-expandable{display:flex;align-items:center;gap:8px}.dyn-cell-expandable .dyn-cell-expandable-text{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}.dyn-cell-expandable.expanded{align-items:flex-start}.dyn-cell-expandable.expanded .dyn-cell-expandable-text{-webkit-line-clamp:unset;line-clamp:unset;display:block;max-height:80px;overflow-y:auto}.dyn-cell-expandable-toggle{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;padding:0 6px;font-size:11px;line-height:18px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition)}.dyn-cell-expandable-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.dyn-table tr:last-child td{border-bottom:none}.dyn-table tr:hover td{background:var(--surface-hover)}.dyn-table-actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-start}.dyn-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em}.dyn-badge-running,.dyn-badge-online,.dyn-badge-active{background:#48c78e26;color:var(--accent)}.dyn-badge-stopped,.dyn-badge-offline,.dyn-badge-error{background:#ff6b6b26;color:var(--danger)}.dyn-badge-pending,.dyn-badge-connecting{background:#f0c06026;color:var(--warning)}.countdown-imminent{color:var(--danger);font-weight:600;animation:countdown-pulse 1s ease-in-out infinite}.countdown-fired{color:var(--accent);font-weight:600;animation:countdown-pulse .6s ease-in-out infinite}@keyframes countdown-pulse{0%,to{opacity:1}50%{opacity:.5}}.dyn-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:900;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}.dyn-detail-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(640px,90vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.dyn-detail-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.dyn-detail-title{font-weight:600;font-size:15px}.dyn-detail-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0 4px;line-height:1}.dyn-detail-close:hover{color:var(--text-primary)}.dyn-detail-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.dyn-detail-field{display:flex;flex-direction:column;gap:4px}.dyn-detail-key{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dyn-detail-val{font-size:13px;color:var(--text-primary);word-break:break-word}.dyn-detail-pre{font-size:12px;font-family:var(--font-mono, "JetBrains Mono", monospace);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin:0;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;color:var(--text-primary)}.dyn-form-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-form-block:hover{border-color:var(--border-light)}.dyn-actions-block{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-actions-block:hover{border-color:var(--border-light)}.dyn-action-msg{font-size:12px;color:var(--text-muted)}.dyn-info-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-info-block:hover{border-color:var(--border-light)}.dyn-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.dyn-info-item{display:flex;flex-direction:column;gap:2px}.dyn-info-key{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dyn-info-val{font-size:14px;color:var(--text);word-break:break-all}.dyn-markdown-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--text-secondary);line-height:1.6;transition:border-color var(--transition)}.dyn-markdown-block:hover{border-color:var(--border-light)}.dyn-tabs-block{display:flex;flex-direction:column;gap:12px}.dyn-tabs-header{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:0}.dyn-tab-btn{background:none;border:none;color:var(--text-muted);font-size:13px;padding:8px 16px;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition)}.dyn-tab-btn:hover{color:var(--text-secondary)}.dyn-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.dyn-tabs-body{display:flex;flex-direction:column;gap:16px}.model-search-row{position:relative;margin-bottom:12px}.model-provider-group{margin-bottom:12px}.model-provider-label{font-size:.72rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;padding-left:2px}.model-list{display:flex;flex-wrap:wrap;gap:6px}.model-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.78rem;transition:border-color var(--transition)}.model-chip:hover{border-color:var(--primary)}.model-chip-name{font-family:SF Mono,Fira Code,monospace;color:var(--text);font-size:.76rem}.model-chip-caps{display:inline-flex;gap:3px}.model-cap-tag{display:inline-block;padding:1px 5px;border-radius:4px;font-size:.62rem;background:#7c6ff71f;color:var(--primary)}.session-tree-page{display:flex;height:100%;gap:1px;background:var(--border)}.tree-visual-panel{flex:1;display:flex;flex-direction:column;background:var(--bg);min-width:0}.tree-visual-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.tree-visual-header h3{margin:0;font-size:15px;font-weight:600}.tree-header-actions{display:flex;align-items:center;gap:4px}.tree-action-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background var(--transition),color var(--transition)}.tree-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn{border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:3px 10px;border-radius:4px;transition:all var(--transition)}.tree-batch-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn:disabled{opacity:.4;cursor:default}.tree-batch-btn.archive{border-color:var(--color-warning, #ff9800);color:var(--color-warning, #ff9800)}.tree-batch-btn.archive:hover:not(:disabled){background:#ff98001a}.tree-batch-btn.danger{border-color:var(--color-error, #f44336);color:var(--color-error, #f44336)}.tree-batch-btn.danger:hover:not(:disabled){background:#f443361a}.tree-refresh-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:4px;border-radius:4px}.tree-refresh-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-visual-body{flex:1;overflow:auto;padding:16px}.tree-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.tree-page-error{padding:48px;text-align:center;color:var(--color-error, #f44336)}.tree-node{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .15s ease;margin-bottom:4px;background:var(--bg)}.tree-node:hover{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.06))}.tree-node.selected{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.12));box-shadow:0 0 0 1px var(--accent, #6366f1)}.tree-node.active-chat{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50;animation:active-chat-pulse 2s ease-in-out infinite}.tree-node.active-chat.selected{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50}@keyframes active-chat-pulse{0%,to{box-shadow:0 0 0 1.5px #4caf50}50%{box-shadow:0 0 8px 2px #4caf5066}}.tree-node.status-archived{opacity:.6}.tree-node.status-error{border-color:var(--color-error, #f44336)}.tree-node-toggle{width:20px;height:20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0;flex-shrink:0}.tree-node-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tree-node-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tree-node-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node-meta{font-size:11px;color:var(--text-muted)}.tree-node-badge{background:var(--accent-faded, rgba(99,102,241,.15));color:var(--accent, #6366f1);font-size:10px;padding:1px 6px;border-radius:8px;flex-shrink:0;font-weight:600}.tree-node-checkbox{flex-shrink:0;accent-color:var(--accent, #6366f1);margin:0;cursor:pointer}.tree-node-actions{display:none;gap:2px;flex-shrink:0}.tree-node:hover .tree-node-actions{display:flex}.tree-node-action-btn{width:22px;height:22px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}.tree-node-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text)}.tree-node-action-btn.danger:hover{color:var(--color-error, #f44336)}.tree-node-rename-input{flex:1;min-width:0;padding:2px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px;outline:none}.tree-node-children{padding-left:12px;border-left:2px solid var(--border);margin-left:20px;margin-top:2px;margin-bottom:4px}.tree-flow-label{display:flex;align-items:flex-start;gap:6px;padding:4px 8px;font-size:11px;color:var(--text-muted);margin-bottom:4px}.tree-flow-label.result{margin-top:2px;margin-bottom:6px}.tree-flow-arrow{color:var(--accent, #6366f1);font-weight:700;flex-shrink:0}.tree-flow-label.result .tree-flow-arrow{color:var(--color-success, #4caf50)}.tree-flow-text{font-style:italic;line-height:1.4;word-break:break-word}.tree-detail-panel{width:400px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.tree-detail-placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:14px}.delete-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-dialog{background:var(--bg-card, #1e1e2e);border:1px solid var(--border);border-radius:12px;padding:20px 24px;max-width:360px;box-shadow:0 8px 32px #0000004d}.delete-confirm-dialog p{margin:0 0 16px;font-size:14px;color:var(--text);line-height:1.5}.delete-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn-danger{background:#f44336!important;color:#fff!important;border:none!important}.btn-danger:hover{background:#d32f2f!important}.session-detail{display:flex;flex-direction:column;overflow-y:auto;padding:16px;gap:16px}.session-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-detail-header h3{margin:0;font-size:16px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-detail-status{font-size:12px;font-weight:600;flex-shrink:0}.session-detail-meta{font-size:12px;color:var(--text-muted);display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-secondary);border-radius:8px}.session-detail-context,.session-detail-result{padding:10px;border-radius:8px;border:1px solid var(--border)}.session-detail-context{border-left:3px solid var(--accent, #6366f1)}.session-detail-result{border-left:3px solid var(--color-success, #4caf50)}.context-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.context-content{font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.session-detail-messages h4{margin:0 0 12px;font-size:14px;font-weight:600}.no-messages{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.message-list{display:flex;flex-direction:column;gap:8px}.detail-message{padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.5}.detail-message.user{background:var(--accent-faded, rgba(99,102,241,.1));margin-left:24px}.detail-message.assistant{background:var(--bg-secondary);margin-right:24px}.detail-msg-role{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.detail-msg-content{white-space:pre-wrap;word-break:break-word}.detail-msg-content.detail-msg-md{white-space:normal}.detail-msg-md p{margin:0 0 .6em;line-height:1.7}.detail-msg-md p:last-child{margin-bottom:0}.detail-msg-md h1,.detail-msg-md h2,.detail-msg-md h3,.detail-msg-md h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.detail-msg-md h1:first-child,.detail-msg-md h2:first-child,.detail-msg-md h3:first-child{margin-top:0}.detail-msg-md h1{font-size:1.3em}.detail-msg-md h2{font-size:1.15em}.detail-msg-md h3{font-size:1.05em}.detail-msg-md ul,.detail-msg-md ol{margin:.4em 0 .6em 1.2em;padding:0}.detail-msg-md li{margin-bottom:.25em}.detail-msg-md blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.detail-msg-md a{color:var(--primary);text-decoration:none}.detail-msg-md a:hover{text-decoration:underline}.detail-msg-md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.detail-msg-md table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.detail-msg-md th,.detail-msg-md td{border:1px solid var(--border);padding:6px 10px;text-align:left}.detail-msg-md th{background:var(--surface);font-weight:600}.detail-msg-md img{max-width:100%;border-radius:6px}.detail-msg-md code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.detail-msg-md pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5;white-space:pre}.detail-msg-md pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.detail-msg-md pre::-webkit-scrollbar{height:4px}.detail-msg-md pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.detail-message.streaming{border-left:3px solid var(--primary)}.streaming-indicator{display:inline-block;color:var(--primary);animation:pulse-dot 1s ease-in-out infinite;margin-left:4px;font-size:10px;vertical-align:middle}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.detail-msg-time{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:right}.page-files{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.files-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0;gap:12px}.files-breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;flex:1;min-width:0;overflow-x:auto}.files-nav-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-nav-btn:hover:not(:disabled){background:var(--surface-hover, rgba(255,255,255,.06))}.files-nav-btn:disabled{opacity:.3;cursor:default}.breadcrumb-item{cursor:pointer;color:var(--text);padding:2px 4px;border-radius:4px;white-space:nowrap}.breadcrumb-item:hover{background:var(--surface-hover, rgba(255,255,255,.06));color:var(--primary)}.breadcrumb-sep{color:var(--text-muted, #888);flex-shrink:0}.files-toolbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.files-auto-refresh{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.files-auto-refresh input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.files-refresh-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-refresh-btn:hover{background:var(--surface-hover, rgba(255,255,255,.06))}.files-refresh-btn .spin{animation:spin .8s linear infinite}.files-table-wrapper{flex:1;overflow-y:auto;overflow-x:auto}.files-table{width:100%;border-collapse:collapse;font-size:13px}.files-table thead{position:sticky;top:0;z-index:2;background:var(--surface)}.files-table th{text-align:left;padding:8px 12px;font-weight:500;color:var(--text-muted, #888);border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.files-table td{padding:6px 12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.files-row+.files-row td{border-top:1px solid var(--border)}.col-name{width:100%}.col-size,.col-mtime{white-space:nowrap}.col-actions{text-align:right}.files-row{transition:background .15s}.files-row:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.col-name-inner{display:flex;align-items:center;gap:8px}.file-icon{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted, #888)}.file-name{overflow:hidden;text-overflow:ellipsis}.file-name.is-dir{cursor:pointer;color:var(--primary)}.file-name.is-dir:hover{text-decoration:underline}.rename-input{background:var(--bg);border:1px solid var(--primary);color:var(--text);border-radius:4px;padding:2px 6px;font-size:13px;width:100%;outline:none}.col-actions{white-space:nowrap}td.col-actions{text-align:right}.file-action-btn{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center}.file-action-btn:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.file-action-btn.danger:hover{color:var(--danger)}.files-empty{text-align:center;padding:40px 0!important;color:var(--text-muted, #888)}.files-error{padding:40px;text-align:center;color:var(--danger)}.files-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.files-modal{background:var(--surface);border-radius:var(--radius);padding:24px;min-width:340px;max-width:460px;box-shadow:0 8px 32px #00000080}.files-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.files-modal-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:12px}.files-modal-header .files-modal-title{margin-bottom:0}.files-modal-close{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px}.files-modal-close:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.files-modal p{font-size:13px;color:var(--text);margin:0 0 20px;line-height:1.5}.files-modal-actions{display:flex;justify-content:flex-end;gap:8px}.btn-secondary,.btn-danger{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover, rgba(255,255,255,.12))}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.files-detail-modal{min-width:380px}.files-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}.detail-label{color:var(--text-muted, #888);white-space:nowrap}.detail-value{color:var(--text);word-break:break-all}.files-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);padding:8px 20px;border-radius:8px;font-size:13px;box-shadow:0 4px 16px #0006;z-index:1100;animation:toastIn .25s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.mermaid-block{display:flex;justify-content:center;margin:12px 0;padding:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow-x:auto}.mermaid-block svg{max-width:100%;height:auto}.mermaid-block-loading{opacity:.6;font-style:italic}.mermaid-block-error{flex-direction:column;align-items:stretch;background:#ff57570f;border-color:#ff57574d}.mermaid-error-banner{color:#ff8a8a;font-size:12px;margin-bottom:8px;padding:4px 8px;background:#ff57571a;border-radius:4px}.mermaid-block-error pre{margin:0;background:transparent}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:lightbox-fadein .12s ease-out}@keyframes lightbox-fadein{0%{opacity:0}to{opacity:1}}.image-lightbox-content{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 8px 32px #00000080;cursor:default}.image-lightbox-close{position:absolute;top:16px;right:20px;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff26;color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:background var(--transition)}.image-lightbox-close:hover{background:#ffffff4d}
1
+ *{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f0f14;--bg-secondary: #16161e;--surface: #1c1c28;--surface-hover: #24243a;--surface-active: #2a2a42;--primary: #7c6ff7;--primary-hover: #6b5ce6;--primary-glow: rgba(124, 111, 247, .12);--accent: #48c78e;--danger: #ff6b6b;--warning: #f0c060;--text: #e4e4ef;--text-secondary: #9a9ab8;--text-muted: #5e5e7e;--user-bg: #1e2a44;--assistant-bg: #1c1c2e;--border: #2a2a3e;--border-light: #35355a;--radius: 10px;--radius-lg: 14px;--nav-width: 52px;--nav-expanded: 180px;--header-height: 48px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden}#root{height:100%}.app-layout{display:flex;height:100%}.nav-rail{width:var(--nav-width);min-width:var(--nav-width);background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20;transition:width var(--transition),min-width var(--transition);overflow:hidden}.nav-rail:hover{width:var(--nav-expanded);min-width:var(--nav-expanded)}body.is-dragging-chat .nav-rail:hover{width:var(--nav-width);min-width:var(--nav-width)}.nav-rail-top{display:flex;flex-direction:column;flex:1;padding:8px 6px;gap:2px}.nav-logo{width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;background:linear-gradient(135deg,var(--primary),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:12px;flex-shrink:0}.nav-item{display:flex;align-items:center;gap:10px;padding:0 10px;height:38px;border:none;background:transparent;color:var(--text-muted);border-radius:8px;cursor:pointer;transition:all var(--transition);white-space:nowrap;overflow:hidden;position:relative}.nav-item:hover{color:var(--text);background:var(--surface-hover)}.nav-item.active{color:var(--text);background:var(--surface-active)}.nav-item.active:before{content:"";position:absolute;left:-6px;top:6px;bottom:6px;width:3px;background:var(--primary);border-radius:0 2px 2px 0}.nav-item-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}.nav-item-svg{display:flex;align-items:center;justify-content:center;width:20px;height:20px}.nav-item-svg svg{width:20px;height:20px}.nav-item-label{font-size:.8rem;font-weight:500;opacity:0;transition:opacity var(--transition);display:flex;flex-direction:column;align-items:center;line-height:1.2}.nav-item-plugin-name{font-size:.6rem;font-weight:400;color:var(--text-muted);opacity:.7}.nav-rail:hover .nav-item-label{opacity:1}.nav-rail-bottom{padding:12px 6px;display:flex;justify-content:center}.nav-status{width:10px;height:10px;border-radius:50%}.nav-status.online{background:var(--accent);box-shadow:0 0 8px #48c78e80}.nav-status.offline{background:var(--danger);box-shadow:0 0 8px #ff6b6b80}.content-area{flex:1;display:flex;flex-direction:column;min-width:280px;overflow:hidden}.content-header{display:flex;align-items:center;gap:12px;padding:10px 24px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.content-title{font-size:.92rem;font-weight:600;flex:1;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.content-user{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.content-user-level{padding:1px 6px;border:1px solid var(--border);border-radius:999px;font-size:11px;opacity:.85}.content-body{flex:1;overflow:hidden;position:relative}.page-content{padding:20px 28px;overflow-y:auto;overflow-x:hidden;height:100%;animation:page-fade .25s ease}.section-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-top:24px;margin-bottom:10px}.section-label:first-child{margin-top:0}.empty-hint{color:var(--text-muted);font-size:.82rem}.page-content::-webkit-scrollbar{width:5px}.page-content::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px}.overview-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.overview-card:hover{border-color:var(--border-light)}.overview-card-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0}.overview-card-body{min-width:0}.overview-card-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.overview-card-value{font-size:1rem;font-weight:700;color:var(--text)}.status-dot-lg{display:inline-block;width:12px;height:12px;border-radius:50%}.status-dot-lg.online{background:var(--accent);box-shadow:0 0 6px #48c78e66}.status-dot-lg.offline{background:var(--danger);box-shadow:0 0 6px #ff6b6b66}.services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:24px}.service-slot-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color var(--transition)}.service-slot-card:hover{border-color:var(--border-light)}.service-slot-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.service-slot-header-badges{display:flex;align-items:center;gap:6px}.service-slot-name{font-size:.92rem;font-weight:700;color:var(--text)}.service-slot-select-row{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.service-slot-label{font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.service-select{flex:1;min-width:0;padding:5px 10px;font-size:.78rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;outline:none;cursor:pointer;min-width:140px;transition:border-color var(--transition)}.service-select:focus{border-color:var(--primary)}.service-clear-prefer{padding:4px 8px;font-size:.72rem;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.service-clear-prefer:hover:not(:disabled){color:var(--text);border-color:var(--text-secondary)}.service-clear-prefer:disabled{opacity:.5;cursor:not-allowed}.service-slot-single{display:flex;align-items:center;gap:8px}.service-slot-provider-name{font-size:.8rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-slot-context-id{font-weight:400;color:var(--text-muted);font-size:.72rem}.service-slot-caps{margin-top:8px}.service-provider-row{padding:6px 0;border-top:1px solid var(--border)}.service-provider-row:first-child,.service-provider-row.winner{border-top:none}.service-provider-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.service-provider-name{font-size:.85rem;font-weight:600;color:var(--text);font-family:SF Mono,Fira Code,monospace}.service-provider-meta{display:flex;gap:8px;align-items:center;margin-top:2px}.service-priority{font-size:.7rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;background:var(--bg);padding:1px 6px;border-radius:4px;border:1px solid var(--border)}.service-router-badge{font-size:.68rem;background:#6366f11f;color:#6366f1;border:1px solid rgba(99,102,241,.35);padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge{font-size:.68rem;padding:1px 6px;border-radius:4px;font-weight:600}.service-winner-badge.preferred{background:#eab30826;color:#ca8a04;border:1px solid rgba(234,179,8,.4)}.service-winner-badge.default{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.service-prefer-btn{background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 4px;cursor:pointer;color:var(--text-muted);display:inline-flex;align-items:center}.service-prefer-btn:hover:not(:disabled){background:var(--bg);color:var(--text)}.service-prefer-btn.preferred{color:#ca8a04}.service-prefer-btn:disabled{cursor:wait;opacity:.5}.service-slot-toggle{margin-top:8px;background:transparent;border:none;padding:4px 0;cursor:pointer;color:var(--text-secondary);font-size:.78rem;display:inline-flex;align-items:center;gap:4px}.service-slot-toggle:hover{color:var(--text)}.service-slot-rest{margin-top:6px}.tools-grid{display:flex;flex-wrap:wrap;gap:6px}.marketplace-install-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.marketplace-install-input{flex:1;padding:6px 10px;background:var(--bg-light);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.85rem;outline:none}.marketplace-install-input:focus{border-color:var(--accent)}.marketplace-plugin-list{display:flex;flex-direction:column;gap:8px}.page-marketplace{display:flex;flex-direction:column;align-items:stretch}.marketplace-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px;align-items:start}.marketplace-card{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin:0;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary)}.marketplace-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.marketplace-card-name{font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text);text-decoration:none}a.marketplace-card-name:hover{color:var(--primary);text-decoration:underline}.market-filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0 14px}.market-count{margin-left:8px;font-size:.75rem;font-weight:400;color:var(--text-muted)}.market-kw{font-size:.62rem;padding:1px 7px;border-radius:8px;background:var(--surface-hover);color:var(--text-secondary);border:1px solid transparent;cursor:pointer;transition:var(--transition)}.market-kw:hover{border-color:var(--primary);color:var(--text)}.market-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:.69rem;color:var(--text-muted);align-items:center}.market-meta-item{display:inline-flex;align-items:center;gap:4px}.marketplace-card-version{font-size:.72rem;color:var(--text-secondary)}.marketplace-card-author{font-size:.72rem;color:var(--text-secondary);opacity:.8}.marketplace-card-desc{font-size:.8rem;color:var(--text-secondary);line-height:1.5}.marketplace-card .btn{align-self:flex-start}.chat-column{display:flex;flex-direction:column;height:100%;flex-shrink:1;min-width:240px}.session-sidebar{display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--bg-secondary);max-height:280px;overflow:hidden;flex-shrink:0}.session-sidebar.collapsed{max-height:none;padding:4px 8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.session-sidebar-toggle{font-size:12px;color:var(--text-muted)}.session-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.session-sidebar-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.session-sidebar-actions{display:flex;gap:4px}.session-sidebar-btn{width:24px;height:24px;border-radius:4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:background var(--transition),color var(--transition)}.session-sidebar-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.session-sidebar-list{overflow-y:auto;flex:1;padding:4px 0}.session-node-row{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;border-radius:4px;margin:1px 4px;transition:background var(--transition);font-size:13px;min-height:28px}.session-node-row:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.session-node-row.active{background:var(--accent-faded, rgba(99,102,241,.15));color:var(--accent, #6366f1)}.session-node-row.archived{opacity:.5}.session-expand-btn{width:16px;height:16px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:0;display:flex;align-items:center;justify-content:center;flex-shrink:0}.session-status-icon{font-size:8px;flex-shrink:0;width:12px;text-align:center}.session-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-rename-input{flex:1;min-width:0;padding:1px 4px;border:1px solid var(--accent);border-radius:3px;background:var(--bg);color:var(--text);font-size:13px;outline:none}.session-child-badge{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text-muted);font-size:10px;padding:1px 5px;border-radius:8px;flex-shrink:0}.session-actions{display:none;gap:2px;flex-shrink:0}.session-node-row:hover .session-actions{display:flex}.session-action-btn{width:20px;height:20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center}.session-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text)}.session-action-btn.danger:hover{color:var(--color-error, #f44336)}.session-config-editor{padding:8px 12px;margin:2px 4px 4px;background:var(--bg, #1a1a2e);border:1px solid var(--border);border-radius:6px;font-size:12px;display:flex;flex-direction:column;gap:6px}.session-config-loading{color:var(--text-muted);text-align:center;padding:8px}.session-config-field{display:flex;flex-direction:column;gap:2px}.session-config-field>span{font-size:11px;color:var(--text-muted);font-weight:500}.session-config-field select,.session-config-field input[type=number],.session-config-field textarea{padding:3px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg-secondary);color:var(--text);font-size:12px;outline:none;resize:vertical}.session-config-field select:focus,.session-config-field input:focus,.session-config-field textarea:focus{border-color:var(--accent, #6366f1)}.session-config-chips{display:flex;flex-wrap:wrap;gap:4px}.session-config-chip{padding:2px 8px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;transition:all var(--transition)}.session-config-chip.active{background:var(--accent-faded, rgba(99,102,241,.2));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1)}.session-config-chip.active.inherited{background:var(--accent-faded, rgba(99,102,241,.1));color:var(--accent, #6366f1);border-color:var(--accent, #6366f1);border-style:dashed;opacity:.7}.session-config-chip.reset{font-size:10px;color:var(--text-muted);border-style:dashed}.session-config-chip:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.session-config-toggles{display:flex;flex-direction:column;gap:4px}.session-config-toggles label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:12px;color:var(--text-secondary)}.session-config-toggles input[type=checkbox]{accent-color:var(--accent, #6366f1)}.session-config-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.session-config-btn{padding:3px 12px;border:1px solid var(--border);border-radius:4px;font-size:12px;cursor:pointer;transition:all var(--transition);background:transparent;color:var(--text-secondary)}.session-config-btn.save{background:var(--accent, #6366f1);color:#fff;border-color:var(--accent, #6366f1)}.session-config-btn.save:hover{opacity:.85}.session-config-btn.cancel:hover{background:var(--bg-hover, rgba(255,255,255,.06))}.chat-panel{display:flex;flex-direction:column;background:var(--bg);flex:1;min-height:0;position:relative}.chat-panel.drag-over{outline:2px dashed var(--primary);outline-offset:-2px}.drag-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;pointer-events:none}.drag-overlay-content{font-size:1.1rem;font-weight:600;color:#fff;background:var(--primary);padding:14px 28px;border-radius:var(--radius-lg);box-shadow:0 4px 20px #0000004d}.resize-handle{width:5px;cursor:col-resize;background:transparent;flex-shrink:0;position:relative;z-index:10;transition:background var(--transition)}.resize-handle:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--border)}.resize-handle:hover,.resize-handle:active{background:var(--primary-glow)}.resize-handle:hover:after,.resize-handle:active:after{background:var(--primary)}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.chat-panel-title{font-size:.88rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}.chat-panel-session-name{color:var(--text-muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel-new-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;transition:background var(--transition),color var(--transition)}.chat-panel-new-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.chat-panel-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.uploaded-files-drawer{position:absolute;top:56px;right:12px;width:380px;max-width:calc(100% - 24px);max-height:60vh;background:var(--bg, #1c1c1e);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:10px;box-shadow:0 8px 24px #00000059;z-index:50;display:flex;flex-direction:column;overflow:hidden}.uploaded-files-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border, rgba(255,255,255,.08))}.uploaded-files-drawer-title{font-weight:600;font-size:.9rem}.uploaded-files-drawer-actions{display:flex;gap:4px}.uploaded-files-drawer-btn{width:26px;height:26px;border-radius:5px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.uploaded-files-drawer-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.uploaded-files-drawer-btn.danger:hover{color:#ff6b6b}.uploaded-files-drawer-btn[disabled]{opacity:.4;cursor:not-allowed}.uploaded-files-drawer-body{overflow-y:auto;padding:6px}.uploaded-files-drawer-empty,.uploaded-files-drawer-error{padding:24px 12px;text-align:center;color:var(--text-muted);font-size:.85rem}.uploaded-files-drawer-error{color:#ff6b6b}.uploaded-files-drawer-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px}.uploaded-files-drawer-item:hover{background:var(--bg-hover, rgba(255,255,255,.04))}.uploaded-files-drawer-icon{color:var(--text-muted);flex-shrink:0}.uploaded-files-drawer-info{flex:1;min-width:0}.uploaded-files-drawer-name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-meta{font-size:.7rem;color:var(--text-muted);margin-top:2px}.uploaded-files-drawer-id{font-size:.65rem;color:var(--text-muted);opacity:.7;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploaded-files-drawer-btn .spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.token-usage-badge{position:relative;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;background:#ffffff0f;cursor:default;font-size:.75rem;color:var(--text-muted);transition:background var(--transition)}.token-usage-badge:hover{background:#ffffff1a}.token-usage-number{font-variant-numeric:tabular-nums}.token-usage-number.caution{color:#f0a020}.token-usage-number.warn{color:#ef4444}.token-usage-panel{position:absolute;top:calc(100% + 8px);right:0;width:240px;background:var(--bg-secondary, #1e1e2e);border:1px solid var(--border);border-radius:10px;padding:14px;box-shadow:0 8px 24px #00000059;z-index:100;font-size:.78rem}.token-usage-panel:before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}.token-panel-title{font-weight:600;color:var(--text);margin-bottom:10px}.token-panel-bar{height:6px;border-radius:3px;background:#ffffff14;margin-bottom:4px;overflow:hidden}.token-panel-bar-fill{height:100%;border-radius:3px;background:var(--primary, #6366f1);transition:width .3s ease}.token-panel-bar-fill.caution{background:#f0a020}.token-panel-bar-fill.warn{background:#ef4444}.token-panel-ratio{color:var(--text-muted);font-size:.72rem;margin-bottom:10px}.token-panel-rows{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.token-panel-row{display:flex;justify-content:space-between;color:var(--text-secondary)}.token-panel-row.sub{padding-left:12px;font-size:.75rem;opacity:.85}.token-panel-row span:last-child{font-variant-numeric:tabular-nums;color:var(--text)}.token-panel-section-header{display:flex;justify-content:space-between;color:var(--text);font-weight:500;font-size:.8rem;padding-top:2px;border-top:1px solid var(--border)}.token-panel-section-total{font-variant-numeric:tabular-nums;font-weight:400;color:var(--text-secondary)}.token-panel-compress-btn{width:100%;padding:6px 0;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.78rem;display:flex;align-items:center;justify-content:center;gap:4px;transition:background var(--transition),color var(--transition)}.token-panel-compress-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.token-panel-compress-btn:disabled{opacity:.5;cursor:not-allowed}.token-panel-empty{color:var(--text-secondary);font-size:.78rem;text-align:center;padding:8px 0}.compress-bubble{display:flex;align-items:center;gap:6px;padding:8px 14px;margin:4px 0;border-radius:8px;font-size:.82rem;color:var(--text-secondary);background:#6366f11a;border:1px solid rgba(99,102,241,.2)}.compress-bubble.start{color:var(--primary, #6366f1)}.compress-bubble.done{color:#22c55e;background:#22c55e1a;border-color:#22c55e33}.compress-bubble.error{color:#ef4444;background:#ef44441a;border-color:#ef444433}@keyframes compress-spin{to{transform:rotate(360deg)}}.compress-spinner{animation:compress-spin 1s linear infinite}.system-event-separator{display:flex;align-items:center;gap:12px;padding:8px 0;-webkit-user-select:none;user-select:none}.system-event-line{flex:1;height:1px;background:var(--border-color, rgba(255, 255, 255, .1))}.system-event-text{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-secondary, #888);white-space:nowrap}.system-event-separator.compressing .system-event-text{color:var(--primary, #6366f1)}.system-event-separator.compress-done .system-event-text{color:#22c55e}.system-event-separator.compress-error .system-event-text{color:#ef4444}.compress-timer{font-variant-numeric:tabular-nums;opacity:.8;margin-left:2px}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px 24px;display:flex;flex-direction:column;gap:8px;will-change:scroll-position;scroll-behavior:auto}.messages::-webkit-scrollbar{width:5px}.messages::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.empty{text-align:center;color:var(--text-muted);margin:auto;font-size:.95rem}.empty-icon{font-size:2.5rem;margin-bottom:12px;opacity:.4}.message-group{display:flex;flex-direction:column;gap:2px;max-width:88%;animation:msg-in .3s cubic-bezier(.4,0,.2,1) both;contain:layout style}.message-group.user{align-self:flex-end}.message-group.assistant{align-self:flex-start}.message-sender{font-size:.72rem;font-weight:600;color:var(--text-muted);padding:0 2px;display:flex;align-items:baseline;gap:8px}.message-group.user .message-sender{justify-content:flex-end}.message-time{font-weight:400;font-size:.68rem;opacity:.7;font-variant-numeric:tabular-nums}.message-model-badge{font-weight:400;font-size:.66rem;padding:1px 6px;border-radius:999px;background:var(--surface-2, rgba(120, 120, 140, .12));color:var(--text-secondary, #888);font-variant-numeric:tabular-nums;letter-spacing:.02em;cursor:help}.message-bubble{padding:10px 14px;border-radius:var(--radius-lg);line-height:1.65;word-break:break-word;font-size:.9rem}.message-group.user .message-bubble{background:var(--user-bg);border-bottom-right-radius:4px;white-space:pre-wrap}.message-group.assistant .message-bubble{background:var(--assistant-bg);border:1px solid var(--border);border-bottom-left-radius:4px}.message-group.assistant .message-bubble p{margin:0 0 .6em;line-height:1.7}.message-group.assistant .message-bubble p:last-child{margin-bottom:0}.message-group.assistant .message-bubble h1,.message-group.assistant .message-bubble h2,.message-group.assistant .message-bubble h3,.message-group.assistant .message-bubble h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.message-group.assistant .message-bubble h1:first-child,.message-group.assistant .message-bubble h2:first-child,.message-group.assistant .message-bubble h3:first-child{margin-top:0}.message-group.assistant .message-bubble h1{font-size:1.3em}.message-group.assistant .message-bubble h2{font-size:1.15em}.message-group.assistant .message-bubble h3{font-size:1.05em}.message-group.assistant .message-bubble ul,.message-group.assistant .message-bubble ol{margin:.4em 0 .6em 1.2em;padding:0}.message-group.assistant .message-bubble li{margin-bottom:.25em}.message-group.assistant .message-bubble blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.message-group.assistant .message-bubble a{color:var(--primary);text-decoration:none}.message-group.assistant .message-bubble a:hover{text-decoration:underline}.message-group.assistant .message-bubble hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.message-group.assistant .message-bubble table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.message-group.assistant .message-bubble th,.message-group.assistant .message-bubble td{border:1px solid var(--border);padding:6px 10px;text-align:left}.message-group.assistant .message-bubble th{background:var(--surface);font-weight:600}.message-group.assistant .message-bubble img{max-width:100%;border-radius:6px}.message-group.assistant .message-bubble code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.message-group.assistant .message-bubble pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5}.message-group.assistant .message-bubble pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.message-group.assistant .message-bubble pre::-webkit-scrollbar{height:4px}.message-group.assistant .message-bubble pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.json-message-view{display:flex;flex-direction:column;gap:6px}.json-field{display:flex;align-items:baseline;gap:8px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 40%,transparent);flex-wrap:wrap}.json-field:last-child{border-bottom:none}.json-field-label{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;min-width:56px;-webkit-user-select:none;user-select:none}.json-field-value{color:var(--text);font-size:.88rem;line-height:1.5;word-break:break-word}.json-field-value-md{flex:1;min-width:0}.json-field-value-md p{margin:0}.json-field-value-md p+p{margin-top:.4em}.json-field-reply{margin-top:4px;padding:8px 10px;background:color-mix(in srgb,var(--primary) 6%,transparent);border-radius:var(--radius);border-bottom:none;flex-direction:column;gap:4px}.json-field-reply .json-field-label{color:var(--primary)}.json-field-group{flex-direction:column;gap:0;padding-bottom:0}.json-field-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;border-radius:var(--radius)}.json-field-toggle:hover{opacity:.8}.json-field-children{padding-left:16px;border-left:2px solid color-mix(in srgb,var(--border) 60%,transparent);margin-left:6px}.json-field-partial{opacity:.6;font-style:italic}.streaming-cursor{display:inline-block;width:2px;height:1em;background:var(--primary);margin-left:1px;vertical-align:text-bottom;animation:cursor-blink .8s step-end infinite}@keyframes cursor-blink{50%{opacity:0}}.typing-indicator{display:flex;gap:4px;padding:14px 18px}.typing-indicator span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:typingBounce 1.2s infinite}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}.input-area{display:flex;align-items:stretch;gap:10px;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary)}.input-area textarea{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 14px;color:var(--text);font-size:.9rem;resize:none;font-family:inherit;outline:none;min-height:52px;max-height:300px;overflow-y:auto;transition:border-color var(--transition)}.input-area textarea::placeholder{color:var(--text-muted)}.input-area textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.send-btn{background:var(--primary);color:#fff;border:none;border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.send-btn:hover:not(:disabled){background:var(--primary-hover);transform:scale(1.05)}.send-btn:disabled{opacity:.35;cursor:not-allowed}.send-btn.stop-btn,.send-btn.stop-mode{background:var(--danger, #e53935);font-size:.85rem}.send-btn.stop-btn:hover:not(:disabled),.send-btn.stop-mode:hover:not(:disabled){background:color-mix(in srgb,var(--danger, #e53935) 85%,black)}.stop-generate-btn{display:flex;align-items:center;gap:4px;margin-top:6px;padding:4px 14px;font-size:.78rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger, #e53935) 30%,transparent);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);align-self:flex-start}.stop-generate-btn:hover{background:color-mix(in srgb,var(--danger, #e53935) 20%,transparent);border-color:var(--danger, #e53935)}.checkpoint-rollback-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-self:flex-start}.checkpoint-rollback-actions .checkpoint-rollback-btn{margin-top:0}.checkpoint-rollback-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;font-size:.72rem;color:var(--text-secondary, #888);background:transparent;border:1px dashed color-mix(in srgb,var(--text-secondary, #888) 35%,transparent);border-radius:var(--radius);cursor:pointer;opacity:.55;transition:all var(--transition);align-self:flex-start}.checkpoint-rollback-btn:hover{opacity:1;color:var(--warning, #d97706);border-color:var(--warning, #d97706);background:color-mix(in srgb,var(--warning, #d97706) 8%,transparent)}.checkpoint-warn{display:inline-flex;align-items:center;gap:2px;margin-left:4px;padding:0 4px;font-size:.68rem;color:var(--danger, #e53935);background:color-mix(in srgb,var(--danger, #e53935) 12%,transparent);border-radius:3px}.checkpoint-rolled-back{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:.72rem;color:var(--text-muted, #aaa);-webkit-user-select:none;user-select:none}.tool-limit-bar{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px 0;padding:12px 16px;background:color-mix(in srgb,var(--warning, #ff9800) 8%,var(--surface));border:1px solid color-mix(in srgb,var(--warning, #ff9800) 30%,transparent);border-radius:var(--radius)}.tool-limit-text{font-size:.82rem;color:var(--warning, #ff9800);font-weight:500}.tool-limit-actions{display:flex;align-items:center;gap:10px}.tool-limit-btn.continue{padding:5px 16px;font-size:.8rem;color:#fff;background:var(--primary, #2196f3);border:none;border-radius:var(--radius);cursor:pointer;transition:all var(--transition)}.tool-limit-btn.continue:hover{background:color-mix(in srgb,var(--primary, #2196f3) 80%,#000)}.tool-limit-hint{font-size:.75rem;color:var(--text-secondary, #888)}.tool-call-progress-bubble{padding:0;background:transparent;border:none;box-shadow:none;margin-top:-2px}.tool-call-block-pending{display:block;margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden;animation:tool-call-pending-pulse 1.4s ease-in-out infinite}.tool-call-block-pending .tool-call-summary{padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.tool-call-progress-icon{display:inline-flex;align-items:center;color:#3b82f6d9}.tool-call-progress-meta{margin-left:auto;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text-tertiary, rgba(255, 255, 255, .35))}@keyframes tool-call-pending-pulse{0%,to{border-color:#3b82f626}50%{border-color:#3b82f68c}}.upload-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:42px;min-height:42px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0;align-self:stretch}.upload-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary)}.upload-btn:disabled{opacity:.35;cursor:not-allowed}.pending-images{display:flex;gap:8px;padding:8px 24px;overflow-x:auto;overflow-y:hidden;border-top:1px solid var(--border);background:var(--bg-secondary);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-images::-webkit-scrollbar{height:4px}.pending-images::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-images::-webkit-scrollbar-track{background:transparent}.pending-image-item{position:relative;width:64px;min-width:64px;height:64px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.pending-image-item img{width:100%;height:100%;object-fit:cover}.pending-image-remove{position:absolute;top:0;right:0;background:#0009;color:#fff;border:none;width:18px;height:18px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 var(--radius)}.pending-image-remove:hover{background:var(--danger, #e53935)}.pending-order-badge{position:absolute;bottom:2px;left:2px;background:#0009;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;line-height:1;pointer-events:none}.pending-file-order{font-size:.7rem;color:var(--text-muted);min-width:18px;flex-shrink:0}.message-images{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px;max-width:100%}.message-image-wrap{position:relative;display:inline-flex}.message-image{max-width:min(200px,100%);max-height:200px;border-radius:var(--radius);border:1px solid var(--border);object-fit:contain;cursor:pointer;transition:transform var(--transition)}.message-image:hover{transform:scale(1.02)}.message-attach-order{position:absolute;bottom:3px;left:3px;background:#0000008c;color:#fff;font-size:.6rem;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:0 var(--radius) 0 var(--radius);padding:0 3px;pointer-events:none}.message-files{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.message-file-item{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;color:var(--text);max-width:fit-content}.message-file-item .message-attach-order{position:static;background:none;color:var(--text-muted);font-size:.7rem;min-width:unset;height:unset;border-radius:0;padding:0}.pending-files{display:flex;gap:6px;padding:8px 24px;background:var(--bg-secondary);border-top:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pending-files::-webkit-scrollbar{height:4px}.pending-files::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pending-files::-webkit-scrollbar-track{background:transparent}.pending-file-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:.82rem;max-width:fit-content;white-space:nowrap;flex-shrink:0}.pending-file-icon{flex-shrink:0}.pending-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.pending-file-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:0 2px;font-size:.9rem;flex-shrink:0}.pending-file-remove:hover{color:var(--danger, #e53935)}.todo-bar{border-top:1px solid var(--border);background:var(--bg-secondary);padding:0 24px;font-size:.82rem}.todo-bar-header{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.todo-bar-icon{color:var(--primary);flex-shrink:0}.todo-bar-done .todo-bar-icon{color:var(--success, #4caf50)}.todo-bar-title{font-weight:600;color:var(--text);font-size:.82rem}.todo-bar-count{color:var(--text-muted);font-size:.75rem;flex-shrink:0}.todo-bar-progress{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;min-width:40px}.todo-bar-progress-fill{height:100%;background:var(--primary);border-radius:2px;transition:width .3s ease}.todo-bar-done .todo-bar-progress-fill{background:var(--success, #4caf50)}.todo-bar-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0}.todo-bar-clear{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;align-items:center;flex-shrink:0;opacity:.6;transition:opacity var(--transition),color var(--transition)}.todo-bar-clear:hover{color:var(--danger, #e53935);opacity:1}.todo-bar-clear:disabled{opacity:.25;cursor:not-allowed;color:var(--text-muted)}.todo-bar-list{display:flex;flex-direction:column;gap:2px;padding-bottom:8px}.todo-item{display:flex;align-items:center;gap:8px;padding:3px 0;line-height:1.4}.todo-item-title{color:var(--text);font-size:.8rem}.todo-item-completed .todo-item-title{color:var(--text-muted);text-decoration:line-through}.todo-item-in-progress .todo-item-title{color:var(--primary);font-weight:500}.todo-icon{flex-shrink:0}.todo-icon-pending{color:var(--text-muted);opacity:.5}.todo-icon-active{color:var(--primary);animation:todoSpin 1.5s linear infinite}.todo-icon-done{color:var(--success, #4caf50)}@keyframes todoSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page-logs{display:flex;flex-direction:column;height:100%;padding:16px 24px}.log-controls{display:flex;align-items:center;gap:6px;margin-bottom:12px;flex-shrink:0}.log-filter{padding:5px 12px;font-size:.72rem;font-weight:500;background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all var(--transition)}.log-filter.active{background:var(--primary-glow);color:var(--primary);border-color:var(--primary)}.log-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.log-list::-webkit-scrollbar{width:5px}.log-list::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.log-entry{font-family:SF Mono,Fira Code,monospace;font-size:.72rem;line-height:1.6;padding:3px 8px;border-radius:4px;background:var(--surface);display:flex;gap:6px;flex-wrap:nowrap;cursor:pointer}.log-entry:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.log-entry.expanded{flex-wrap:wrap;background:var(--surface-hover, rgba(255,255,255,.06));align-items:flex-start}.log-entry .log-time{color:var(--text-muted);flex-shrink:0}.log-entry .log-level{font-weight:600;flex-shrink:0;width:38px}.log-entry .log-level.debug{color:var(--text-muted)}.log-entry .log-level.info{color:#60a5fa}.log-entry .log-level.warn{color:var(--warning)}.log-entry .log-level.error{color:var(--danger)}.log-entry .log-scope{color:#c084fc;flex-shrink:0}.log-entry .log-msg{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-entry.expanded .log-msg{white-space:pre-wrap;word-break:break-word;overflow:visible;text-overflow:clip;flex:1 1 100%}.log-hint{margin-left:auto;font-size:.7rem;color:var(--text-muted);align-self:center}.page-plugin-config{width:100%}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.7rem;font-weight:600}.badge.active{background:#48c78e26;color:var(--accent)}.badge.official{background:#5b8def26;color:#5b8def}.badge.community{background:#ffffff0f;color:var(--text-secondary)}.badge.pending{background:#f0c06026;color:var(--warning)}.badge.error,.badge.disposed{background:#ff6b6b26;color:var(--danger)}.tool-chip{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.72rem;font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);color:var(--text-secondary);margin:2px}.tool-groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:0 2px}.tool-group-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;transition:border-color .2s}.tool-group-card:hover{border-color:var(--primary)}.tool-group-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tool-group-name{font-weight:600;font-size:.88rem;color:var(--text)}.tool-group-count{font-size:.72rem;color:var(--primary);background:#6366f11a;padding:2px 8px;border-radius:10px}.tool-group-desc{font-size:.76rem;color:var(--text-secondary);line-height:1.4;margin-bottom:8px}.tool-group-meta{display:flex;align-items:center;gap:8px;font-size:.7rem;color:var(--text-muted)}.tool-group-id{font-family:SF Mono,Fira Code,monospace;background:var(--surface-active);padding:1px 6px;border-radius:4px}.tool-group-plugin{opacity:.7}.toast{position:fixed;top:16px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);border:1px solid var(--primary);border-radius:var(--radius);padding:8px 20px;font-size:.82rem;z-index:1000;animation:toastIn .25s ease;box-shadow:0 4px 20px #0006}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.plugin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;overflow:hidden;transition:opacity var(--transition)}.plugin-card.disabled{opacity:.55}.plugin-card.errored{border-color:var(--danger);border-left:3px solid var(--danger)}.plugin-error-msg{padding:6px 14px 8px;font-size:.78rem;color:var(--danger);background:#ef44440f}.overview-card-error{border-color:var(--danger)}.plugin-search-row{position:relative;margin:10px 0 16px}.plugin-search-input{width:100%;padding:9px 36px 9px 14px;font-size:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);outline:none;transition:border-color var(--transition)}.plugin-search-input::placeholder{color:var(--text-muted)}.plugin-search-input:focus{border-color:var(--primary)}.plugin-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:13px;cursor:pointer;padding:2px 4px}.plugin-search-clear:hover{color:var(--text-secondary)}.plugin-category{margin-bottom:12px}.plugin-category-header{display:flex;align-items:center;gap:8px;padding:8px 4px;cursor:pointer;-webkit-user-select:none;user-select:none}.plugin-category-name{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.plugin-category-count{font-size:11px;color:var(--text-muted);background:var(--surface-active);padding:1px 7px;border-radius:10px;font-weight:600}.plugin-card-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.plugin-card-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plugin-card-name{font-size:.85rem;font-weight:600}.plugin-card-module-name{font-size:.7rem;font-weight:400;opacity:.45;margin-left:6px}.plugin-instance-suffix{color:var(--primary);font-weight:400;opacity:.85}.core-badge{background:#7c6ff726;color:var(--primary);font-size:.65rem}.plugin-card-provides{padding:0 14px 8px}.plugin-card-caps{padding:0 14px 8px;display:flex;flex-wrap:wrap;gap:4px}.cap-chip{font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary)}.cap-chip.dep-required{border-color:#5b8def;color:#5b8def}.cap-chip.dep-optional{opacity:.75}.cap-chip.cap-sensitive{border-color:#f59e0b;color:#f59e0b}.cap-chip.cap-danger{border-color:#ef4444;color:#ef4444;font-weight:600}.plugin-card-extends{padding:4px 14px 8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.extends-label{font-size:.75rem;color:#9ca3af;margin-right:4px}.extends-chip{display:inline-block;padding:1px 7px;border-radius:8px;font-size:.7rem;font-family:Fira Mono,monospace}.extends-chip.event{background:#3b82f626;color:#60a5fa}.extends-chip.hook{background:#a855f726;color:#c084fc}.extends-chip.mixin{background:#eab30826;color:#fbbf24}.plugin-provides-inline{display:inline-flex;gap:4px;margin-left:6px;flex-wrap:wrap}.provides-chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:.65rem;font-family:SF Mono,Fira Code,monospace;background:#7c6ff71f;color:var(--primary);border:1px solid rgba(124,111,247,.25)}.plugin-card-config{padding:0 14px 12px;border-top:1px solid var(--border)}.plugin-reload-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-secondary);opacity:.92;display:flex;align-items:center;justify-content:center;gap:8px;z-index:10;border-radius:8px;font-size:13px;color:var(--text-muted);pointer-events:all}.plugin-reload-spinner{animation:spin .8s linear infinite}.toggle-switch{position:relative;display:inline-block;width:36px;height:20px;flex-shrink:0}.toggle-switch.core-locked{opacity:.4;pointer-events:none}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--border-light);border-radius:20px;cursor:pointer;transition:background var(--transition)}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:2px;bottom:2px;background:var(--text);border-radius:50%;transition:transform var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(16px)}.btn{padding:6px 14px;font-size:.78rem;font-weight:500;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97);transition-duration:.05s}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:#fff}.btn-danger{background:#d32f2f;color:#fff;border-color:#d32f2f}.btn-danger:hover:not(:disabled){background:#b71c1c}.btn-warn{background:#ed6c02;color:#fff;border-color:#ed6c02}.btn-warn:hover:not(:disabled){background:#e65100}.btn-sm{padding:4px 10px;font-size:.72rem}.config-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.config-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.config-block-header{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background var(--transition)}.config-block-hint{flex:1;font-size:.72rem;color:var(--text-muted);opacity:.7;text-align:right}.config-block-header:hover{background:var(--surface-hover)}.config-block-title{font-size:.85rem;font-weight:600}.config-block-toggle{font-size:.7rem;color:var(--text-muted);transition:transform var(--transition)}.config-block-toggle.open{transform:rotate(90deg)}.config-block-body{padding:0 12px 10px;font-size:.8rem}.config-item{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;border-top:1px solid var(--border)}.config-item:first-child{border-top:none}.config-item .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem}.config-item .val{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.config-nested{padding:2px 0}.config-nested-header{display:flex;align-items:center;gap:6px;padding:4px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.config-nested-header:hover{background:var(--surface-hover);border-radius:4px}.config-nested-header .key{color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;font-weight:600}.config-nested-count{font-size:.68rem;color:var(--text-muted);margin-left:auto}.config-nested-body{border-left:1px solid var(--border);margin-left:6px;padding-left:8px}.config-edit-form{padding:8px 0}.config-edit-row{margin-bottom:8px}.config-edit-label{display:block;font-size:.72rem;color:var(--text-muted);font-family:SF Mono,Fira Code,monospace;margin-bottom:3px}.config-edit-input{width:100%;padding:6px 10px;font-size:.78rem;font-family:SF Mono,Fira Code,monospace;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);outline:none;transition:border-color var(--transition)}.config-edit-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}textarea.config-textarea{min-height:80px;max-height:300px;resize:vertical;font-family:inherit;line-height:1.5;overflow-y:auto}.config-edit-actions{display:flex;gap:6px;padding-top:4px}.config-edit-hint{display:block;font-size:.68rem;color:var(--text-muted);margin-top:2px;opacity:.8}.field-key{font-family:SF Mono,Fira Code,monospace;font-size:inherit;color:var(--text);background:#ffffff0f;padding:1px 4px;border-radius:3px}.field-hint{font-size:.68rem;color:var(--text-muted);font-family:inherit;opacity:.85}.config-edit-group{margin-bottom:10px;padding:8px 10px;background:#ffffff05;border:1px solid var(--border);border-radius:8px}.config-edit-group-label{font-size:.74rem;font-weight:600;color:var(--text-secondary);margin-bottom:8px}.config-edit-input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}select.config-edit-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;padding-right:28px;cursor:pointer}.multiselect-group{display:flex;flex-wrap:wrap;gap:6px 12px}.multiselect-item{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.multiselect-item input[type=checkbox]{accent-color:#5b7fff}.thinking-block{margin-bottom:4px;border-radius:8px;background:#8b5cf60f;border:1px solid rgba(139,92,246,.15);overflow:hidden}.thinking-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.thinking-summary::-webkit-details-marker{display:none}.thinking-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.thinking-summary:before{transform:rotate(90deg)}.thinking-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(139,92,246,.1)}.thinking-content p{margin:4px 0}.thinking-content::-webkit-scrollbar{width:4px}.thinking-content::-webkit-scrollbar-thumb{background:#8b5cf633;border-radius:2px}.tool-call-block{margin:8px 0;border-radius:8px;background:#3b82f60f;border:1px solid rgba(59,130,246,.15);overflow:hidden}.tool-call-summary{cursor:pointer;padding:6px 12px;font-size:.78rem;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px}.tool-call-summary::-webkit-details-marker{display:none}.tool-call-summary:before{content:"▶";font-size:.6rem;transition:transform .2s}details[open]>.tool-call-summary:before{transform:rotate(90deg)}.tool-call-timer{margin-left:auto;font-size:.72rem;font-weight:400;color:var(--text-tertiary, rgba(255,255,255,.35));font-variant-numeric:tabular-nums;min-width:3.2em;text-align:right}.tool-call-content{padding:0 12px 10px;font-size:.8rem;color:var(--text-secondary);line-height:1.6;max-height:400px;overflow-y:auto;border-top:1px solid rgba(59,130,246,.1)}.tool-call-content pre{margin:4px 0;padding:6px 8px;background:#00000026;border-radius:4px;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.tool-call-content strong{display:block;margin-top:6px;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:#3b82f6b3}.tool-call-content::-webkit-scrollbar{width:4px}.tool-call-content::-webkit-scrollbar-thumb{background:#3b82f633;border-radius:2px}.page-platforms .empty-hint{text-align:center;color:#fff6;padding:40px 0;font-size:.9rem}.platform-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px;margin-bottom:12px;transition:border-color .2s}.platform-card:hover{border-color:#ffffff26}.platform-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.platform-card-name{font-size:1rem;font-weight:600;color:#ffffffe6}.platform-card-id{font-size:.75rem;color:#fff6;background:#ffffff0f;padding:2px 8px;border-radius:4px;font-family:JetBrains Mono,monospace}.platform-no-connections{color:#ffffff59;font-size:.85rem;padding:8px 0}.platform-connections{display:flex;flex-direction:column;gap:6px}.platform-connection{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#ffffff08;border-radius:6px;font-size:.85rem}.platform-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.platform-status-dot.online{background:#22c55e;box-shadow:0 0 6px #22c55e80}.platform-status-dot.connecting{background:#f59e0b;box-shadow:0 0 6px #f59e0b80;animation:pulse 1.5s ease-in-out infinite}.platform-status-dot.offline{background:#6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.platform-conn-id{color:#fffc;font-family:JetBrains Mono,monospace;font-size:.82rem}.platform-conn-status{font-size:.75rem;padding:1px 6px;border-radius:3px}.platform-conn-status.online{color:#22c55e;background:#22c55e1a}.platform-conn-status.connecting{color:#f59e0b;background:#f59e0b1a}.platform-conn-status.offline{color:#6b7280;background:#6b72801a}.platform-conn-detail{margin-left:auto;font-size:.75rem;color:#ffffff59;font-family:JetBrains Mono,monospace}.btn-sm{padding:2px 10px;font-size:.75rem;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0d;color:#fff9;cursor:pointer;transition:all .15s}.btn-sm:hover:not(:disabled){background:#ffffff1a;color:#ffffffd9}.btn-sm:disabled{opacity:.4;cursor:not-allowed}.cmd-chip{display:inline-flex;align-items:center;gap:3px}.chip-badge{font-size:.62rem;line-height:1;vertical-align:middle}.chip-badge.chip-auth{color:gold}.chip-badge.chip-danger{color:var(--danger)}.authority-add-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.authority-add-form .config-edit-input{width:auto;min-width:120px;flex:1}.authority-cmd-list{font-size:.78rem}.authority-cmd-header{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:8px 12px;font-size:.72rem;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em}.authority-cmd-row{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr 1fr;padding:6px 12px;align-items:center;border-bottom:1px solid var(--border);transition:background .15s}.authority-cmd-row:last-child{border-bottom:none}.authority-cmd-row:hover{background:var(--surface-hover)}.authority-cmd-row.overridden{background:#7c6ff70a}.authority-cmd-row.is-sub{background:#00000004;border-left:2px solid var(--border)}.authority-cmd-row.is-sub.overridden{background:#7c6ff70f}.authority-cmd-toggle{font-size:9px;transition:transform .15s;-webkit-user-select:none;user-select:none}.authority-cmd-toggle.open{transform:rotate(90deg)}.authority-cmd-name{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;font-weight:500}.authority-cmd-plugin{color:var(--text-muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-owner-header,.authority-owner-row{grid-template-columns:1fr 1.5fr .8fr}.authority-user-header,.authority-user-row{grid-template-columns:1fr 1.5fr .8fr 1fr}.authority-cell-platform{color:var(--primary);font-family:SF Mono,Fira Code,monospace;font-size:.76rem}.authority-cell-id{color:var(--text);font-family:SF Mono,Fira Code,monospace;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authority-badge{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px;background:#ffffff14;color:var(--text-secondary)}.authority-user-flag{margin-left:6px;padding:0 5px;font-size:.66rem;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary)}.authority-user-expand{display:flex;flex-direction:column;gap:4px;padding:8px 16px 10px;border-bottom:1px solid var(--border);background:#ffffff05}.authority-user-expand label{font-size:.7rem;color:var(--text-secondary)}.authority-badge.owner{background:#ffd70026;color:gold}.authority-badge.high{background:#7c6ff726;color:var(--primary)}.authority-safety-tag{display:inline-block;padding:1px 8px;font-size:.72rem;font-weight:600;border-radius:10px}.authority-safety-tag.safe{background:#48c78e1f;color:#48c78e}.authority-safety-tag.dangerous{background:#ff6b6b1f;color:var(--danger)}.authority-actions{display:flex;gap:4px}.authority-inline-input{width:70px!important;padding:2px 6px!important;font-size:.76rem!important}.authority-inline-select{width:100px!important;padding:2px 6px!important;font-size:.76rem!important}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes modal-scale{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.confirm-dialog{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:24px 28px;max-width:440px;width:90%;text-align:center;box-shadow:0 8px 32px #0000004d;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.confirm-dialog-icon{font-size:36px;margin-bottom:8px}.confirm-dialog h3{margin:0 0 8px;font-size:16px;color:var(--text)}.confirm-dialog-desc{font-size:13px;color:var(--muted);margin:0 0 12px;line-height:1.5}.confirm-dialog-desc strong{color:var(--text);font-family:var(--mono)}.confirm-dialog-args{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:11px;font-family:var(--mono);color:var(--muted);text-align:left;max-height:160px;overflow:auto;margin:0 0 16px;white-space:pre-wrap;word-break:break-all}.confirm-dialog-actions{display:flex;gap:10px;justify-content:center}.btn-confirm-danger{padding:8px 20px;border-radius:6px;border:none;cursor:pointer;font-size:13px;font-weight:600;background:#e74c3c;color:#fff;transition:background .15s}.btn-confirm-danger:hover{background:#c0392b}.btn-confirm-cancel{padding:8px 20px;border-radius:6px;border:1px solid var(--border);cursor:pointer;font-size:13px;background:var(--card-bg);color:var(--muted);transition:all .15s}.btn-confirm-cancel:hover{border-color:var(--text);color:var(--text)}.restart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fade-in .2s ease}.restart-dialog{text-align:center}.restart-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 16px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.restart-dialog h3{margin:0 0 6px;font-size:18px;color:#fff;font-weight:600}.restart-desc{margin:0;font-size:13px;color:#fff9}.dynamic-page{display:flex;flex-direction:column;gap:20px;padding:24px}.dynamic-page.has-graph{height:100%;min-height:0;overflow:hidden}.page-content.has-graph{overflow:hidden}.dyn-scroll-region{flex:1 1 0;min-height:160px;overflow-y:auto;padding-bottom:12px}.dyn-scroll-region::-webkit-scrollbar{width:5px}.dyn-scroll-region::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}.dyn-section-title{margin:0 0 12px;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.dyn-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.dyn-stat-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-stat-card:hover{border-color:var(--border-light)}.dyn-stat-icon{font-size:1.3rem;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--surface-active);flex-shrink:0;color:var(--primary)}.dyn-stat-body{min-width:0}.dyn-stat-label{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.dyn-stat-value{font-size:1rem;font-weight:700;color:var(--text)}.dyn-table-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition);max-width:100%;min-width:0}.dyn-table-block:hover{border-color:var(--border-light)}.dyn-table-scroll{overflow-x:auto;overflow-y:hidden;max-width:100%}.dyn-table{width:100%;border-collapse:collapse;font-size:13px}.dyn-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-light);color:var(--text-muted);font-weight:600;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em}.dyn-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary);transition:background var(--transition);vertical-align:middle}.dyn-cell-nowrap{white-space:nowrap}.dyn-cell-expandable{display:flex;align-items:center;gap:8px}.dyn-cell-expandable .dyn-cell-expandable-text{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-word}.dyn-cell-expandable.expanded{align-items:flex-start}.dyn-cell-expandable.expanded .dyn-cell-expandable-text{-webkit-line-clamp:unset;line-clamp:unset;display:block;max-height:80px;overflow-y:auto}.dyn-cell-expandable-toggle{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:4px;padding:0 6px;font-size:11px;line-height:18px;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition)}.dyn-cell-expandable-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.dyn-table tr:last-child td{border-bottom:none}.dyn-table tr:hover td{background:var(--surface-hover)}.dyn-table-actions{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;justify-content:flex-start}.dyn-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.02em}.dyn-badge-running,.dyn-badge-online,.dyn-badge-active{background:#48c78e26;color:var(--accent)}.dyn-badge-stopped,.dyn-badge-offline,.dyn-badge-error{background:#ff6b6b26;color:var(--danger)}.dyn-badge-pending,.dyn-badge-connecting{background:#f0c06026;color:var(--warning)}.countdown-imminent{color:var(--danger);font-weight:600;animation:countdown-pulse 1s ease-in-out infinite}.countdown-fired{color:var(--accent);font-weight:600;animation:countdown-pulse .6s ease-in-out infinite}@keyframes countdown-pulse{0%,to{opacity:1}50%{opacity:.5}}.dyn-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:900;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}.dyn-detail-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(640px,90vw);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.dyn-detail-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.dyn-detail-title{font-weight:600;font-size:15px}.dyn-detail-close{background:none;border:none;color:var(--text-muted);font-size:20px;cursor:pointer;padding:0 4px;line-height:1}.dyn-detail-close:hover{color:var(--text-primary)}.dyn-detail-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.dyn-detail-field{display:flex;flex-direction:column;gap:4px}.dyn-detail-key{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.dyn-detail-val{font-size:13px;color:var(--text-primary);word-break:break-word}.dyn-detail-pre{font-size:12px;font-family:var(--font-mono, "JetBrains Mono", monospace);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin:0;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;color:var(--text-primary)}.dyn-form-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-form-block:hover{border-color:var(--border-light)}.dyn-actions-block{display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-actions-block:hover{border-color:var(--border-light)}.dyn-action-msg{font-size:12px;color:var(--text-muted)}.dyn-info-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:border-color var(--transition)}.dyn-info-block:hover{border-color:var(--border-light)}.dyn-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.dyn-info-item{display:flex;flex-direction:column;gap:2px}.dyn-info-key{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.dyn-info-val{font-size:14px;color:var(--text);word-break:break-all}.dyn-markdown-block{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;color:var(--text-secondary);line-height:1.6;transition:border-color var(--transition)}.dyn-markdown-block:hover{border-color:var(--border-light)}.dyn-tabs-block{display:flex;flex-direction:column;gap:12px}.dyn-tabs-header{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:0}.dyn-tab-btn{background:none;border:none;color:var(--text-muted);font-size:13px;padding:8px 16px;cursor:pointer;border-bottom:2px solid transparent;transition:color var(--transition),border-color var(--transition)}.dyn-tab-btn:hover{color:var(--text-secondary)}.dyn-tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.dyn-tabs-body{display:flex;flex-direction:column;gap:16px}.model-search-row{position:relative;margin-bottom:12px}.model-provider-group{margin-bottom:12px}.model-provider-label{font-size:.72rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;padding-left:2px}.model-list{display:flex;flex-wrap:wrap;gap:6px}.model-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border);font-size:.78rem;transition:border-color var(--transition)}.model-chip:hover{border-color:var(--primary)}.model-chip-name{font-family:SF Mono,Fira Code,monospace;color:var(--text);font-size:.76rem}.model-chip-caps{display:inline-flex;gap:3px}.model-cap-tag{display:inline-block;padding:1px 5px;border-radius:4px;font-size:.62rem;background:#7c6ff71f;color:var(--primary)}.session-tree-page{display:flex;height:100%;gap:1px;background:var(--border)}.tree-visual-panel{flex:1;display:flex;flex-direction:column;background:var(--bg);min-width:0}.tree-visual-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.tree-visual-header h3{margin:0;font-size:15px;font-weight:600}.tree-header-actions{display:flex;align-items:center;gap:4px}.tree-action-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background var(--transition),color var(--transition)}.tree-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn{border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:3px 10px;border-radius:4px;transition:all var(--transition)}.tree-batch-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-batch-btn:disabled{opacity:.4;cursor:default}.tree-batch-btn.archive{border-color:var(--color-warning, #ff9800);color:var(--color-warning, #ff9800)}.tree-batch-btn.archive:hover:not(:disabled){background:#ff98001a}.tree-batch-btn.danger{border-color:var(--color-error, #f44336);color:var(--color-error, #f44336)}.tree-batch-btn.danger:hover:not(:disabled){background:#f443361a}.tree-refresh-btn{border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:18px;padding:4px;border-radius:4px}.tree-refresh-btn:hover{background:var(--bg-hover, rgba(255,255,255,.08));color:var(--text)}.tree-visual-body{flex:1;overflow:auto;padding:16px}.tree-empty{text-align:center;color:var(--text-muted);padding:48px 16px;font-size:14px}.tree-page-error{padding:48px;text-align:center;color:var(--color-error, #f44336)}.tree-node{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .15s ease;margin-bottom:4px;background:var(--bg)}.tree-node:hover{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.06))}.tree-node.selected{border-color:var(--accent, #6366f1);background:var(--accent-faded, rgba(99,102,241,.12));box-shadow:0 0 0 1px var(--accent, #6366f1)}.tree-node.active-chat{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50;animation:active-chat-pulse 2s ease-in-out infinite}.tree-node.active-chat.selected{border-color:#4caf50;box-shadow:0 0 0 1.5px #4caf50}@keyframes active-chat-pulse{0%,to{box-shadow:0 0 0 1.5px #4caf50}50%{box-shadow:0 0 8px 2px #4caf5066}}.tree-node.status-archived{opacity:.6}.tree-node.status-error{border-color:var(--color-error, #f44336)}.tree-node-toggle{width:20px;height:20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:12px;padding:0;flex-shrink:0}.tree-node-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tree-node-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tree-node-title{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-node-meta{font-size:11px;color:var(--text-muted)}.tree-node-badge{background:var(--accent-faded, rgba(99,102,241,.15));color:var(--accent, #6366f1);font-size:10px;padding:1px 6px;border-radius:8px;flex-shrink:0;font-weight:600}.tree-node-checkbox{flex-shrink:0;accent-color:var(--accent, #6366f1);margin:0;cursor:pointer}.tree-node-actions{display:none;gap:2px;flex-shrink:0}.tree-node:hover .tree-node-actions{display:flex}.tree-node-action-btn{width:22px;height:22px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:11px;padding:0;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:background var(--transition),color var(--transition)}.tree-node-action-btn:hover{background:var(--bg-hover, rgba(255,255,255,.1));color:var(--text)}.tree-node-action-btn.danger:hover{color:var(--color-error, #f44336)}.tree-node-rename-input{flex:1;min-width:0;padding:2px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--bg);color:var(--text);font-size:13px;outline:none}.tree-node-children{padding-left:12px;border-left:2px solid var(--border);margin-left:20px;margin-top:2px;margin-bottom:4px}.tree-flow-label{display:flex;align-items:flex-start;gap:6px;padding:4px 8px;font-size:11px;color:var(--text-muted);margin-bottom:4px}.tree-flow-label.result{margin-top:2px;margin-bottom:6px}.tree-flow-arrow{color:var(--accent, #6366f1);font-weight:700;flex-shrink:0}.tree-flow-label.result .tree-flow-arrow{color:var(--color-success, #4caf50)}.tree-flow-text{font-style:italic;line-height:1.4;word-break:break-word}.tree-detail-panel{width:400px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.tree-detail-placeholder{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted);font-size:14px}.delete-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.delete-confirm-dialog{background:var(--bg-card, #1e1e2e);border:1px solid var(--border);border-radius:12px;padding:20px 24px;max-width:360px;box-shadow:0 8px 32px #0000004d}.delete-confirm-dialog p{margin:0 0 16px;font-size:14px;color:var(--text);line-height:1.5}.delete-confirm-actions{display:flex;gap:8px;justify-content:flex-end}.btn-danger{background:#f44336!important;color:#fff!important;border:none!important}.btn-danger:hover{background:#d32f2f!important}.session-detail{display:flex;flex-direction:column;overflow-y:auto;padding:16px;gap:16px}.session-detail-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.session-detail-header h3{margin:0;font-size:16px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-detail-status{font-size:12px;font-weight:600;flex-shrink:0}.session-detail-meta{font-size:12px;color:var(--text-muted);display:flex;flex-direction:column;gap:4px;padding:10px;background:var(--bg-secondary);border-radius:8px}.session-detail-context,.session-detail-result{padding:10px;border-radius:8px;border:1px solid var(--border)}.session-detail-context{border-left:3px solid var(--accent, #6366f1)}.session-detail-result{border-left:3px solid var(--color-success, #4caf50)}.context-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.context-content{font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.session-detail-messages h4{margin:0 0 12px;font-size:14px;font-weight:600}.no-messages{text-align:center;color:var(--text-muted);padding:24px;font-size:13px}.message-list{display:flex;flex-direction:column;gap:8px}.detail-message{padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.5}.detail-message.user{background:var(--accent-faded, rgba(99,102,241,.1));margin-left:24px}.detail-message.assistant{background:var(--bg-secondary);margin-right:24px}.detail-msg-role{font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:4px}.detail-msg-content{white-space:pre-wrap;word-break:break-word}.detail-msg-content.detail-msg-md{white-space:normal}.detail-msg-md p{margin:0 0 .6em;line-height:1.7}.detail-msg-md p:last-child{margin-bottom:0}.detail-msg-md h1,.detail-msg-md h2,.detail-msg-md h3,.detail-msg-md h4{margin:1em 0 .5em;font-weight:700;line-height:1.3;color:var(--text)}.detail-msg-md h1:first-child,.detail-msg-md h2:first-child,.detail-msg-md h3:first-child{margin-top:0}.detail-msg-md h1{font-size:1.3em}.detail-msg-md h2{font-size:1.15em}.detail-msg-md h3{font-size:1.05em}.detail-msg-md ul,.detail-msg-md ol{margin:.4em 0 .6em 1.2em;padding:0}.detail-msg-md li{margin-bottom:.25em}.detail-msg-md blockquote{border-left:3px solid var(--primary);padding:.3em .8em;margin:.5em 0;background:var(--surface);border-radius:0 6px 6px 0;color:var(--text-secondary)}.detail-msg-md a{color:var(--primary);text-decoration:none}.detail-msg-md a:hover{text-decoration:underline}.detail-msg-md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.detail-msg-md table{border-collapse:collapse;margin:.6em 0;font-size:.85em;width:100%}.detail-msg-md th,.detail-msg-md td{border:1px solid var(--border);padding:6px 10px;text-align:left}.detail-msg-md th{background:var(--surface);font-weight:600}.detail-msg-md img{max-width:100%;border-radius:6px}.detail-msg-md code:not(pre code){background:var(--surface-active);padding:1px 5px;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.88em;color:#e7a0dc}.detail-msg-md pre{background:#0d1117;border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin:.6em 0;overflow-x:auto;font-size:.84em;line-height:1.5;white-space:pre}.detail-msg-md pre code{background:none;padding:0;font-family:SF Mono,Fira Code,monospace;color:var(--text)}.detail-msg-md pre::-webkit-scrollbar{height:4px}.detail-msg-md pre::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}.detail-message.streaming{border-left:3px solid var(--primary)}.streaming-indicator{display:inline-block;color:var(--primary);animation:pulse-dot 1s ease-in-out infinite;margin-left:4px;font-size:10px;vertical-align:middle}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.detail-msg-time{font-size:10px;color:var(--text-muted);margin-top:4px;text-align:right}.page-files{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.files-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;flex-shrink:0;gap:12px}.files-breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;flex:1;min-width:0;overflow-x:auto}.files-nav-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-nav-btn:hover:not(:disabled){background:var(--surface-hover, rgba(255,255,255,.06))}.files-nav-btn:disabled{opacity:.3;cursor:default}.breadcrumb-item{cursor:pointer;color:var(--text);padding:2px 4px;border-radius:4px;white-space:nowrap}.breadcrumb-item:hover{background:var(--surface-hover, rgba(255,255,255,.06));color:var(--primary)}.breadcrumb-sep{color:var(--text-muted, #888);flex-shrink:0}.files-toolbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.files-auto-refresh{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted, #888);cursor:pointer;-webkit-user-select:none;user-select:none}.files-auto-refresh input[type=checkbox]{accent-color:var(--primary);cursor:pointer}.files-refresh-btn{background:none;border:none;color:var(--text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.files-refresh-btn:hover{background:var(--surface-hover, rgba(255,255,255,.06))}.files-refresh-btn .spin{animation:spin .8s linear infinite}.files-table-wrapper{flex:1;overflow-y:auto;overflow-x:auto}.files-table{width:100%;border-collapse:collapse;font-size:13px}.files-table thead{position:sticky;top:0;z-index:2;background:var(--surface)}.files-table th{text-align:left;padding:8px 12px;font-weight:500;color:var(--text-muted, #888);border-bottom:1px solid var(--border);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.files-table td{padding:6px 12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.files-row+.files-row td{border-top:1px solid var(--border)}.col-name{width:100%}.col-size,.col-mtime{white-space:nowrap}.col-actions{text-align:right}.files-row{transition:background .15s}.files-row:hover{background:var(--surface-hover, rgba(255,255,255,.04))}.col-name-inner{display:flex;align-items:center;gap:8px}.file-icon{flex-shrink:0;display:flex;align-items:center;color:var(--text-muted, #888)}.file-name{overflow:hidden;text-overflow:ellipsis}.file-name.is-dir{cursor:pointer;color:var(--primary)}.file-name.is-dir:hover{text-decoration:underline}.rename-input{background:var(--bg);border:1px solid var(--primary);color:var(--text);border-radius:4px;padding:2px 6px;font-size:13px;width:100%;outline:none}.col-actions{white-space:nowrap}td.col-actions{text-align:right}.file-action-btn{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;display:inline-flex;align-items:center}.file-action-btn:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.file-action-btn.danger:hover{color:var(--danger)}.files-empty{text-align:center;padding:40px 0!important;color:var(--text-muted, #888)}.files-error{padding:40px;text-align:center;color:var(--danger)}.files-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.files-modal{background:var(--surface);border-radius:var(--radius);padding:24px;min-width:340px;max-width:460px;box-shadow:0 8px 32px #00000080}.files-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.files-modal-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:12px}.files-modal-header .files-modal-title{margin-bottom:0}.files-modal-close{background:none;border:none;color:var(--text-muted, #888);cursor:pointer;padding:4px;border-radius:4px}.files-modal-close:hover{color:var(--text);background:var(--surface-hover, rgba(255,255,255,.06))}.files-modal p{font-size:13px;color:var(--text);margin:0 0 20px;line-height:1.5}.files-modal-actions{display:flex;justify-content:flex-end;gap:8px}.btn-secondary,.btn-danger{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;border:none}.btn-secondary{background:var(--border);color:var(--text)}.btn-secondary:hover{background:var(--surface-hover, rgba(255,255,255,.12))}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.85}.files-detail-modal{min-width:380px}.files-detail-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13px}.detail-label{color:var(--text-muted, #888);white-space:nowrap}.detail-value{color:var(--text);word-break:break-all}.files-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--surface);color:var(--text);padding:8px 20px;border-radius:8px;font-size:13px;box-shadow:0 4px 16px #0006;z-index:1100;animation:toastIn .25s ease}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.mermaid-block{display:flex;justify-content:center;margin:12px 0;padding:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow-x:auto}.mermaid-block svg{max-width:100%;height:auto}.mermaid-block-loading{opacity:.6;font-style:italic}.mermaid-block-error{flex-direction:column;align-items:stretch;background:#ff57570f;border-color:#ff57574d}.mermaid-error-banner{color:#ff8a8a;font-size:12px;margin-bottom:8px;padding:4px 8px;background:#ff57571a;border-radius:4px}.mermaid-block-error pre{margin:0;background:transparent}.image-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d1;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;animation:lightbox-fadein .12s ease-out}@keyframes lightbox-fadein{0%{opacity:0}to{opacity:1}}.image-lightbox-content{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;box-shadow:0 8px 32px #00000080;cursor:default}.image-lightbox-close{position:absolute;top:16px;right:20px;width:36px;height:36px;border:none;border-radius:50%;background:#ffffff26;color:#fff;font-size:22px;line-height:1;cursor:pointer;transition:background var(--transition)}.image-lightbox-close:hover{background:#ffffff4d}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:2000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s ease}.confirm-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(440px,90vw);max-height:80vh;overflow-y:auto;padding:20px;box-shadow:0 20px 60px #0006;animation:modal-scale .2s cubic-bezier(.4,0,.2,1)}.confirm-title{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:10px}.confirm-body{font-size:.82rem;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;margin-bottom:18px}.confirm-actions{display:flex;justify-content:flex-end;gap:8px}.confirm-body-rich{white-space:normal}.dep-disclosure{margin-bottom:12px}.dep-section-label{font-size:.72rem;color:var(--text-muted);margin-bottom:6px}.dep-tree-node{font-size:.8rem}.dep-tree-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:1px 0}.dep-tree-name{color:var(--text);font-family:var(--font-mono, monospace);font-size:.78rem}.dep-tree-tag{font-size:.66rem;padding:0 5px;border-radius:4px;border:1px solid var(--border-light);color:var(--text-secondary)}.dep-tag-missing{color:var(--warning, #ffb300);border-color:var(--warning, #ffb300)}.dep-tag-req{color:var(--primary);border-color:var(--primary)}.dep-tag-prov{color:var(--accent);border-color:var(--accent)}.dep-line{font-size:.78rem;color:var(--text-secondary);margin-top:6px;line-height:1.5}.dep-svc{margin-right:6px}.dep-svc.ok{color:var(--accent)}.dep-svc.warn{color:var(--warning, #ffb300)}.dep-empty{font-size:.78rem;color:var(--text-muted)}.dep-uninstall-warn{margin-bottom:12px}.dep-warn-block{color:var(--danger);background:#ff6b6b14;border-left:2px solid var(--danger);padding:6px 8px;border-radius:4px;margin-top:6px}.dep-note{font-size:.78rem;color:var(--text-secondary);line-height:1.5;margin-top:4px}
@@ -1,2 +1,2 @@
1
- import{_ as a,l as o,I as i,e as n}from"./mermaid.core-CdhXQnZd.js";import{p}from"./wardley-L42UT6IY-D5JprGQD.js";import"./index-CAL5qre3.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var g={parse:a(async r=>{const e=await p("info",r);o.debug(e)},"parse")},m={version:"11.15.0"},v=a(()=>m.version,"getVersion"),d={getVersion:v},c=a((r,e,s)=>{o.debug(`rendering info diagram
1
+ import{_ as a,l as o,I as i,e as n}from"./mermaid.core-DRBjcUv6.js";import{p}from"./wardley-L42UT6IY-BKa-ecG2.js";import"./index-BmSmi5hw.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var g={parse:a(async r=>{const e=await p("info",r);o.debug(e)},"parse")},m={version:"11.15.0"},v=a(()=>m.version,"getVersion"),d={getVersion:v},c=a((r,e,s)=>{o.debug(`rendering info diagram
2
2
  `+r);const t=i(e);n(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${s}`)},"draw"),l={draw:c},z={parser:g,db:d,renderer:l};export{z as diagram};
@@ -1,4 +1,4 @@
1
- import{_ as o,c as ot,N as ut,I as dt,ap as yt,z as pt,k as ft,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./mermaid.core-CdhXQnZd.js";import"./index-CAL5qre3.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],p=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],B={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,f,n,v){var w=n.length-1;switch(f){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:p,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:p,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],f=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(C.yy[z]=this.yy[z]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function F(N){i.length=i.length-2*N,f.length=f.length-N,n.length=n.length-N}o(F,"popStack");function j(){var N;return N=u.pop()||b.lex()||E,typeof N!="number"&&(N instanceof Array&&(u=N,N=u.pop()),N=s.symbols_[N]||N),N}o(j,"lex");for(var A,W,P,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?P=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=j()),P=v[W]&&v[W][A]),typeof P>"u"||!P.length||!P[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
1
+ import{_ as o,c as ot,N as ut,I as dt,ap as yt,z as pt,k as ft,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./mermaid.core-DRBjcUv6.js";import"./index-BmSmi5hw.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var tt=(function(){var e=o(function(M,t,s,i){for(s=s||{},i=M.length;i--;s[M[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],p=[1,20],d=[1,18],m=[1,19],c=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],B={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,u,f,n,v){var w=n.length-1;switch(f){case 6:case 7:return u;case 15:u.addNode(n[w-1].length,n[w].trim());break;case 16:u.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:p,7:d,10:17,11:m},e(c,[2,18],{14:[1,21]}),e(c,[2,16]),e(c,[2,17]),{6:p,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(c,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],u=[],f=[null],n=[],v=this.table,w="",I=0,S=0,L=2,E=1,R=n.slice.call(arguments,1),b=Object.create(this.lexer),C={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(C.yy[z]=this.yy[z]);b.setInput(t,C.yy),C.yy.lexer=b,C.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var T=b.yylloc;n.push(T);var D=b.options&&b.options.ranges;typeof C.yy.parseError=="function"?this.parseError=C.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function F(N){i.length=i.length-2*N,f.length=f.length-N,n.length=n.length-N}o(F,"popStack");function j(){var N;return N=u.pop()||b.lex()||E,typeof N!="number"&&(N instanceof Array&&(u=N,N=u.pop()),N=s.symbols_[N]||N),N}o(j,"lex");for(var A,W,P,K,H={},X,V,et,Y;;){if(W=i[i.length-1],this.defaultActions[W]?P=this.defaultActions[W]:((A===null||typeof A>"u")&&(A=j()),P=v[W]&&v[W][A]),typeof P>"u"||!P.length||!P[0]){var Q="";Y=[];for(X in v[W])this.terminals_[X]&&X>L&&Y.push("'"+this.terminals_[X]+"'");b.showPosition?Q="Parse error on line "+(I+1)+`:
2
2
  `+b.showPosition()+`
3
3
  Expecting `+Y.join(", ")+", got '"+(this.terminals_[A]||A)+"'":Q="Parse error on line "+(I+1)+": Unexpected "+(A==E?"end of input":"'"+(this.terminals_[A]||A)+"'"),this.parseError(Q,{text:b.match,token:this.terminals_[A]||A,line:b.yylineno,loc:T,expected:Y})}if(P[0]instanceof Array&&P.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+A);switch(P[0]){case 1:i.push(A),f.push(b.yytext),n.push(b.yylloc),i.push(P[1]),A=null,S=b.yyleng,w=b.yytext,I=b.yylineno,T=b.yylloc;break;case 2:if(V=this.productions_[P[1]][1],H.$=f[f.length-V],H._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},D&&(H._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),K=this.performAction.apply(H,[w,S,I,C.yy,P[1],f,n].concat(R)),typeof K<"u")return K;V&&(i=i.slice(0,-1*V*2),f=f.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[P[1]][0]),f.push(H.$),n.push(H._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=(function(){var M={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:o(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var u=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var f=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===u.length?this.yylloc.first_column:0)+u[u.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[f[0],f[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:o(function(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{g as gt}from"./chunk-FMBD7UC4-DdCUM4gd.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-ND2GUHAM-mCIgZWkP.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as X,e as $t,z as Mt}from"./mermaid.core-CdhXQnZd.js";import{d as it}from"./arc-C1C8ofUu.js";import"./index-CAL5qre3.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
1
+ import{g as gt}from"./chunk-FMBD7UC4-BQAwLV2v.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-ND2GUHAM-DoDWTieE.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as X,e as $t,z as Mt}from"./mermaid.core-DRBjcUv6.js";import{d as it}from"./arc-BcIO9BfO.js";import"./index-BmSmi5hw.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
2
2
  `+_.showPosition()+`
3
3
  Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on line "+(C+1)+": Unexpected "+(b==D?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(H,{text:_.match,token:this.terminals_[b]||b,line:_.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(_.yytext),c.push(_.yylloc),l.push(T[1]),b=null,Q=_.yyleng,k=_.yytext,C=_.yylineno,Y=_.yylloc;break;case 2:if(M=this.productions_[T[1]][1],F.$=d[d.length-M],F._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},ft&&(F._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),q=this.performAction.apply(F,[k,Q,C,I.yy,T[1],d,c].concat(dt)),typeof q<"u")return q;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(F.$),c.push(F._$),et=v[l[l.length-2]][l[l.length-1]],l.push(et);break;case 3:return!0}}return!0},"parse")},m=(function(){var h={EOF:1,parseError:s(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:s(function(r,n){return this.yy=n||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var n=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),l.length-1&&(this.yylineno-=l.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
@@ -1,4 +1,4 @@
1
- import{_ as c,l as te,c as W,I as fe,af as ye,ag as be,ah as me,Y as _e,G as K,i as F,t as ke,J as Ee,V as Se,W as le,X as ce}from"./mermaid.core-CdhXQnZd.js";import{g as Ne}from"./chunk-FMBD7UC4-DdCUM4gd.js";import"./index-CAL5qre3.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var $=(function(){var t=c(function(_,s,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=s);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],i=[6,7,11],M=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],U=[1,35],j=[1,36],A=[1,6,7,11,13,16,17,20,23],H=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(s,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(i,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(i,[2,19]),t(i,[2,21],{15:30,24:M}),t(i,[2,22]),t(i,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:U,11:j}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(i,[2,16],{15:37,24:M}),t(i,[2,17]),t(i,[2,18]),t(i,[2,20],{24:H}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:U,11:j}),t(A,[2,11]),t(A,[2,12]),t(i,[2,15],{24:H}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(s,n){if(n.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=n,a}},"parseError"),parse:c(function(s){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,ie=0,ue=2,re=1,ge=e.slice.call(arguments,1),m=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);m.setInput(s,T.yy),T.yy.lexer=m,T.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var q=m.yylloc;e.push(q);var de=m.options&&m.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||m.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,Q,G={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Z="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");m.showPosition?Z="Parse error on line "+(z+1)+`:
1
+ import{_ as c,l as te,c as W,I as fe,af as ye,ag as be,ah as me,Y as _e,G as K,i as F,t as ke,J as Ee,V as Se,W as le,X as ce}from"./mermaid.core-DRBjcUv6.js";import{g as Ne}from"./chunk-FMBD7UC4-BQAwLV2v.js";import"./index-BmSmi5hw.js";import"./react-vendor-BPQixOLZ.js";import"./highlight-DJvvuuwd.js";import"./katex-Bq6vt64r.js";import"./markdown-BCywGHw2.js";var $=(function(){var t=c(function(_,s,n,a){for(n=n||{},a=_.length;a--;n[_[a]]=s);return n},"o"),g=[1,4],d=[1,13],r=[1,12],p=[1,15],k=[1,16],f=[1,20],h=[1,19],L=[6,7,8],C=[1,26],w=[1,24],N=[1,25],i=[6,7,11],M=[1,31],x=[6,7,11,24],P=[1,6,13,16,17,20,23],U=[1,35],j=[1,36],A=[1,6,7,11,13,16,17,20,23],H=[1,38],V={trace:c(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:c(function(s,n,a,o,u,e,B){var l=e.length-1;switch(u){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",e[l-1].id),o.addNode(e[l-2].length,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 16:o.getLogger().info("Node: ",e[l].id),o.addNode(e[l-1].length,e[l].id,e[l].descr,e[l].type);break;case 17:o.getLogger().trace("Icon: ",e[l]),o.decorateNode({icon:e[l]});break;case 18:case 23:o.decorateNode({class:e[l]});break;case 19:o.getLogger().trace("SPACELIST");break;case 20:o.getLogger().trace("Node: ",e[l-1].id),o.addNode(0,e[l-1].id,e[l-1].descr,e[l-1].type,e[l]);break;case 21:o.getLogger().trace("Node: ",e[l].id),o.addNode(0,e[l].id,e[l].descr,e[l].type);break;case 22:o.decorateNode({icon:e[l]});break;case 27:o.getLogger().trace("node found ..",e[l-2]),this.$={id:e[l-1],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 28:this.$={id:e[l],descr:e[l],type:0};break;case 29:o.getLogger().trace("node found ..",e[l-3]),this.$={id:e[l-3],descr:e[l-1],type:o.getType(e[l-2],e[l])};break;case 30:this.$=e[l-1]+e[l];break;case 31:this.$=e[l];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:g},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:g},{6:d,7:[1,10],9:9,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(L,[2,3]),{1:[2,2]},t(L,[2,4]),t(L,[2,5]),{1:[2,6],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:d,9:22,12:11,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},{6:C,7:w,10:23,11:N},t(i,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:f,23:h}),t(i,[2,19]),t(i,[2,21],{15:30,24:M}),t(i,[2,22]),t(i,[2,23]),t(x,[2,25]),t(x,[2,26]),t(x,[2,28],{20:[1,32]}),{21:[1,33]},{6:C,7:w,10:34,11:N},{1:[2,7],6:d,12:21,13:r,14:14,16:p,17:k,18:17,19:18,20:f,23:h},t(P,[2,14],{7:U,11:j}),t(A,[2,8]),t(A,[2,9]),t(A,[2,10]),t(i,[2,16],{15:37,24:M}),t(i,[2,17]),t(i,[2,18]),t(i,[2,20],{24:H}),t(x,[2,31]),{21:[1,39]},{22:[1,40]},t(P,[2,13],{7:U,11:j}),t(A,[2,11]),t(A,[2,12]),t(i,[2,15],{24:H}),t(x,[2,30]),{22:[1,41]},t(x,[2,27]),t(x,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:c(function(s,n){if(n.recoverable)this.trace(s);else{var a=new Error(s);throw a.hash=n,a}},"parseError"),parse:c(function(s){var n=this,a=[0],o=[],u=[null],e=[],B=this.table,l="",z=0,ie=0,ue=2,re=1,ge=e.slice.call(arguments,1),m=Object.create(this.lexer),T={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(T.yy[J]=this.yy[J]);m.setInput(s,T.yy),T.yy.lexer=m,T.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var q=m.yylloc;e.push(q);var de=m.options&&m.options.ranges;typeof T.yy.parseError=="function"?this.parseError=T.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){a.length=a.length-2*S,u.length=u.length-S,e.length=e.length-S}c(pe,"popStack");function ae(){var S;return S=o.pop()||m.lex()||re,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=n.symbols_[S]||S),S}c(ae,"lex");for(var E,R,v,Q,G={},X,I,oe,Y;;){if(R=a[a.length-1],this.defaultActions[R]?v=this.defaultActions[R]:((E===null||typeof E>"u")&&(E=ae()),v=B[R]&&B[R][E]),typeof v>"u"||!v.length||!v[0]){var Z="";Y=[];for(X in B[R])this.terminals_[X]&&X>ue&&Y.push("'"+this.terminals_[X]+"'");m.showPosition?Z="Parse error on line "+(z+1)+`:
2
2
  `+m.showPosition()+`
3
3
  Expecting `+Y.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on line "+(z+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Z,{text:m.match,token:this.terminals_[E]||E,line:m.yylineno,loc:q,expected:Y})}if(v[0]instanceof Array&&v.length>1)throw new Error("Parse Error: multiple actions possible at state: "+R+", token: "+E);switch(v[0]){case 1:a.push(E),u.push(m.yytext),e.push(m.yylloc),a.push(v[1]),E=null,ie=m.yyleng,l=m.yytext,z=m.yylineno,q=m.yylloc;break;case 2:if(I=this.productions_[v[1]][1],G.$=u[u.length-I],G._$={first_line:e[e.length-(I||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(I||1)].first_column,last_column:e[e.length-1].last_column},de&&(G._$.range=[e[e.length-(I||1)].range[0],e[e.length-1].range[1]]),Q=this.performAction.apply(G,[l,ie,z,T.yy,v[1],u,e].concat(ge)),typeof Q<"u")return Q;I&&(a=a.slice(0,-1*I*2),u=u.slice(0,-1*I),e=e.slice(0,-1*I)),a.push(this.productions_[v[1]][0]),u.push(G.$),e.push(G._$),oe=B[a[a.length-2]][a[a.length-1]],a.push(oe);break;case 3:return!0}}return!0},"parse")},y=(function(){var _={EOF:1,parseError:c(function(n,a){if(this.yy.parser)this.yy.parser.parseError(n,a);else throw new Error(n)},"parseError"),setInput:c(function(s,n){return this.yy=n||this.yy||{},this._input=s,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:c(function(){var s=this._input[0];this.yytext+=s,this.yyleng++,this.offset++,this.match+=s,this.matched+=s;var n=s.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),s},"input"),unput:c(function(s){var n=s.length,a=s.split(/(?:\r\n?|\n)/g);this._input=s+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var o=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),a.length-1&&(this.yylineno-=a.length-1);var u=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:a?(a.length===o.length?this.yylloc.first_column:0)+o[o.length-a.length].length-a[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:c(function(){return this._more=!0,this},"more"),reject:c(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:c(function(s){this.unput(this.match.slice(s))},"less"),pastInput:c(function(){var s=this.matched.substr(0,this.matched.length-this.match.length);return(s.length>20?"...":"")+s.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:c(function(){var s=this.match;return s.length<20&&(s+=this._input.substr(0,20-s.length)),(s.substr(0,20)+(s.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:c(function(){var s=this.pastInput(),n=new Array(s.length+1).join("-");return s+this.upcomingInput()+`
@@ -1 +1 @@
1
- import{b7 as j,b8 as p,b9 as w,ba as k,bb as q}from"./mermaid.core-CdhXQnZd.js";import{i as D}from"./init-Gi6I4Gst.js";import{e as g,f as F,a as z,b as B}from"./defaultLocale-DX6XiGOO.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function I(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===I?n:P,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function P(){return 0}function V(n){return n===null?NaN:+n}const $=R(M),x=$.right;R(V).center;const O=Math.sqrt(50),T=Math.sqrt(10),C=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=O?10:f>=T?5:f>=C?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function E(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function G(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=d(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=d(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function d(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function N(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=N(u,e),f=t(a,f)):(e=N(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=N(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=x(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=d,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=G(n,r,t),f;switch(e=F(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),z(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return B(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return E(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},D.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,G as t};
1
+ import{b7 as j,b8 as p,b9 as w,ba as k,bb as q}from"./mermaid.core-DRBjcUv6.js";import{i as D}from"./init-Gi6I4Gst.js";import{e as g,f as F,a as z,b as B}from"./defaultLocale-DX6XiGOO.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function I(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===I?n:P,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function P(){return 0}function V(n){return n===null?NaN:+n}const $=R(M),x=$.right;R(V).center;const O=Math.sqrt(50),T=Math.sqrt(10),C=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=O?10:f>=T?5:f>=C?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function E(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function G(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=d(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=d(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function d(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function N(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=N(u,e),f=t(a,f)):(e=N(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=N(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=x(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=d,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=G(n,r,t),f;switch(e=F(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),z(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return B(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return E(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},D.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,G as t};