@runfusion/fusion 0.45.0 → 0.47.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.
- package/dist/bin.js +17492 -14818
- package/dist/client/.vite/manifest.json +243 -243
- package/dist/client/assets/{AgentDetailView-DJTi6hKC.js → AgentDetailView-D9lYcdOS.js} +1 -1
- package/dist/client/assets/{AgentPermissionPolicyEditor-C5DR9dUS.js → AgentPermissionPolicyEditor-Bn_PEeQW.js} +1 -1
- package/dist/client/assets/{AgentsView-BNd90PSx.js → AgentsView-BRbnFmv3.js} +3 -3
- package/dist/client/assets/{ChatView-B7JaZCL_.js → ChatView-Batci7-w.js} +3 -3
- package/dist/client/assets/CommandCenter-DAUgvVMX.js +71 -0
- package/dist/client/assets/{CommandCenter-Xs5Ftv8s.css → CommandCenter-DDjpYkPe.css} +1 -1
- package/dist/client/assets/DevServerView-HdEXR5UB.js +1 -0
- package/dist/client/assets/DevServerView-iBondC7z.css +1 -0
- package/dist/client/assets/{DirectoryPicker-DegxT8ia.js → DirectoryPicker-DrCiUJlF.js} +1 -1
- package/dist/client/assets/{DocumentsView-kVVQYISc.js → DocumentsView-C0KxPWex.js} +1 -1
- package/dist/client/assets/{EvalsView-C9-iTSat.js → EvalsView-wCfi9Rkj.js} +1 -1
- package/dist/client/assets/{ExperimentalAgentOnboardingModal-DjP_xNkc.js → ExperimentalAgentOnboardingModal-Crck6eJe.js} +1 -1
- package/dist/client/assets/{GoalsView-VoIHJJ5l.js → GoalsView-sFGHX3Wt.js} +1 -1
- package/dist/client/assets/{InsightsView-BIZaUcpd.js → InsightsView-jl0cX1um.js} +2 -2
- package/dist/client/assets/{MemoryView-7v7rv6ns.js → MemoryView-Bwv99M_s.js} +1 -1
- package/dist/client/assets/{PiExtensionsManager-CB89rV4U.js → PiExtensionsManager-BsA3tCZh.js} +3 -3
- package/dist/client/assets/{PluginManager-BNSuW_R4.js → PluginManager-Bgd8Hj0a.js} +1 -1
- package/dist/client/assets/{PullRequestView-CI5jdKBL.js → PullRequestView-CqO16SNt.js} +2 -2
- package/dist/client/assets/{ResearchView-BT5dR_m8.js → ResearchView-CfRsbJWS.js} +1 -1
- package/dist/client/assets/{SecretsView-WPYI58Uo.js → SecretsView-CHomYGnm.js} +1 -1
- package/dist/client/assets/SessionTerminal-DcYUuwbV.js +2 -0
- package/dist/client/assets/{SettingsModal-Bq_3AbaB.js → SettingsModal-CX5GLed_.js} +1 -1
- package/dist/client/assets/SettingsModal-CvbiSIHS.css +1 -0
- package/dist/client/assets/SettingsModal-ino68pI2.css +1 -0
- package/dist/client/assets/SettingsModal-ybSf6HDn.js +21 -0
- package/dist/client/assets/SetupWizardModal-D2BQL0df.js +2 -0
- package/dist/client/assets/{ShadcnColorPicker-1icHuwhC.js → ShadcnColorPicker-B-8x0Gci.js} +1 -1
- package/dist/client/assets/{SkillsView-byuSe3e0.js → SkillsView-4iqYHf9N.js} +1 -1
- package/dist/client/assets/{TodoView-CQ9GjYBg.js → TodoView-BJsknVS6.js} +2 -2
- package/dist/client/assets/WorkflowNodeEditor-BOouksjw.css +1 -0
- package/dist/client/assets/WorkflowNodeEditor-QdwW4bY5.js +8 -0
- package/dist/client/assets/{agentSkills-CeytXLHF.js → agentSkills-CwR8s-gl.js} +1 -1
- package/dist/client/assets/{app-7-5DWLtg.js → app-BJGkp7Tt.js} +3 -3
- package/dist/client/assets/{app-CZ2LTFce.js → app-BKLUvvm8.js} +3 -3
- package/dist/client/assets/{app-Cv9xEnll.js → app-BaoNC9zg.js} +1 -1
- package/dist/client/assets/{app-x_yPcO5Y.js → app-CZQ_fFNf.js} +3 -3
- package/dist/client/assets/{app-CSvE5Noc.js → app-DAu3AzsS.js} +3 -3
- package/dist/client/assets/{app-3wbZ08YC.js → app-DgezOJub.js} +1 -1
- package/dist/client/assets/{architectureDiagram-3BPJPVTR-BRI0QwDf.js → architectureDiagram-3BPJPVTR-rav0thhm.js} +1 -1
- package/dist/client/assets/{blockDiagram-GPEHLZMM-BXkN8Hv_.js → blockDiagram-GPEHLZMM-x9Opikul.js} +1 -1
- package/dist/client/assets/{c4Diagram-AAUBKEIU-C_Kcokep.js → c4Diagram-AAUBKEIU-BGrWtNPI.js} +1 -1
- package/dist/client/assets/channel-BFVfY8Ks.js +1 -0
- package/dist/client/assets/{chunk-2J33WTMH-BGeuCz9C.js → chunk-2J33WTMH-BMFvL-OW.js} +1 -1
- package/dist/client/assets/{chunk-4BX2VUAB-DcVdctr0.js → chunk-4BX2VUAB-CWTOrH7n.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-Dg6gDigQ.js → chunk-55IACEB6-l48k3a4l.js} +1 -1
- package/dist/client/assets/{chunk-727SXJPM-B9B-vlEb.js → chunk-727SXJPM-DeynG6ym.js} +1 -1
- package/dist/client/assets/{chunk-AQP2D5EJ-LrWQ-2yi.js → chunk-AQP2D5EJ-B9ndyq3h.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-Bnd6hAED.js → chunk-FMBD7UC4-DV2d1-q1.js} +1 -1
- package/dist/client/assets/{chunk-ND2GUHAM-nAw93UB5.js → chunk-ND2GUHAM-D0Dl37Mc.js} +1 -1
- package/dist/client/assets/{chunk-QZHKN3VN-CgprKcZo.js → chunk-QZHKN3VN-NGiOWxhM.js} +1 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-pfX_P8V9.js +1 -0
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-pfX_P8V9.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-Bhn0g_iK.js → cose-bilkent-S5V4N54A-2ojNpRS8.js} +1 -1
- package/dist/client/assets/{dagre-BM42HDAG-CP4kfwqd.js → dagre-BM42HDAG-BaIP71Bo.js} +1 -1
- package/dist/client/assets/{dashboard-view-CM6Xin_H.js → dashboard-view-CC2QtNhx.js} +1 -1
- package/dist/client/assets/{dashboard-view-DV1nEhh9.js → dashboard-view-hB7ta6sK.js} +1 -1
- package/dist/client/assets/{diagram-2AECGRRQ-DPhzVEUf.js → diagram-2AECGRRQ-DQfEScya.js} +1 -1
- package/dist/client/assets/{diagram-5GNKFQAL-8QOC3K_L.js → diagram-5GNKFQAL-B5iw3WNT.js} +1 -1
- package/dist/client/assets/{diagram-KO2AKTUF-C1twgEch.js → diagram-KO2AKTUF-C5mMn4JH.js} +1 -1
- package/dist/client/assets/{diagram-LMA3HP47-3bEegSuf.js → diagram-LMA3HP47-CaMhdmPl.js} +1 -1
- package/dist/client/assets/{diagram-OG6HWLK6-BJ_x0rm6.js → diagram-OG6HWLK6-D2ed8-Fx.js} +1 -1
- package/dist/client/assets/{erDiagram-TEJ5UH35-DNiiS5q6.js → erDiagram-TEJ5UH35-CZl07SyK.js} +1 -1
- package/dist/client/assets/{flowDiagram-I6XJVG4X-DoouPklt.js → flowDiagram-I6XJVG4X-Dz7RLhaG.js} +1 -1
- package/dist/client/assets/{folder-open-CuUs2W7f.js → folder-open-DCNfEqr1.js} +1 -1
- package/dist/client/assets/{ganttDiagram-6RSMTGT7-BrR6VnP5.js → ganttDiagram-6RSMTGT7-C3ny-S6Q.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PVQCEYII-BV8_J6Ee.js → gitGraphDiagram-PVQCEYII-BjHF5C7t.js} +1 -1
- package/dist/client/assets/index-CUY6xXXv.js +1292 -0
- package/dist/client/assets/index-CXlzJfKU.css +1 -0
- package/dist/client/assets/{infoDiagram-5YYISTIA-DGwIIFkR.js → infoDiagram-5YYISTIA-BTYecWEx.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-D5dEH4RE.js → ishikawaDiagram-YF4QCWOH-BBNOAxJa.js} +1 -1
- package/dist/client/assets/{journeyDiagram-JHISSGLW-BuuSWPw5.js → journeyDiagram-JHISSGLW-DrjdbyT5.js} +1 -1
- package/dist/client/assets/{kanban-definition-UN3LZRKU-DA34uUla.js → kanban-definition-UN3LZRKU-CgTNTfT7.js} +1 -1
- package/dist/client/assets/{mermaid.core-Ch4HatqA.js → mermaid.core-CyFmJxTj.js} +4 -4
- package/dist/client/assets/{mindmap-definition-RKZ34NQL-DUCG-qD3.js → mindmap-definition-RKZ34NQL-C95r0KZv.js} +1 -1
- package/dist/client/assets/{pieDiagram-4H26LBE5-DWvFGiLa.js → pieDiagram-4H26LBE5-CmYuIsZ-.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-W4KKPZXB-OPTVW3WT.js → quadrantDiagram-W4KKPZXB-BFLFwHMa.js} +1 -1
- package/dist/client/assets/{requirementDiagram-4Y6WPE33-D7feZvlU.js → requirementDiagram-4Y6WPE33-G0s0AfQq.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-5OEKKPKP-AtnSsEX1.js → sankeyDiagram-5OEKKPKP-D8OLAFhm.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BZjHUeI5.js → sequenceDiagram-3UESZ5HK-6fDSosvV.js} +1 -1
- package/dist/client/assets/{shield-alert-CzaF9ROV.js → shield-alert-CBAzSycj.js} +1 -1
- package/dist/client/assets/{stateDiagram-AJRCARHV-C8j23Pvn.js → stateDiagram-AJRCARHV-BfNs5lJU.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-CiZR_S5-.js → stateDiagram-v2-BHNVJYJU-Bt0-CBqz.js} +1 -1
- package/dist/client/assets/{timeline-definition-PNZ67QCA-DvfNz25n.js → timeline-definition-PNZ67QCA-DmKYLILn.js} +1 -1
- package/dist/client/assets/{upload-DTsYywhN.js → upload--9MWYfcA.js} +1 -1
- package/dist/client/assets/{users-yAd09tKP.js → users-vOsWas_i.js} +1 -1
- package/dist/client/assets/{vennDiagram-CIIHVFJN-CG2aMt3v.js → vennDiagram-CIIHVFJN-D3jx9PAk.js} +1 -1
- package/dist/client/assets/{wardley-L42UT6IY-BnhBteen.js → wardley-L42UT6IY-BGRnyThw.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DwqTzM3T.js → wardleyDiagram-YWT4CUSO-pwLVIgII.js} +1 -1
- package/dist/client/assets/{xychartDiagram-2RQKCTM6-5Cv2ZKMV.js → xychartDiagram-2RQKCTM6-ltxtDdDp.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/client/version.json +1 -1
- package/dist/droid-cli/package.json +1 -1
- package/dist/extension.js +17124 -14602
- package/dist/pi-claude-cli/package.json +1 -1
- package/dist/plugin-sdk/index.d.ts +22 -6
- package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
- package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
- package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
- package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
- package/dist/plugins/fusion-plugin-reports/package.json +1 -1
- package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
- package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
- package/package.json +1 -1
- package/dist/client/assets/CommandCenter-CHO21xEW.js +0 -74
- package/dist/client/assets/DevServerView-B_p91Mj_.css +0 -1
- package/dist/client/assets/DevServerView-H9OkT1ld.js +0 -1
- package/dist/client/assets/SessionTerminal-C6gyOWLt.js +0 -2
- package/dist/client/assets/SettingsModal-BESN59Ao.css +0 -1
- package/dist/client/assets/SettingsModal-BZokaNyx.css +0 -1
- package/dist/client/assets/SettingsModal-JHACoQJe.js +0 -21
- package/dist/client/assets/SetupWizardModal-CrgbnR_d.js +0 -2
- package/dist/client/assets/WorkflowNodeEditor-DW7sJZUX.js +0 -8
- package/dist/client/assets/WorkflowNodeEditor-f_XPV5Jd.css +0 -1
- package/dist/client/assets/channel-Clzpzu32.js +0 -1
- package/dist/client/assets/classDiagram-4FO5ZUOK-CzYHP-af.js +0 -1
- package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CzYHP-af.js +0 -1
- package/dist/client/assets/index-BZBQ_KsL.css +0 -1
- package/dist/client/assets/index-CZcWjLAb.js +0 -1459
|
@@ -1 +1 @@
|
|
|
1
|
-
.cc-date-range{position:relative;display:inline-block}.cc-date-range-trigger{display:inline-flex;align-items:center;gap:var(--space-xs)}.cc-date-range-popover{position:absolute;top:calc(100% + var(--space-xs));right:0;z-index:20;min-width:16rem;padding:var(--space-md);background:var(--surface-1, #1c1c1c);border:1px solid var(--border-subtle, color-mix(in srgb, #7f7f7f 25%, transparent));border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-md)}.cc-date-range-presets{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.cc-date-range-custom{display:flex;flex-direction:column;gap:var(--space-sm)}.cc-date-range-field{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.8125rem;color:var(--text-muted)}.cc-date-range-field input{background:var(--surface-2, color-mix(in srgb, #7f7f7f 12%, transparent));border:1px solid var(--border-subtle, color-mix(in srgb, #7f7f7f 25%, transparent));border-radius:var(--radius-sm, 4px);color:var(--text);padding:var(--space-xs) var(--space-sm)}.cc-bar-chart,.cc-stacked-bar,.cc-sparkline,.cc-token-series,.cc-token-series-plot,.cc-token-series-axis,.cc-line-chart,.cc-radial-gauge,.cc-funnel,.cc-funnel-stage{min-inline-size:0;max-inline-size:100%}.cc-bar-chart{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-bar-row{display:grid;grid-template-columns:minmax(calc(var(--space-2xl) * 2 + var(--space-lg)),32%) minmax(0,1fr) auto;align-items:center;gap:var(--space-sm)}.cc-bar-label{min-inline-size:0;font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-bar-track{min-inline-size:0;position:relative;block-size:var(--space-md);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-bar-fill{block-size:100%;background:var(--accent);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.cc-bar-row:nth-child(8n+1) .cc-bar-fill{background:var(--accent)}.cc-bar-row:nth-child(8n+2) .cc-bar-fill{background:var(--todo)}.cc-bar-row:nth-child(8n+3) .cc-bar-fill{background:var(--in-progress)}.cc-bar-row:nth-child(8n+4) .cc-bar-fill{background:var(--in-review)}.cc-bar-row:nth-child(8n+5) .cc-bar-fill{background:var(--triage)}.cc-bar-row:nth-child(8n+6) .cc-bar-fill{background:var(--color-success)}.cc-bar-row:nth-child(8n+7) .cc-bar-fill{background:var(--color-warning)}.cc-bar-row:nth-child(8n) .cc-bar-fill{background:var(--color-error)}.cc-bar-value{min-inline-size:0;font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere;text-align:end}.cc-stacked-bar{display:flex;flex-direction:column;gap:var(--space-sm)}.cc-stacked-track{display:flex;block-size:var(--space-md);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-stacked-segment{block-size:100%;background:var(--accent);transition:width var(--transition-normal)}.cc-stacked-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-md)}.cc-stacked-legend-item{min-inline-size:0;display:flex;align-items:center;gap:var(--space-xs);font-size:.8125rem;color:var(--text-muted);overflow-wrap:anywhere}.cc-stacked-swatch{inline-size:var(--space-sm);block-size:var(--space-sm);border-radius:var(--radius-sm);background:var(--accent);display:inline-block}.cc-stacked-segment:nth-child(8n+1),.cc-stacked-legend-item:nth-child(8n+1) .cc-stacked-swatch{background:var(--accent)}.cc-stacked-segment:nth-child(8n+2),.cc-stacked-legend-item:nth-child(8n+2) .cc-stacked-swatch{background:var(--todo)}.cc-stacked-segment:nth-child(8n+3),.cc-stacked-legend-item:nth-child(8n+3) .cc-stacked-swatch{background:var(--in-progress)}.cc-stacked-segment:nth-child(8n+4),.cc-stacked-legend-item:nth-child(8n+4) .cc-stacked-swatch{background:var(--in-review)}.cc-stacked-segment:nth-child(8n+5),.cc-stacked-legend-item:nth-child(8n+5) .cc-stacked-swatch{background:var(--triage)}.cc-stacked-segment:nth-child(8n+6),.cc-stacked-legend-item:nth-child(8n+6) .cc-stacked-swatch{background:var(--color-success)}.cc-stacked-segment:nth-child(8n+7),.cc-stacked-legend-item:nth-child(8n+7) .cc-stacked-swatch{background:var(--color-warning)}.cc-stacked-segment:nth-child(8n),.cc-stacked-legend-item:nth-child(8n) .cc-stacked-swatch{background:var(--color-error)}.cc-sparkline{display:flex;align-items:flex-end;gap:1px;block-size:var(--space-2xl)}.cc-sparkline-bar{flex:1 1 0;min-inline-size:1px;background:var(--accent);border-radius:1px;transition:height var(--transition-normal)}.cc-sparkline-bar:nth-child(8n+1){background:var(--accent)}.cc-sparkline-bar:nth-child(8n+2){background:var(--todo)}.cc-sparkline-bar:nth-child(8n+3){background:var(--in-progress)}.cc-sparkline-bar:nth-child(8n+4){background:var(--in-review)}.cc-sparkline-bar:nth-child(8n+5){background:var(--triage)}.cc-sparkline-bar:nth-child(8n+6){background:var(--color-success)}.cc-sparkline-bar:nth-child(8n+7){background:var(--color-warning)}.cc-sparkline-bar:nth-child(8n){background:var(--color-error)}.cc-token-series{display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0}.cc-token-series-plot{display:flex;align-items:flex-end;gap:var(--space-xs);block-size:clamp(calc(var(--space-2xl) * 2),24vw,calc(var(--space-2xl) * 5));padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent),var(--surface-1);overflow:hidden}.cc-token-series-bar{flex:1 1 0;min-inline-size:var(--space-xs);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 45%,var(--surface-2)));box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 24%,transparent);transition:height var(--transition-normal);animation:cc-token-series-rise var(--duration-normal) ease-out both}.cc-token-series-empty{inline-size:100%;block-size:2px;align-self:flex-end;border-radius:var(--radius-pill);background:var(--border-subtle)}.cc-token-series-axis{display:flex;justify-content:space-between;gap:var(--space-sm);color:var(--text-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.cc-token-series-axis span{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-token-series-axis span:last-child{text-align:end}@keyframes cc-token-series-rise{0%{transform:scaleY(.82);opacity:.72}to{transform:scaleY(1);opacity:1}}@media(prefers-reduced-motion:reduce){.cc-token-series-bar{transition:none;animation:none}}@media(max-width:768px){.cc-token-series-plot{block-size:clamp(calc(var(--space-2xl) + var(--space-xl)),38vw,calc(var(--space-2xl) * 4));padding:var(--space-sm)}}.cc-line-chart{display:block;inline-size:100%;block-size:clamp(calc(var(--space-2xl) * 2),22vw,calc(var(--space-2xl) * 5));aspect-ratio:5 / 2;color:var(--accent);overflow:hidden}.cc-line-chart-series{color:var(--accent)}.cc-line-chart-series:nth-child(2n){color:var(--color-success)}.cc-line-chart-series:nth-child(3n){color:var(--color-warning)}.cc-line-chart-path{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:cc-line-chart-draw calc(var(--duration-slow) * 4) ease-out forwards}.cc-line-chart-point{fill:var(--surface-1);stroke:currentColor;stroke-width:2px}@keyframes cc-line-chart-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.cc-line-chart-path{animation:none;stroke-dashoffset:0}}@media(max-width:768px){.cc-line-chart{block-size:clamp(calc(var(--space-2xl) * 2),44vw,calc(var(--space-2xl) * 4));aspect-ratio:auto}}.cc-recharts-chart,.cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-recharts-chart .recharts-wrapper{inline-size:100%!important;max-inline-size:100%}.cc-recharts-chart .recharts-legend-wrapper{inset-inline:0!important;inset-block-start:auto!important;inset-block-end:0!important;inline-size:100%!important;max-inline-size:100%;overflow:hidden}.cc-recharts-chart .recharts-default-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs) var(--space-sm);inline-size:100%;max-inline-size:100%;margin:0;padding:0}.cc-recharts-chart .recharts-legend-item{display:inline-flex!important;align-items:center;max-inline-size:min(100%,calc(var(--space-2xl) * 5));margin-inline-end:0!important;min-inline-size:0}.cc-recharts-chart .recharts-legend-item-text{display:inline-block;min-inline-size:0;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}@media(max-width:768px){.cc-recharts-chart,.cc-recharts-empty{block-size:calc(var(--space-2xl) * 8 + var(--space-md))}}.cc-radial-gauge{min-inline-size:0;display:grid;place-items:center;gap:var(--space-sm);color:var(--text)}.cc-radial-gauge-ring{position:relative;display:grid;place-items:center;inline-size:clamp(calc(var(--space-2xl) * 3),32vw,calc(var(--space-2xl) * 4 + var(--space-lg)));aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at center,var(--surface-1) 0 54%,transparent 55%),conic-gradient(var(--accent) var(--cc-radial-value),var(--surface-2) 0);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 35%,transparent);isolation:isolate;animation:cc-radial-gauge-pulse calc(var(--duration-slow) * 6) ease-in-out infinite}.cc-radial-gauge-ring:before{content:"";position:absolute;inset:var(--space-sm);border-radius:inherit;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:inset 0 0 var(--space-md) color-mix(in srgb,var(--accent) 22%,transparent);animation:cc-radial-gauge-sweep calc(var(--duration-slow) * 8) linear infinite}.cc-radial-gauge-core{position:relative;z-index:1;display:grid;place-items:center;inline-size:58%;aspect-ratio:1;background:var(--surface-1);border-radius:50%;box-shadow:inset 0 0 var(--space-md) var(--surface-2)}.cc-radial-gauge-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.cc-radial-gauge-label{max-inline-size:100%;color:var(--text-muted);font-size:.8125rem;overflow-wrap:anywhere;text-align:center}@keyframes cc-radial-gauge-pulse{0%,to{filter:saturate(1)}50%{filter:saturate(1.35)}}@keyframes cc-radial-gauge-sweep{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.cc-radial-gauge-ring,.cc-radial-gauge-ring:before{animation:none}}.cc-funnel{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-funnel-stage{display:flex;flex-direction:column;gap:var(--space-xs)}.cc-funnel-header{min-inline-size:0;display:flex;justify-content:space-between;gap:var(--space-sm);font-size:.8125rem;color:var(--text-muted)}.cc-funnel-label,.cc-funnel-conversion,.cc-funnel-value{min-inline-size:0;overflow-wrap:anywhere}.cc-funnel-conversion{flex:0 1 auto;text-align:end}.cc-funnel-conversion{font-variant-numeric:tabular-nums}.cc-funnel-track{block-size:var(--space-lg);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-funnel-fill{block-size:100%;background:var(--accent);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.cc-funnel-stage:nth-child(8n+1) .cc-funnel-fill{background:var(--accent)}.cc-funnel-stage:nth-child(8n+2) .cc-funnel-fill{background:var(--todo)}.cc-funnel-stage:nth-child(8n+3) .cc-funnel-fill{background:var(--in-progress)}.cc-funnel-stage:nth-child(8n+4) .cc-funnel-fill{background:var(--in-review)}.cc-funnel-stage:nth-child(8n+5) .cc-funnel-fill{background:var(--triage)}.cc-funnel-stage:nth-child(8n+6) .cc-funnel-fill{background:var(--color-success)}.cc-funnel-stage:nth-child(8n+7) .cc-funnel-fill{background:var(--color-warning)}.cc-funnel-stage:nth-child(8n) .cc-funnel-fill{background:var(--color-error)}.cc-funnel-value{font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--text)}.cc-chart-skeleton{block-size:var(--space-md);border-radius:var(--radius-sm);background:var(--surface-2);animation:cc-chart-pulse var(--duration-slow) ease-in-out infinite}@keyframes cc-chart-pulse{0%,to{opacity:.4}50%{opacity:.9}}@media(max-width:768px){.cc-bar-row{grid-template-columns:minmax(0,1fr) minmax(calc(var(--space-2xl) + var(--space-lg)),2fr);align-items:start}.cc-bar-value{grid-column:1 / -1;justify-self:end;max-inline-size:100%}.cc-radial-gauge-ring{inline-size:clamp(calc(var(--space-2xl) * 2 + var(--space-lg)),44vw,calc(var(--space-2xl) * 4))}.cc-sparkline{block-size:clamp(var(--space-2xl),18vw,calc(var(--space-2xl) + var(--space-xl)))}}.cc-area{display:flex;flex-direction:column;gap:var(--space-lg);min-inline-size:0}.cc-area-section{display:flex;flex-direction:column;gap:var(--space-md);min-inline-size:0}.cc-area-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cc-area-section-title{margin:0;font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cc-area .cc-recharts-chart,.cc-area .cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-area .cc-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr));gap:var(--space-md)}.cc-stat-sub{font-size:.75rem;color:var(--text-muted)}.cc-token-granularity{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-xs)}.cc-token-granularity .btn.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 14%,var(--surface-1))}@media(prefers-reduced-motion:reduce){.cc-token-count-live{animation:none}}@media(max-width:768px){.cc-area-section-header{align-items:flex-start;flex-direction:column}.cc-token-granularity{justify-content:flex-start;inline-size:100%}}.cc-table-wrap{max-inline-size:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);overflow-x:auto;overflow-y:hidden}.cc-table{inline-size:100%;border-collapse:collapse;font-size:.8125rem;font-variant-numeric:tabular-nums}.cc-table th,.cc-table td{padding:var(--space-sm) var(--space-md);text-align:right;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.cc-table th:first-child,.cc-table td:first-child{text-align:left}.cc-table thead th{color:var(--text-muted);font-weight:600}.cc-table th.cc-sortable{cursor:pointer;user-select:none}.cc-table th.cc-sortable:hover{color:var(--text)}.cc-table tbody tr{cursor:pointer}.cc-table tbody tr.cc-row-selected{background:var(--surface-2)}.cc-table tbody tr.cc-row-selected td{color:var(--text)}.cc-sort-caret{margin-inline-start:var(--space-xs);font-size:.7em;color:var(--accent)}.cc-unavailable{color:var(--text-muted);cursor:help;border-bottom:1px dotted var(--border-subtle)}.cc-loading-inline{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--text-muted)}.cc-area-empty,.cc-area-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-muted);text-align:center}.cc-area-error{color:var(--color-error)}.cc-pricing-note{font-size:.75rem;color:var(--text-muted)}.cc-team-area{display:flex;flex-direction:column;gap:var(--space-lg);min-inline-size:0}.cc-team-ops-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md);min-inline-size:0}.cc-team-ops-card{min-inline-size:0;padding:var(--space-md);border:thin solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-team-ops-card--org{grid-column:1 / -1}.cc-team-ops-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-block-end:var(--space-md)}.cc-team-ops-card-header h3{margin:0;color:var(--text);font-size:.9375rem}.cc-team-ops-card-header p,.cc-team-muted{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:.8125rem}.cc-team-error{margin:0;color:var(--color-error);font-size:.8125rem}.cc-team-status-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:.8125rem}.cc-team-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin:0 0 var(--space-md)}.cc-team-facts div{min-inline-size:0}.cc-team-facts dt{color:var(--text-muted);font-size:.75rem}.cc-team-facts dd{margin:var(--space-xs) 0 0;color:var(--text);font-size:.875rem;overflow-wrap:anywhere}.cc-team-action{gap:var(--space-xs)}.cc-team-ops-card--heartbeat{grid-column:1 / -1}.cc-team-heartbeat-multiplier{margin-block-start:var(--space-md)}.cc-team-heartbeat-multiplier .heartbeat-multiplier-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md)}.cc-team-heartbeat-multiplier .heartbeat-multiplier-slider{flex:1 1 calc(var(--space-2xl) * 5);min-inline-size:calc(var(--space-2xl) * 4)}.cc-team-org-scroll{max-block-size:calc(var(--space-2xl) * 13);overflow:auto;overscroll-behavior:contain;cursor:grab}.cc-team-org-scroll.is-dragging{cursor:grabbing;user-select:none}.cc-team-org-roots,.cc-team-org-children{display:flex;gap:var(--space-sm);margin:0;padding:0;list-style:none}.cc-team-org-scroll[data-layout=vertical] .cc-team-org-roots,.cc-team-org-scroll[data-layout=vertical] .cc-team-org-children{flex-direction:column}.cc-team-org-scroll[data-layout=vertical] .cc-team-org-children{margin-block-start:var(--space-sm);margin-inline-start:var(--space-xl);padding-inline-start:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-roots,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{flex-direction:row;align-items:flex-start;justify-content:center;gap:var(--space-md)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{position:relative;margin-block-start:var(--space-md);padding-block-start:var(--space-md)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:before,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:after,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children>.cc-team-org-item:before{position:absolute;content:"";pointer-events:none}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:before{inset-block-start:calc(var(--space-md) * -1);inset-inline-start:50%;block-size:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:after{inset-block-start:calc(var(--space-md) / 2);inset-inline:0;border-block-start:thin solid var(--border-subtle)}.cc-team-org-item{min-inline-size:max-content}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-item{position:relative;display:flex;flex-direction:column;align-items:center}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children>.cc-team-org-item:before{inset-block-start:calc(var(--space-md) * -1);inset-inline-start:50%;block-size:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-card{display:inline-flex;min-inline-size:calc(var(--space-2xl) * 5);max-inline-size:calc(var(--space-2xl) * 10);padding:var(--space-sm);border:thin solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2);box-shadow:var(--shadow-sm)}.cc-team-org-card-header{display:flex;align-items:center;gap:var(--space-sm);min-inline-size:0}.cc-team-org-avatar{display:inline-flex;flex:0 0 auto}.cc-team-org-name{color:var(--text);font-size:.8125rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-team-org-badge{flex:0 0 auto;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--text-muted);font-size:.75rem;text-transform:capitalize}.cc-team-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.cc-team-chart-panel{display:flex;flex-direction:column;gap:var(--space-md);min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);animation:cc-team-panel-reveal var(--duration-fast) ease-out both}.cc-team-spark-panel{grid-column:1 / -1}.cc-muted-hint,.cc-team-agent-role{color:var(--text-muted)}.cc-muted-hint{margin:0;font-size:.8125rem}.cc-team-agent-cell{display:inline-flex;align-items:center;gap:var(--space-sm);min-inline-size:0}.cc-team-agent-name,.cc-team-agent-role{display:block}.cc-team-agent-name{color:var(--text);font-weight:600}.cc-team-agent-role{font-size:.75rem;text-transform:capitalize}@keyframes cc-team-panel-reveal{0%{opacity:0;transform:translateY(var(--space-xs))}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cc-team-chart-panel{animation:none}}@media(min-width:769px)and (max-width:1024px){.cc-area .cc-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr))}.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-team-spark-panel{grid-column:auto}}@media(max-width:768px){.cc-team-ops-grid,.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-team-ops-card--org,.cc-team-ops-card--heartbeat,.cc-team-spark-panel{grid-column:auto}.cc-team-ops-card,.cc-team-chart-panel{padding:var(--space-sm)}.cc-team-ops-card-header{flex-direction:column}.cc-team-facts{grid-template-columns:minmax(0,1fr)}.cc-team-action{justify-content:center;inline-size:100%}.cc-team-org-scroll{max-block-size:calc(var(--space-2xl) * 10)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-roots,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{justify-content:flex-start;gap:var(--space-sm)}}.cc-system-refresh{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);color:var(--text-muted);font-size:.8125rem}.cc-system-refresh .btn-icon{flex:0 0 auto}.cc-system-node-selector{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text)}.cc-system-node-selector .input{min-inline-size:10rem}.cc-system-gauges .cc-stat-card{min-block-size:100%}.cc-system-chart-grid{min-inline-size:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.cc-system-chart-grid .cc-stat-card{gap:var(--space-md)}.cc-system-section-title-with-icon{display:inline-flex;align-items:center;gap:var(--space-sm)}.cc-system-section-title-with-icon svg{color:var(--text-muted)}.cc-system-vitest-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-system-vitest-card .btn,.cc-system-toggle-row,.cc-system-threshold-row,.cc-system-threshold-controls{display:inline-flex;align-items:center;gap:var(--space-sm)}.cc-system-toggle-row,.cc-system-threshold-row{color:var(--text);font-size:.8125rem}.cc-system-threshold-controls input[type=range]{accent-color:var(--accent)}.cc-system-threshold-controls .input{inline-size:5rem}.cc-system-note{margin:0;color:var(--text-muted);font-size:.8125rem}.cc-system-note--error,.cc-system-value--critical{color:var(--color-error)}.cc-system-value--warning{color:var(--color-warning)}.cc-system-note--success{color:var(--color-success)}@media(max-width:768px){.cc-system-refresh{align-items:flex-start;justify-content:flex-start;flex-direction:column}.cc-system-chart-grid{grid-template-columns:minmax(0,1fr)}.cc-system-node-selector,.cc-system-vitest-card,.cc-system-toggle-row,.cc-system-threshold-row,.cc-system-threshold-controls{align-items:stretch;flex-direction:column;inline-size:100%}.cc-system-node-selector .input,.cc-system-vitest-card .btn,.cc-system-threshold-controls .input{inline-size:100%}}.cc-mission-control{display:flex;flex-direction:column;gap:var(--space-lg)}.cc-mc-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.cc-mc-section{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.cc-mc-muted{color:var(--text-muted);font-size:.85rem;margin:0}.cc-mc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cc-mc-session,.cc-mc-node{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border-subtle, color-mix(in srgb, #ffffff 8%, transparent));border-radius:var(--radius-sm, 6px);background:var(--surface-1, color-mix(in srgb, #ffffff 2%, transparent));min-width:0}.cc-mc-node.inactive{opacity:.55}.cc-mc-session-purpose,.cc-mc-node-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cc-mc-session-meta,.cc-mc-node-meta{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.cc-mc-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:var(--radius-sm, 6px);background:var(--surface-2, color-mix(in srgb, #3b82f6 15%, transparent));color:var(--text)}.cc-mc-badge.inactive{background:var(--surface-2, color-mix(in srgb, #ffffff 6%, transparent));color:var(--text-muted)}.cc-mc-task,.cc-mc-node-count{font-size:.75rem;color:var(--text-muted)}@media(max-width:768px),(max-height:480px){.cc-mc-columns{grid-template-columns:1fr}}.theme-dropdown{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0}.theme-dropdown.open{z-index:10002}.theme-dropdown-trigger{justify-content:space-between;gap:var(--space-sm);inline-size:100%;min-inline-size:0}.theme-dropdown-trigger .theme-option-swatch,.theme-dropdown-option .theme-option-swatch{flex:0 0 auto}.theme-dropdown-trigger-label,.theme-dropdown-option-label{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-dropdown-modes{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.theme-dropdown-mode-btn{gap:var(--space-xs)}.theme-dropdown-mode-btn.active{border-color:var(--accent);color:var(--accent)}.theme-dropdown-popover{position:absolute;z-index:10002;inset-block-start:calc(100% + var(--space-xs));inset-inline:0;padding:var(--space-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-lg)}.theme-dropdown-list{display:grid;gap:var(--space-xs);max-block-size:min(60vh,calc(var(--space-2xl) * 12));overflow-y:auto;overscroll-behavior:contain}.theme-dropdown-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);inline-size:100%;padding:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;text-align:start}.theme-dropdown-option:hover,.theme-dropdown-option:focus-visible,.theme-dropdown-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);outline:none}@media(max-width:768px){.theme-dropdown.open{z-index:auto}.theme-dropdown-popover{position:static;z-index:auto;margin-block-start:var(--space-xs)}.theme-dropdown-list{max-block-size:min(50vh,calc(var(--space-2xl) * 10))}}.cc-controls{min-inline-size:0}.cc-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);align-items:stretch}.cc-controls-card{min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-controls-card--concurrency{grid-column:1 / -1}.cc-controls-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-block-end:var(--space-md)}.cc-controls-card-header h3{margin:0;color:var(--text);font-size:.9375rem}.cc-controls-card-header p,.cc-controls-muted{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:.8125rem}.cc-controls-error{margin:0;color:var(--color-error);font-size:.8125rem}.cc-controls-status-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:.8125rem}.cc-controls-action{gap:var(--space-xs)}.cc-controls-save-state{flex:0 0 auto;color:var(--text-muted);font-size:.8125rem}.cc-controls-save-state--saved{color:var(--color-success)}.cc-controls-save-state--error{color:var(--color-error)}.cc-controls-sliders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}.cc-controls-slider{display:flex;min-inline-size:0;flex-direction:column;gap:var(--space-sm);color:var(--text);font-size:.8125rem}.cc-controls-slider-label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cc-controls-slider-label strong{color:var(--accent);font-variant-numeric:tabular-nums}.cc-controls-slider input[type=range],.cc-controls-touch-slider{inline-size:100%;min-block-size:var(--space-xl);accent-color:var(--accent);touch-action:pan-y}@media(max-width:768px){.cc-controls-grid{grid-template-columns:minmax(0,1fr)}.cc-controls-card{padding:var(--space-sm)}.cc-controls-card-header{flex-direction:column}.cc-controls-sliders{grid-template-columns:minmax(0,1fr)}.cc-controls-slider input[type=range],.cc-controls-touch-slider{min-block-size:var(--space-2xl)}.cc-controls-slider input[type=range]::-webkit-slider-thumb,.cc-controls-touch-slider::-webkit-slider-thumb{inline-size:var(--space-xl);block-size:var(--space-xl)}.cc-controls-slider input[type=range]::-moz-range-thumb,.cc-controls-touch-slider::-moz-range-thumb{inline-size:var(--space-xl);block-size:var(--space-xl)}.cc-controls-action{justify-content:center;inline-size:100%}}.reliability-view{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-lg);height:100%;min-height:0;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.reliability-card{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card)}.reliability-loading{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);height:100%;min-width:0;padding:var(--space-2xl);color:var(--text-muted)}.reliability-error{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);height:100%;min-width:0;padding:var(--space-2xl);text-align:center}.reliability-error p{color:var(--text-muted);margin:0}.reliability-headline-card{display:flex;flex-direction:column;gap:var(--space-sm)}.reliability-headline{font-size:1.75rem;font-weight:700}.reliability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.reliability-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.reliability-chart-section{display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0;margin-block-start:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.reliability-chart-section h4{margin:0;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.reliability-chart-section .cc-recharts-chart,.reliability-chart-section .cc-recharts-empty{block-size:clamp(calc(var(--space-2xl) * 4),34vh,calc(var(--space-2xl) * 7))}.reliability-table{width:100%;border-collapse:collapse;margin-top:var(--space-sm)}.reliability-table th,.reliability-table td{text-align:left;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.reliability-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0}.reliability-muted{color:var(--text-muted)}.reliability-details{margin-top:var(--space-sm)}.reliability-details summary{color:var(--text-muted);cursor:pointer}.reliability-details-content{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs);color:var(--text-muted)}.reliability-histogram{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.reliability-histogram li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,6fr) minmax(0,1fr);align-items:center;gap:var(--space-sm)}.reliability-histogram-bar-wrap{width:100%;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-info) 15%,transparent);overflow:hidden}.reliability-histogram-bar{height:var(--space-md);background:var(--color-info)}@media(max-width:768px){.reliability-view,.reliability-loading,.reliability-error{padding-bottom:calc(var(--space-lg) + var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + var(--standalone-bottom-gap))}.reliability-grid{grid-template-columns:minmax(0,1fr)}.reliability-section-header{flex-direction:column;align-items:flex-start}.reliability-chart-section{padding:var(--space-sm)}.reliability-chart-section .cc-recharts-chart,.reliability-chart-section .cc-recharts-empty{block-size:clamp(calc(var(--space-2xl) * 3),46vh,calc(var(--space-2xl) * 6))}}.nodes-view{--nodes-view-spin-duration: calc(var(--duration-slow) * 4);--nodes-view-pulse-duration: calc(var(--duration-slow) * 5);display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) var(--space-md) var(--space-xl)}.nodes-view-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.nodes-view-title{display:flex;align-items:center;gap:var(--space-sm)}.nodes-view-title h2{margin:0;display:flex;align-items:center;gap:var(--space-sm)}.nodes-view-count{color:var(--text-muted);font-size:calc(var(--space-md) + var(--space-xs) / 4)}.nodes-view-actions{display:flex;gap:var(--space-sm)}.nodes-view-close{margin-left:auto}.nodes-view-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--space-xl) * 5.833),1fr));gap:var(--space-sm)}.nodes-view-stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.nodes-view-stat span{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.nodes-view-stat strong{font-size:calc(var(--space-lg) + var(--space-xs) / 2)}.nodes-view-stat--online strong{color:var(--color-success)}.nodes-view-stat--offline strong{color:var(--color-error)}.nodes-view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-lg) * 20),1fr));gap:var(--space-md)}.nodes-view-empty{padding:var(--space-xl);border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.nodes-view-error{color:var(--color-error);font-size:calc(var(--space-md) + var(--space-xs) / 4)}.node-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast)}.node-card:hover{border-color:var(--accent);transform:translateY(calc(var(--space-xs) * -.25))}.node-card:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.node-card--loading{min-height:calc(var(--space-xl) * 9.167);opacity:.55;pointer-events:none}.node-card__header{display:flex;align-items:center;justify-content:space-between}.node-card__title-wrap{display:flex;align-items:center;gap:var(--space-sm)}.node-card__icon{width:calc(var(--space-lg) * 2.125);height:calc(var(--space-lg) * 2.125);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.node-card__name{margin:0;font-size:calc(var(--space-md) + var(--space-xs));line-height:1.25}.node-card__meta-row{margin-top:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.node-card__type-badge{border:1px solid var(--border);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs) * .75);color:var(--text-muted)}.node-card__status{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:calc(var(--space-sm) + var(--space-xs) * .75);font-weight:600}.node-card__status-indicator{width:var(--space-sm);height:var(--space-sm);border-radius:50%}.node-card__status--online .node-card__status-indicator{background:var(--color-success)}.node-card__status--offline .node-card__status-indicator,.node-card__status--error .node-card__status-indicator{background:var(--color-error)}.node-card__status--connecting .node-card__status-indicator{background:var(--color-warning)}.node-card__auth-indicator{display:inline-flex;align-items:center;margin-left:var(--space-xs);vertical-align:middle}.node-card__url{font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted);word-break:break-all}.node-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.node-card__metric{display:flex;flex-direction:column;gap:var(--space-xs)}.node-card__metric-label{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .75);text-transform:uppercase;letter-spacing:.03em}.node-card__metric-value{font-size:calc(var(--space-md) + var(--space-xs));font-weight:600}.node-card__sync{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.node-card__sync-dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%;flex-shrink:0}.node-card__sync-time{color:var(--text-muted)}.nodes-view-stat--synced strong{color:var(--color-success)}.node-card__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.node-card__action{display:inline-flex;align-items:center;gap:var(--space-xs)}.node-card__action--remove{margin-left:auto}.node-card__action--remove:not(.btn-danger){color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 45%,var(--border))}.node-card__action--remove.is-armed{background:color-mix(in srgb,var(--color-error) 14%,transparent)}.node-card__docker-badge{display:inline-flex;align-items:center;gap:var(--space-xs);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs) * .75);background:color-mix(in srgb,var(--color-info) 15%,transparent);color:var(--color-info)}.node-card__docker-meta{display:flex;gap:var(--space-sm);margin-top:var(--space-xs);font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.node-card__docker-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-topology{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:calc(var(--space-2xl) * 6.25);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.mesh-topology__svg{width:100%;max-width:calc(var(--space-2xl) * 12.5);height:auto;aspect-ratio:1}.mesh-topology__node{transition:filter var(--transition-fast)}.mesh-topology__node:hover{filter:brightness(1.1)}.mesh-topology__node-circle{stroke:var(--border);stroke-width:calc(var(--space-xs) / 2);transition:fill var(--transition-fast)}.mesh-topology__node-label{font-size:calc(var(--space-sm) + var(--space-xs) * .75);fill:var(--text);font-weight:500}.mesh-topology__node-type-badge{fill:color-mix(in srgb,var(--surface) 75%,var(--bg));stroke:var(--border);stroke-width:calc(var(--space-xs) / 4)}.mesh-topology__node-type-text{font-size:calc(var(--space-sm) + var(--space-xs) / 2);font-weight:700;fill:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.mesh-topology__link{stroke:var(--border);stroke-width:calc((var(--space-xs) * 3) / 8);stroke-dasharray:var(--space-xs),var(--space-xs);opacity:.6}.mesh-topology__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.mesh-topology__legend-item{display:flex;align-items:center;gap:var(--space-sm)}.mesh-topology__notice{margin:var(--space-md) 0 0;text-align:center;color:var(--text-dim);font-size:calc(var(--space-sm) + var(--space-xs))}.mesh-topology__legend-dot{width:calc(var(--space-sm) + var(--space-xs) / 2);height:calc(var(--space-sm) + var(--space-xs) / 2);border-radius:50%;border:1px solid var(--border)}.mesh-topology--empty{justify-content:center}.mesh-topology__empty-state{text-align:center;color:var(--text-muted);font-size:calc(var(--space-md) + var(--space-xs) / 2)}.connect-node-modal{width:min(calc(var(--space-lg) * 30),calc(100vw - (var(--space-lg) * 2)))}.connect-node-form{display:flex;flex-direction:column;gap:var(--space-md)}.connect-node-form .form-group{padding:0;margin-top:0}.connect-node-form .form-group:last-of-type{margin-bottom:0}.connect-node-field{display:flex;flex-direction:column;gap:var(--space-xs)}.connect-node-field__input{width:100%}.connect-node-field__input[aria-invalid=true]{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 5%,var(--surface))}.connect-node-field__input[aria-invalid=true]:focus-visible{border-color:var(--color-error);box-shadow:var(--glow-danger)}.connect-node-url-preview{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--surface) 50%,var(--bg));border-radius:var(--radius-sm);border-left:var(--space-xs) solid var(--accent);font-size:calc(var(--space-sm) + var(--space-xs))}.connect-node-url-preview-label{color:var(--text-muted)}.connect-node-url-preview code{font-family:var(--font-mono);color:var(--text);font-size:calc(var(--space-sm) + var(--space-xs))}.connect-node-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--modal-padding);border-top:1px solid var(--border)}.nodes-view-topology{margin-bottom:var(--space-md)}.nodes-view-section-title{font-size:calc(var(--space-md) + var(--space-xs) * .5);font-weight:600;color:var(--text);margin:0 0 var(--space-sm)}.nodes-view .node-status-indicator{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:calc(var(--space-sm) + var(--space-xs) * .625)}.nodes-view .node-status-indicator__label,.nodes-view .node-status-indicator--local{color:var(--text-muted)}.nodes-view .node-status-indicator--remote{color:var(--text)}.nodes-view .node-status-indicator__dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%;position:relative;display:inline-block}.nodes-view .node-status-indicator__dot--online{background:var(--color-success);box-shadow:var(--glow-success)}.nodes-view .node-status-indicator__dot--offline,.nodes-view .node-status-indicator__dot--error{background:var(--color-error)}.nodes-view .node-status-indicator__dot--connecting{background:var(--color-warning);animation:pulse-warning var(--nodes-view-pulse-duration) ease-in-out infinite}.nodes-view .node-status-indicator__spinner{position:absolute;inset:0;border:calc(var(--space-xs) / 2) solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin var(--nodes-view-spin-duration) linear infinite}.nodes-view .node-status-indicator__name{font-weight:500}.nodes-view .node-status-indicator__details{font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}@keyframes pulse-warning{0%,to{opacity:1;box-shadow:var(--glow-warning)}50%{opacity:.6;box-shadow:var(--glow-warning)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin var(--nodes-view-spin-duration) linear infinite}@media(max-width:768px){.nodes-view{padding-inline:var(--space-sm)}.nodes-view-grid,.node-card__metrics{grid-template-columns:1fr}.node-card__docker-badge,.node-card__docker-meta{gap:var(--space-xs)}.node-card__docker-meta span{max-width:calc(var(--space-2xl) * 4.5)}.connect-node-modal{width:calc(100vw - (var(--space-md) * 2))}.connect-node-field__input{min-height:calc(var(--space-2xl) + var(--space-md))}.nodes-view-header{flex-wrap:wrap;gap:var(--space-sm)}.nodes-view-title h2{font-size:calc(var(--space-md) + var(--space-xs))}.nodes-view-title h2 svg{flex-shrink:0}.nodes-view-count{font-size:calc(var(--space-sm) + var(--space-xs))}.nodes-view-actions{flex-wrap:wrap;gap:var(--space-sm);width:100%;justify-content:flex-end}.nodes-view-close{min-height:calc(var(--space-xl) + var(--space-md));min-width:calc(var(--space-xl) + var(--space-md))}.nodes-view-actions .btn{min-height:calc(var(--space-xl) + var(--space-md))}.nodes-view-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.nodes-view-stat{padding:var(--space-xs) var(--space-sm)}.nodes-view-stat span{font-size:calc(var(--space-sm) + var(--space-xs) * .75)}.nodes-view-stat strong{font-size:calc(var(--space-md) + var(--space-xs) / 2)}.nodes-view-empty{padding:var(--space-xl) var(--space-md);text-align:center}.nodes-view-error{padding:var(--space-md);margin:var(--space-md) 0}.nodes-view-topology{padding:var(--space-sm) 0}.nodes-view-section-title{font-size:calc(var(--space-md) + var(--space-xs) / 4)}}.add-node-modal{width:min(calc(var(--space-lg) * 32.5),calc(100vw - (var(--space-lg) * 2)))}.add-node-modal__body{display:flex;flex-direction:column;gap:var(--space-md)}.add-node-modal__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.add-node-modal__fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__fieldset legend{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .625);padding:0 var(--space-xs)}.add-node-modal__storage-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm)}.add-node-modal__advanced-btn{align-self:flex-start}.add-node-modal__advanced{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__textarea{min-height:calc(var(--space-2xl) * 2.25);resize:vertical;font-family:var(--font-mono)}.add-node-modal__description{font-size:calc(var(--space-sm) + var(--space-xs) * .625);color:var(--text-muted);margin-bottom:var(--space-sm);padding:0}.add-node-modal__field{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__field>span{font-size:calc(var(--space-sm) + var(--space-xs) * .625);font-weight:600;color:var(--text-muted)}.add-node-modal__field .input{width:100%;padding:var(--space-sm) var(--space-md);font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__field .input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring-strong)}.add-node-modal__field .input[aria-invalid=true]{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 5%,var(--surface))}.add-node-modal__field .input[aria-invalid=true]:focus{box-shadow:var(--glow-danger)}.add-node-modal__hint{font-size:calc(var(--space-sm) + var(--space-xs) * .375);color:var(--text-dim);margin-top:calc(var(--space-xs) / 2)}.add-node-modal__error{margin-top:calc(var(--space-xs) / 2)}.add-node-modal__type-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.add-node-modal__type-btn{flex:1;padding:calc(var(--space-sm) + var(--space-xs) / 2) var(--space-lg);border:none;background:transparent;color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .625);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.add-node-modal__type-btn:hover:not(:disabled){background:color-mix(in srgb,var(--bg) 50%,var(--surface))}.add-node-modal__type-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);z-index:1}.add-node-modal__type-btn.active{background:var(--accent);color:var(--bg)}.add-node-modal__type-btn:disabled{opacity:.6;cursor:not-allowed}.add-node-modal__remote-fields{display:grid;gap:var(--space-sm)}.add-node-modal__discovery-actions{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovery-state{font-size:calc(var(--space-sm) + var(--space-xs) * .375);color:var(--color-success)}.add-node-modal__discovered-list{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovered-card{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovered-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.add-node-modal__projects{display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__projects-title{margin:0;font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__project-list{display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__project-card{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__project-toggle{margin:0}@media(max-width:768px){.add-node-modal{width:calc(100vw - (var(--space-md) * 2))}.add-node-modal__type-toggle{width:100%}.add-node-modal__type-btn{flex:1;padding:var(--space-md) var(--space-lg)}.add-node-modal__field input{min-height:calc(var(--space-2xl) + var(--space-md));font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__row{grid-template-columns:1fr}.add-node-modal__project-card{padding:var(--space-md)}.add-node-modal__discovered-row{flex-direction:column;align-items:flex-start}}.docker-tls-config{display:flex;flex-direction:column;gap:var(--space-md)}.docker-tls-config__fields{display:grid;gap:var(--space-md)}.docker-tls-config__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-tls-config__field label{color:var(--text-muted)}@media(max-width:768px){.docker-tls-config .input{min-height:calc(var(--mobile-nav-height) - var(--space-sm))}}.docker-target-selector{display:flex;flex-direction:column;gap:var(--space-md)}.docker-target-selector__modes{display:flex;gap:var(--space-sm);flex-wrap:wrap}.docker-target-selector__mode-active{border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.docker-target-selector__panel{display:grid;gap:var(--space-md)}.docker-target-selector__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-target-selector__field label{color:var(--text-muted)}.docker-target-selector__context-row{display:grid;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto;align-items:center}.docker-target-selector__status{color:var(--text-muted)}.docker-target-selector__success{color:var(--color-success)}.docker-target-selector__error{color:var(--color-error)}@media(max-width:768px){.docker-target-selector__modes .btn{min-height:calc(var(--mobile-nav-height) - var(--space-sm))}}.docker-onboarding{width:min(calc(var(--space-2xl) * 22.5),calc(100vw - (var(--space-lg) * 2)))}.docker-onboarding__body{display:flex;flex-direction:column;gap:var(--space-md)}.docker-onboarding__section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__section-title{margin:0;display:flex;align-items:center;gap:var(--space-sm);font-size:calc(var(--space-md) + var(--space-xs) / 2)}.docker-onboarding__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-onboarding__inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.docker-onboarding__radio-group{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.docker-onboarding__type-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.docker-onboarding__type-btn{flex:1;border:none;background:var(--surface);color:var(--text);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.docker-onboarding__type-btn+.docker-onboarding__type-btn{border-left:1px solid var(--border)}.docker-onboarding__type-btn.is-active{background:var(--todo);color:var(--bg)}.docker-onboarding__type-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);position:relative;z-index:1}.docker-onboarding__checkbox-group{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-onboarding__kv-list{display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__kv-list h5{margin:0;font-size:calc(var(--space-sm) + var(--space-xs))}.docker-onboarding__kv-row{display:grid;gap:var(--space-sm);align-items:center}.docker-onboarding__kv-row--env{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.docker-onboarding__kv-row--mount{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}.docker-onboarding__kv-add{align-self:flex-start}.docker-onboarding__advanced-toggle{border:none;background:none;color:var(--text);padding:var(--space-xs);margin:calc(var(--space-xs) * -1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;font-size:calc(var(--space-md) + var(--space-xs) / 2);font-weight:600}.docker-onboarding__advanced-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring-strong)}.docker-onboarding__advanced-toggle svg{transition:transform var(--transition-fast)}.docker-onboarding__advanced-toggle.is-expanded svg{transform:rotate(180deg)}.docker-onboarding__advanced-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-fast)}.docker-onboarding__advanced-content>div{overflow:hidden;display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__advanced-content.is-expanded{grid-template-rows:1fr}.docker-onboarding__tls-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.docker-onboarding__tls-fields .docker-onboarding__field:first-child{grid-column:1 / -1}@media(max-width:768px){.docker-onboarding{width:calc(100vw - (var(--space-md) * 2))}.docker-onboarding__inline-fields,.docker-onboarding__tls-fields,.docker-onboarding__kv-row{grid-template-columns:1fr}.docker-onboarding .input,.docker-onboarding .select,.docker-onboarding .btn{min-height:calc(var(--space-2xl) + var(--space-md))}.docker-onboarding__advanced-content{transition:none}}.settings-sync-log{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-sync-log__header{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;padding:var(--space-xs) 0;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text);font:inherit;text-align:left;transition:background-color var(--transition-fast)}.settings-sync-log__header:hover{background:var(--surface-hover)}.settings-sync-log__header:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);background:var(--surface-hover)}.settings-sync-log__chevron{transform:rotate(0);transition:transform var(--transition-fast)}.settings-sync-log__chevron--expanded{transform:rotate(180deg)}.settings-sync-log__filters{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.settings-sync-log__filters label{display:flex;align-items:center;gap:var(--space-xs);font-size:12px;color:var(--text-muted)}.settings-sync-log__filters select{font-size:12px;padding:4px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.settings-sync-log__filters select:focus{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring)}.settings-sync-log__list{display:flex;flex-direction:column}.settings-sync-log__entry{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border)}.settings-sync-log__entry:last-child{border-bottom:none}.settings-sync-log__entry-timestamp{font-size:12px;color:var(--text-muted);min-width:140px}.settings-sync-log__entry-direction{display:flex;align-items:center;color:var(--text-muted)}.settings-sync-log__entry-result{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.settings-sync-log__badge--success{background:color-mix(in srgb,var(--color-success, #2da44e) 14%,transparent);color:var(--color-success, #2da44e)}.settings-sync-log__badge--conflict{background:color-mix(in srgb,var(--color-warning, #d29922) 14%,transparent);color:var(--color-warning, #d29922)}.settings-sync-log__badge--error{background:color-mix(in srgb,var(--color-error, #cf222e) 14%,transparent);color:var(--color-error, #cf222e)}.settings-sync-log__entry-node{font-weight:500;font-size:12px}.settings-sync-log__entry-details{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.settings-sync-log__empty{text-align:center;color:var(--text-muted);padding:var(--space-md);font-size:13px}.node-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);color:var(--text-muted);font-size:11px;width:fit-content;margin-top:4px}@media(max-width:768px){.settings-sync-conflict-modal__diff-panel{grid-template-columns:1fr}}.settings-sync-conflict-modal{max-width:860px;width:min(860px,calc(100vw - 32px))}.settings-sync-conflict-modal__conflict-list{display:flex;flex-direction:column;gap:var(--space-md);max-height:min(50vh,400px);overflow-y:auto}.settings-sync-conflict-modal__conflict-item{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md)}.settings-sync-conflict-modal__key{font-weight:600;font-family:monospace;margin-bottom:var(--space-sm)}.settings-sync-conflict-modal__diff-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-sm)}.settings-sync-conflict-modal__diff-side{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.settings-sync-conflict-modal__diff-label{font-size:calc(var(--space-sm) + var(--space-xs) * .75);color:var(--text-muted);padding:4px 8px;border-bottom:1px solid var(--border);background:var(--surface)}.settings-sync-conflict-modal__diff-content{padding:var(--space-xs) var(--space-sm);white-space:pre;font-family:monospace;font-size:12px;line-height:1.5;overflow-x:auto}.settings-sync-conflict-modal__resolution{display:flex;gap:var(--space-md);align-items:center}.settings-sync-conflict-modal__resolution label{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer}.settings-sync-conflict-modal__resolution input[type=radio]{cursor:pointer}.settings-sync-conflict-modal__manual-input{width:100%;font-family:monospace;font-size:12px;min-height:80px;margin-top:var(--space-xs);padding:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);resize:vertical}.settings-sync-conflict-modal__manual-input:focus{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring)}.settings-sync-conflict-modal__bulk-actions{display:flex;gap:var(--space-xs);padding-top:var(--space-sm);border-top:1px solid var(--border)}.settings-sync-conflict-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-xs)}.node-detail-modal{max-width:calc(var(--space-lg) * 53.75);width:min(calc(var(--space-lg) * 53.75),calc(100vw - (var(--space-lg) * 2)))}.node-detail-modal__body{display:flex;flex-direction:column;gap:var(--space-md);max-height:min(72vh,calc(var(--space-lg) * 42.5));overflow-y:auto}.node-detail-modal__section{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.node-detail-modal__section h4{margin:0 0 var(--space-sm) 0}.node-detail-modal__section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.node-detail-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.node-detail-modal__field{display:flex;flex-direction:column;gap:var(--space-xs)}.node-detail-modal__field--full{grid-column:span 2}.node-detail-modal__field span{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__edit-actions{margin-top:var(--space-sm);display:flex;gap:var(--space-xs)}.node-detail-modal__project-list{margin:0;padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__project-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.node-detail-modal__project-item code{color:var(--text-muted)}.node-detail-modal__empty{margin:0;color:var(--text-muted)}.node-detail-modal__health-row{display:flex;flex-wrap:wrap;gap:var(--space-md)}.node-detail-modal__actions{justify-content:space-between}.node-detail-modal__docker-config{display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__docker-toggle{align-self:flex-start}.node-detail-modal__docker-toggle-icon--expanded{transform:rotate(180deg)}.node-detail-modal__docker-config-content{display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__docker-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__docker-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-sm)}.node-detail-modal__docker-stack{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__checkbox{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted)}.node-detail-modal__docker-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__docker-recreate{color:var(--color-warning)}.node-detail-modal__docker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__textarea{min-height:calc(var(--space-2xl) * 2.25);resize:vertical;font-family:var(--font-mono)}.node-detail-modal__sync-status{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-sm)}.node-detail-modal__sync-dot{width:calc(var(--space-sm) + var(--space-xs) / 2);height:calc(var(--space-sm) + var(--space-xs) / 2);border-radius:50%;flex-shrink:0}.node-detail-modal__sync-dot--synced{background:var(--color-success)}.node-detail-modal__sync-dot--diff,.node-detail-modal__sync-dot--pending{background:var(--color-warning)}.node-detail-modal__sync-dot--error{background:var(--color-error)}.node-detail-modal__sync-dot--never{background:var(--text-muted)}.node-detail-modal__sync-diff{color:var(--color-warning);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__sync-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__sync-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-sm);background:color-mix(in srgb,var(--color-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 30%,transparent);border-radius:var(--radius-sm);color:var(--color-error);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__sync-error-dismiss{background:transparent;border:none;color:var(--color-error);cursor:pointer;padding:calc(var(--space-xs) / 2);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.node-detail-modal__sync-error-dismiss:hover{background:color-mix(in srgb,var(--color-error) 20%,transparent)}.node-detail-modal__sync-error-dismiss:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);background:color-mix(in srgb,var(--color-error) 20%,transparent)}.docker-management{display:flex;flex-direction:column;gap:var(--space-md)}.docker-management__status-card{display:flex;flex-direction:column;gap:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.docker-management__status-row{display:inline-flex;align-items:center;gap:var(--space-sm)}.docker-management__status-dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%}.docker-management__status-dot--success{background:var(--color-success)}.docker-management__status-dot--warning{background:var(--color-warning)}.docker-management__status-dot--error{background:var(--color-error)}.docker-management__status-meta{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs));display:flex;gap:var(--space-md);flex-wrap:wrap}.docker-management__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.docker-management__info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.docker-management__log-viewer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.docker-management__log-viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.docker-management__log-viewer pre{margin:0;max-height:calc(var(--space-2xl) * 9.375);overflow-y:auto;font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text);white-space:pre-wrap}.docker-management__env-list{margin:var(--space-sm) 0 0}.docker-management__env-list div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-sm);padding:var(--space-xs) 0}.docker-management__env-list dt{color:var(--text-muted);font-family:var(--font-mono)}.docker-management__env-list dd{margin:0;font-family:var(--font-mono);word-break:break-all}.docker-management__mounts-list{margin:var(--space-sm) 0 0;padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.docker-management__mounts-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}@media(max-width:768px){.node-detail-modal__grid,.node-detail-modal__docker-grid{grid-template-columns:1fr}.node-detail-modal__field--full{grid-column:span 1}.docker-management__actions{flex-direction:column}.docker-management__actions .btn{width:100%;justify-content:center}.docker-management__info-grid,.node-detail-modal__docker-row{grid-template-columns:1fr}.node-detail-modal__docker-toggle,.node-detail-modal__docker-config-content .btn{min-height:calc(var(--space-lg) * 2.25)}.docker-management__env-list div{grid-template-columns:1fr}.docker-management__mounts-list li{flex-direction:column;align-items:flex-start}.docker-management__log-viewer pre{max-height:calc(var(--space-2xl) * 6.25)}}.cc-area[data-testid=cc-area-funnel] .cc-area-section+.cc-area-section{margin-top:var(--space-lg)}.command-center{display:flex;flex:1;flex-direction:column;gap:0;min-height:0;inline-size:100%;padding:0}.cc-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:var(--space-md)}.cc-header{box-sizing:border-box;min-block-size:var(--view-header-min-height);padding:var(--space-lg) var(--space-xl);background:var(--surface)}@media(min-width:769px)and (min-height:481px){.cc-header{height:var(--view-header-min-height)}.cc-header>.cc-date-range{max-height:var(--view-header-content-row)}.cc-header>.cc-date-range .cc-date-range-trigger{min-height:0;max-height:var(--view-header-content-row);white-space:nowrap}}.cc-title{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:1.125rem;font-weight:600;color:var(--text)}.cc-title svg{flex-shrink:0;color:var(--todo)}.cc-tablist{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-md) var(--space-xl) 0;border-bottom:1px solid var(--border-subtle)}.cc-tab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:.8125rem;transition:color var(--transition-fast),border-color var(--transition-fast)}.cc-tab:hover{color:var(--text)}.cc-tab.active{color:var(--text);border-bottom-color:var(--accent)}.cc-tabpanel{flex:1;min-height:0;min-inline-size:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;outline:none;padding:var(--space-lg) var(--space-xl) var(--space-xl);-webkit-overflow-scrolling:touch}@media(max-width:768px){.cc-tabpanel{padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0) + var(--standalone-bottom-gap))}}.cc-overview{min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-lg)}.cc-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr));gap:var(--space-md)}.cc-stat-card{container-type:inline-size;display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-stat-label{font-size:.8125rem;color:var(--text-muted)}.cc-stat-value{max-width:100%;min-width:0;overflow:hidden;white-space:nowrap;font-size:clamp(.95rem,16cqi,2.4rem);line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text)}.cc-stat-card--gauge{align-items:center;text-align:center}.cc-github-backfill-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.cc-github-backfill-status{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--text-muted);font-size:.75rem}.cc-github-backfill-status--error{color:var(--color-error)}.cc-github-backfill-status--warning{color:var(--color-warning)}@media(max-width:768px){.cc-github-backfill-actions{align-items:stretch;flex-direction:column}.cc-github-backfill-actions .btn{justify-content:center;inline-size:100%}}.cc-live-strip{position:relative;display:grid;grid-template-columns:minmax(calc(var(--space-2xl) * 5),1fr) minmax(calc(var(--space-2xl) * 8),2fr) minmax(calc(var(--space-2xl) * 5),1fr);align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent),var(--surface-1);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 9%,transparent);overflow:hidden;font-size:.8125rem}.cc-live-strip:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 10%,transparent),transparent);opacity:.25;transform:translate(-100%);animation:cc-live-signal-sweep calc(var(--duration-slow) * 8) linear infinite;pointer-events:none}.cc-live-strip-heading,.cc-live-strip-metrics,.cc-live-trend{min-inline-size:0;position:relative;z-index:1}.cc-live-strip-heading{display:flex;align-items:center;gap:var(--space-sm)}.cc-live-strip-label{color:var(--text);font-weight:600}.cc-live-strip-metrics{min-inline-size:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm)}.cc-live-metric{container-type:inline-size;min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-2) 70%,transparent);animation:cc-live-signal-pulse calc(var(--duration-slow) * 6) ease-in-out infinite}.cc-live-metric-value{max-width:100%;min-width:0;overflow:hidden;white-space:nowrap;color:var(--text);font-size:clamp(.75rem,6cqi,1.125rem);font-weight:700;font-variant-numeric:tabular-nums}.cc-token-count-live{animation:cc-token-count-pop var(--duration-normal) ease-out both}@keyframes cc-token-count-pop{0%{transform:translateY(var(--space-xs));opacity:.7}to{transform:translateY(0);opacity:1}}.cc-live-metric-label,.cc-live-trend-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.cc-live-trend{min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-live-trend .cc-sparkline{block-size:calc(var(--space-2xl) + var(--space-sm))}.cc-live-trend .cc-sparkline-bar{box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 28%,transparent);animation:cc-live-signal-pulse calc(var(--duration-slow) * 5) ease-in-out infinite}@keyframes cc-live-signal-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes cc-live-signal-pulse{0%,to{opacity:.78}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.cc-live-strip:before,.cc-live-metric,.cc-live-trend .cc-sparkline-bar,.cc-token-count-live{animation:none}}.cc-overview-charts{min-inline-size:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);align-items:stretch}.cc-overview-chart-card{min-inline-size:0;position:relative;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent),var(--surface-1);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 7%,transparent);overflow:hidden;animation:cc-overview-chart-rise var(--duration-normal) ease-out both}.cc-overview-chart-card--trend{grid-column:1 / -1}.cc-overview-chart-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 8%,transparent),transparent);opacity:0;pointer-events:none;animation:cc-overview-chart-sheen calc(var(--duration-slow) * 7) ease-in-out infinite}.cc-overview-chart-header{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--space-xs)}.cc-overview-chart-header p{margin:0;color:var(--text-muted);font-size:.8125rem}.cc-overview-chart-card .cc-bar-chart,.cc-overview-chart-card .cc-sparkline,.cc-overview-chart-card .cc-recharts-chart,.cc-overview-chart-card .cc-recharts-empty{position:relative;z-index:1}.cc-overview-chart-card .cc-recharts-chart,.cc-overview-chart-card .cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-overview-chart-card .cc-sparkline{block-size:calc(var(--space-2xl) * 2)}.cc-overview-chart-card .cc-bar-fill,.cc-overview-chart-card .cc-sparkline-bar{box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 30%,transparent)}@keyframes cc-overview-chart-rise{0%{opacity:0;transform:translateY(var(--space-sm))}to{opacity:1;transform:translateY(0)}}@keyframes cc-overview-chart-sheen{0%{opacity:0;transform:translate(-100%)}45%,55%{opacity:.35}to{opacity:0;transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.cc-overview-chart-card,.cc-overview-chart-card:before{animation:none}}@media(min-width:769px)and (max-width:1024px){.command-center{flex:1;min-block-size:0;overflow:hidden}.cc-tabpanel{flex:1;min-block-size:0;overflow-x:hidden;overflow-y:auto}.cc-live-strip,.cc-overview-charts,.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-live-strip-metrics{min-inline-size:0;grid-template-columns:repeat(2,minmax(0,1fr))}.cc-overview-chart-card--trend,.cc-team-spark-panel{grid-column:auto}.cc-stat-grid,.cc-area .cc-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr))}}@media(max-width:768px){.cc-live-strip{grid-template-columns:1fr}.cc-live-strip-metrics,.cc-overview-charts{min-inline-size:0;grid-template-columns:1fr}.cc-overview-chart-card--trend{grid-column:auto}}.cc-loading,.cc-error,.cc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-muted);text-align:center}.cc-error{color:var(--color-error)}.cc-loading .cc-chart-skeleton{block-size:var(--space-lg);border-radius:var(--radius-sm);background:var(--surface-2);animation:cc-shell-pulse var(--duration-slow) ease-in-out infinite}@keyframes cc-shell-pulse{0%,to{opacity:.4}50%{opacity:.9}}.cc-overview-engine-panel{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-overview-engine-panel-header{display:flex;align-items:center;gap:var(--space-sm);color:var(--text)}.cc-overview-engine-panel-title{font-size:.9375rem;font-weight:600}.cc-overview-engine-panel-status{margin:0;font-size:.8125rem;color:var(--text-muted)}.cc-overview-engine-nav{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}.cc-overview-engine-nav-btn{flex:1 1 auto;justify-content:center}
|
|
1
|
+
.cc-date-range{position:relative;display:inline-block}.cc-date-range-trigger{display:inline-flex;align-items:center;gap:var(--space-xs)}.cc-date-range-popover{position:absolute;top:calc(100% + var(--space-xs));right:0;z-index:20;min-width:16rem;padding:var(--space-md);background:var(--surface-1, #1c1c1c);border:1px solid var(--border-subtle, color-mix(in srgb, #7f7f7f 25%, transparent));border-radius:var(--radius-md, 8px);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--space-md)}.cc-date-range-presets{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.cc-date-range-custom{display:flex;flex-direction:column;gap:var(--space-sm)}.cc-date-range-field{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);font-size:.8125rem;color:var(--text-muted)}.cc-date-range-field input{background:var(--surface-2, color-mix(in srgb, #7f7f7f 12%, transparent));border:1px solid var(--border-subtle, color-mix(in srgb, #7f7f7f 25%, transparent));border-radius:var(--radius-sm, 4px);color:var(--text);padding:var(--space-xs) var(--space-sm)}.cc-bar-chart,.cc-stacked-bar,.cc-sparkline,.cc-token-series,.cc-token-series-plot,.cc-token-series-axis,.cc-line-chart,.cc-radial-gauge,.cc-funnel,.cc-funnel-stage{min-inline-size:0;max-inline-size:100%}.cc-bar-chart{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-bar-row{display:grid;grid-template-columns:minmax(calc(var(--space-2xl) * 2 + var(--space-lg)),32%) minmax(0,1fr) auto;align-items:center;gap:var(--space-sm)}.cc-bar-label{min-inline-size:0;font-size:.8125rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-bar-track{min-inline-size:0;position:relative;block-size:var(--space-md);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-bar-fill{block-size:100%;background:var(--accent);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.cc-bar-row:nth-child(8n+1) .cc-bar-fill{background:var(--accent)}.cc-bar-row:nth-child(8n+2) .cc-bar-fill{background:var(--todo)}.cc-bar-row:nth-child(8n+3) .cc-bar-fill{background:var(--in-progress)}.cc-bar-row:nth-child(8n+4) .cc-bar-fill{background:var(--in-review)}.cc-bar-row:nth-child(8n+5) .cc-bar-fill{background:var(--triage)}.cc-bar-row:nth-child(8n+6) .cc-bar-fill{background:var(--color-success)}.cc-bar-row:nth-child(8n+7) .cc-bar-fill{background:var(--color-warning)}.cc-bar-row:nth-child(8n) .cc-bar-fill{background:var(--color-error)}.cc-bar-value{min-inline-size:0;font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--text);overflow-wrap:anywhere;text-align:end}.cc-stacked-bar{display:flex;flex-direction:column;gap:var(--space-sm)}.cc-stacked-track{display:flex;block-size:var(--space-md);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-stacked-segment{block-size:100%;background:var(--accent);transition:width var(--transition-normal)}.cc-stacked-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-md)}.cc-stacked-legend-item{min-inline-size:0;display:flex;align-items:center;gap:var(--space-xs);font-size:.8125rem;color:var(--text-muted);overflow-wrap:anywhere}.cc-stacked-swatch{inline-size:var(--space-sm);block-size:var(--space-sm);border-radius:var(--radius-sm);background:var(--accent);display:inline-block}.cc-stacked-segment:nth-child(8n+1),.cc-stacked-legend-item:nth-child(8n+1) .cc-stacked-swatch{background:var(--accent)}.cc-stacked-segment:nth-child(8n+2),.cc-stacked-legend-item:nth-child(8n+2) .cc-stacked-swatch{background:var(--todo)}.cc-stacked-segment:nth-child(8n+3),.cc-stacked-legend-item:nth-child(8n+3) .cc-stacked-swatch{background:var(--in-progress)}.cc-stacked-segment:nth-child(8n+4),.cc-stacked-legend-item:nth-child(8n+4) .cc-stacked-swatch{background:var(--in-review)}.cc-stacked-segment:nth-child(8n+5),.cc-stacked-legend-item:nth-child(8n+5) .cc-stacked-swatch{background:var(--triage)}.cc-stacked-segment:nth-child(8n+6),.cc-stacked-legend-item:nth-child(8n+6) .cc-stacked-swatch{background:var(--color-success)}.cc-stacked-segment:nth-child(8n+7),.cc-stacked-legend-item:nth-child(8n+7) .cc-stacked-swatch{background:var(--color-warning)}.cc-stacked-segment:nth-child(8n),.cc-stacked-legend-item:nth-child(8n) .cc-stacked-swatch{background:var(--color-error)}.cc-sparkline{display:flex;align-items:flex-end;gap:1px;block-size:var(--space-2xl)}.cc-sparkline-bar{flex:1 1 0;min-inline-size:1px;background:var(--accent);border-radius:1px;transition:height var(--transition-normal)}.cc-sparkline-bar:nth-child(8n+1){background:var(--accent)}.cc-sparkline-bar:nth-child(8n+2){background:var(--todo)}.cc-sparkline-bar:nth-child(8n+3){background:var(--in-progress)}.cc-sparkline-bar:nth-child(8n+4){background:var(--in-review)}.cc-sparkline-bar:nth-child(8n+5){background:var(--triage)}.cc-sparkline-bar:nth-child(8n+6){background:var(--color-success)}.cc-sparkline-bar:nth-child(8n+7){background:var(--color-warning)}.cc-sparkline-bar:nth-child(8n){background:var(--color-error)}.cc-token-series{display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0}.cc-token-series-plot{display:flex;align-items:flex-end;gap:var(--space-xs);block-size:clamp(calc(var(--space-2xl) * 2),24vw,calc(var(--space-2xl) * 5));padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent),var(--surface-1);overflow:hidden}.cc-token-series-bar{flex:1 1 0;min-inline-size:var(--space-xs);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 45%,var(--surface-2)));box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 24%,transparent);transition:height var(--transition-normal);animation:cc-token-series-rise var(--duration-normal) ease-out both}.cc-token-series-empty{inline-size:100%;block-size:2px;align-self:flex-end;border-radius:var(--radius-pill);background:var(--border-subtle)}.cc-token-series-axis{display:flex;justify-content:space-between;gap:var(--space-sm);color:var(--text-muted);font-size:.75rem;font-variant-numeric:tabular-nums}.cc-token-series-axis span{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-token-series-axis span:last-child{text-align:end}@keyframes cc-token-series-rise{0%{transform:scaleY(.82);opacity:.72}to{transform:scaleY(1);opacity:1}}@media(prefers-reduced-motion:reduce){.cc-token-series-bar{transition:none;animation:none}}@media(max-width:768px){.cc-token-series-plot{block-size:clamp(calc(var(--space-2xl) + var(--space-xl)),38vw,calc(var(--space-2xl) * 4));padding:var(--space-sm)}}.cc-line-chart{display:block;inline-size:100%;block-size:clamp(calc(var(--space-2xl) * 2),22vw,calc(var(--space-2xl) * 5));aspect-ratio:5 / 2;color:var(--accent);overflow:hidden}.cc-line-chart-series{color:var(--accent)}.cc-line-chart-series:nth-child(2n){color:var(--color-success)}.cc-line-chart-series:nth-child(3n){color:var(--color-warning)}.cc-line-chart-path{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:cc-line-chart-draw calc(var(--duration-slow) * 4) ease-out forwards}.cc-line-chart-point{fill:var(--surface-1);stroke:currentColor;stroke-width:2px}@keyframes cc-line-chart-draw{to{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.cc-line-chart-path{animation:none;stroke-dashoffset:0}}@media(max-width:768px){.cc-line-chart{block-size:clamp(calc(var(--space-2xl) * 2),44vw,calc(var(--space-2xl) * 4));aspect-ratio:auto}}.cc-recharts-chart,.cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-recharts-chart .recharts-wrapper{inline-size:100%!important;max-inline-size:100%}.cc-recharts-chart .recharts-legend-wrapper{inset-inline:0!important;inset-block-start:auto!important;inset-block-end:0!important;inline-size:100%!important;max-inline-size:100%;overflow:hidden}.cc-recharts-chart .recharts-default-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs) var(--space-sm);inline-size:100%;max-inline-size:100%;margin:0;padding:0}.cc-recharts-chart .recharts-legend-item{display:inline-flex!important;align-items:center;max-inline-size:min(100%,calc(var(--space-2xl) * 5));margin-inline-end:0!important;min-inline-size:0}.cc-recharts-chart .recharts-legend-item-text{display:inline-block;min-inline-size:0;max-inline-size:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}@media(max-width:768px){.cc-recharts-chart,.cc-recharts-empty{block-size:calc(var(--space-2xl) * 8 + var(--space-md))}}.cc-radial-gauge{min-inline-size:0;display:grid;place-items:center;gap:var(--space-sm);color:var(--text)}.cc-radial-gauge-ring{position:relative;display:grid;place-items:center;inline-size:clamp(calc(var(--space-2xl) * 3),32vw,calc(var(--space-2xl) * 4 + var(--space-lg)));aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at center,var(--surface-1) 0 54%,transparent 55%),conic-gradient(var(--accent) var(--cc-radial-value),var(--surface-2) 0);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 35%,transparent);isolation:isolate;animation:cc-radial-gauge-pulse calc(var(--duration-slow) * 6) ease-in-out infinite}.cc-radial-gauge-ring:before{content:"";position:absolute;inset:var(--space-sm);border-radius:inherit;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:inset 0 0 var(--space-md) color-mix(in srgb,var(--accent) 22%,transparent);animation:cc-radial-gauge-sweep calc(var(--duration-slow) * 8) linear infinite}.cc-radial-gauge-core{position:relative;z-index:1;display:grid;place-items:center;inline-size:58%;aspect-ratio:1;background:var(--surface-1);border-radius:50%;box-shadow:inset 0 0 var(--space-md) var(--surface-2)}.cc-radial-gauge-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.cc-radial-gauge-label{max-inline-size:100%;color:var(--text-muted);font-size:.8125rem;overflow-wrap:anywhere;text-align:center}@keyframes cc-radial-gauge-pulse{0%,to{filter:saturate(1)}50%{filter:saturate(1.35)}}@keyframes cc-radial-gauge-sweep{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.cc-radial-gauge-ring,.cc-radial-gauge-ring:before{animation:none}}.cc-funnel{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-funnel-stage{display:flex;flex-direction:column;gap:var(--space-xs)}.cc-funnel-header{min-inline-size:0;display:flex;justify-content:space-between;gap:var(--space-sm);font-size:.8125rem;color:var(--text-muted)}.cc-funnel-label,.cc-funnel-conversion,.cc-funnel-value{min-inline-size:0;overflow-wrap:anywhere}.cc-funnel-conversion{flex:0 1 auto;text-align:end}.cc-funnel-conversion{font-variant-numeric:tabular-nums}.cc-funnel-track{block-size:var(--space-lg);background:var(--surface-2);border-radius:var(--radius-sm);overflow:hidden}.cc-funnel-fill{block-size:100%;background:var(--accent);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.cc-funnel-stage:nth-child(8n+1) .cc-funnel-fill{background:var(--accent)}.cc-funnel-stage:nth-child(8n+2) .cc-funnel-fill{background:var(--todo)}.cc-funnel-stage:nth-child(8n+3) .cc-funnel-fill{background:var(--in-progress)}.cc-funnel-stage:nth-child(8n+4) .cc-funnel-fill{background:var(--in-review)}.cc-funnel-stage:nth-child(8n+5) .cc-funnel-fill{background:var(--triage)}.cc-funnel-stage:nth-child(8n+6) .cc-funnel-fill{background:var(--color-success)}.cc-funnel-stage:nth-child(8n+7) .cc-funnel-fill{background:var(--color-warning)}.cc-funnel-stage:nth-child(8n) .cc-funnel-fill{background:var(--color-error)}.cc-funnel-value{font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--text)}.cc-chart-skeleton{block-size:var(--space-md);border-radius:var(--radius-sm);background:var(--surface-2);animation:cc-chart-pulse var(--duration-slow) ease-in-out infinite}@keyframes cc-chart-pulse{0%,to{opacity:.4}50%{opacity:.9}}@media(max-width:768px){.cc-bar-row{grid-template-columns:minmax(0,1fr) minmax(calc(var(--space-2xl) + var(--space-lg)),2fr);align-items:start}.cc-bar-value{grid-column:1 / -1;justify-self:end;max-inline-size:100%}.cc-radial-gauge-ring{inline-size:clamp(calc(var(--space-2xl) * 2 + var(--space-lg)),44vw,calc(var(--space-2xl) * 4))}.cc-sparkline{block-size:clamp(var(--space-2xl),18vw,calc(var(--space-2xl) + var(--space-xl)))}}.cc-area{display:flex;flex-direction:column;gap:var(--space-lg);min-inline-size:0}.cc-area-section{display:flex;flex-direction:column;gap:var(--space-md);min-inline-size:0}.cc-area-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cc-area-section-title{margin:0;font-size:.8125rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cc-area .cc-recharts-chart,.cc-area .cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-area .cc-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr));gap:var(--space-md)}.cc-stat-sub{font-size:.75rem;color:var(--text-muted)}.cc-token-granularity{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-xs)}.cc-token-granularity .btn.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 14%,var(--surface-1))}@media(prefers-reduced-motion:reduce){.cc-token-count-live{animation:none}}@media(max-width:768px){.cc-area-section-header{align-items:flex-start;flex-direction:column}.cc-token-granularity{justify-content:flex-start;inline-size:100%}}.cc-table-wrap{max-inline-size:100%;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);overflow-x:auto;overflow-y:hidden}.cc-table{inline-size:100%;border-collapse:collapse;font-size:.8125rem;font-variant-numeric:tabular-nums}.cc-table th,.cc-table td{padding:var(--space-sm) var(--space-md);text-align:right;border-bottom:1px solid var(--border-subtle);white-space:nowrap}.cc-table th:first-child,.cc-table td:first-child{text-align:left}.cc-table thead th{color:var(--text-muted);font-weight:600}.cc-table th.cc-sortable{cursor:pointer;user-select:none}.cc-table th.cc-sortable:hover{color:var(--text)}.cc-table tbody tr{cursor:pointer}.cc-table tbody tr.cc-row-selected{background:var(--surface-2)}.cc-table tbody tr.cc-row-selected td{color:var(--text)}.cc-sort-caret{margin-inline-start:var(--space-xs);font-size:.7em;color:var(--accent)}.cc-unavailable{color:var(--text-muted);cursor:help;border-bottom:1px dotted var(--border-subtle)}.cc-loading-inline{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--text-muted)}.cc-area-empty,.cc-area-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-muted);text-align:center}.cc-area-error{color:var(--color-error)}.cc-pricing-note{font-size:.75rem;color:var(--text-muted)}.cc-team-area{display:flex;flex-direction:column;gap:var(--space-lg);min-inline-size:0}.cc-team-ops-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-md);min-inline-size:0}.cc-team-ops-card{min-inline-size:0;padding:var(--space-md);border:thin solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-team-ops-card--org{grid-column:1 / -1}.cc-team-ops-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-block-end:var(--space-md)}.cc-team-ops-card-header h3{margin:0;color:var(--text);font-size:.9375rem}.cc-team-ops-card-header p,.cc-team-muted{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:.8125rem}.cc-team-error{margin:0;color:var(--color-error);font-size:.8125rem}.cc-team-status-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:.8125rem}.cc-team-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin:0 0 var(--space-md)}.cc-team-facts div{min-inline-size:0}.cc-team-facts dt{color:var(--text-muted);font-size:.75rem}.cc-team-facts dd{margin:var(--space-xs) 0 0;color:var(--text);font-size:.875rem;overflow-wrap:anywhere}.cc-team-action{gap:var(--space-xs)}.cc-team-ops-card--heartbeat{grid-column:1 / -1}.cc-team-heartbeat-multiplier{margin-block-start:var(--space-md)}.cc-team-heartbeat-multiplier .heartbeat-multiplier-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md)}.cc-team-heartbeat-multiplier .heartbeat-multiplier-slider{flex:1 1 calc(var(--space-2xl) * 5);min-inline-size:calc(var(--space-2xl) * 4)}.cc-team-org-scroll{max-block-size:calc(var(--space-2xl) * 13);overflow:auto;overscroll-behavior:contain;cursor:grab}.cc-team-org-scroll.is-dragging{cursor:grabbing;user-select:none}.cc-team-org-roots,.cc-team-org-children{display:flex;gap:var(--space-sm);margin:0;padding:0;list-style:none}.cc-team-org-scroll[data-layout=vertical] .cc-team-org-roots,.cc-team-org-scroll[data-layout=vertical] .cc-team-org-children{flex-direction:column}.cc-team-org-scroll[data-layout=vertical] .cc-team-org-children{margin-block-start:var(--space-sm);margin-inline-start:var(--space-xl);padding-inline-start:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-roots,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{flex-direction:row;align-items:flex-start;justify-content:center;gap:var(--space-md)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{position:relative;margin-block-start:var(--space-md);padding-block-start:var(--space-md)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:before,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:after,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children>.cc-team-org-item:before{position:absolute;content:"";pointer-events:none}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:before{inset-block-start:calc(var(--space-md) * -1);inset-inline-start:50%;block-size:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children:after{inset-block-start:calc(var(--space-md) / 2);inset-inline:0;border-block-start:thin solid var(--border-subtle)}.cc-team-org-item{min-inline-size:max-content}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-item{position:relative;display:flex;flex-direction:column;align-items:center}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children>.cc-team-org-item:before{inset-block-start:calc(var(--space-md) * -1);inset-inline-start:50%;block-size:var(--space-md);border-inline-start:thin solid var(--border-subtle)}.cc-team-org-card{display:inline-flex;min-inline-size:calc(var(--space-2xl) * 5);max-inline-size:calc(var(--space-2xl) * 10);padding:var(--space-sm);border:thin solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-2);box-shadow:var(--shadow-sm)}.cc-team-org-card-header{display:flex;align-items:center;gap:var(--space-sm);min-inline-size:0}.cc-team-org-avatar{display:inline-flex;flex:0 0 auto}.cc-team-org-name{color:var(--text);font-size:.8125rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-team-org-badge{flex:0 0 auto;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--accent) 12%,var(--surface-1));color:var(--text-muted);font-size:.75rem;text-transform:capitalize}.cc-team-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.cc-team-chart-panel{display:flex;flex-direction:column;gap:var(--space-md);min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);animation:cc-team-panel-reveal var(--duration-fast) ease-out both}.cc-team-spark-panel{grid-column:1 / -1}.cc-muted-hint,.cc-team-agent-role{color:var(--text-muted)}.cc-muted-hint{margin:0;font-size:.8125rem}.cc-team-agent-cell{display:inline-flex;align-items:center;gap:var(--space-sm);min-inline-size:0}.cc-team-agent-name,.cc-team-agent-role{display:block}.cc-team-agent-name{color:var(--text);font-weight:600}.cc-team-agent-role{font-size:.75rem;text-transform:capitalize}@keyframes cc-team-panel-reveal{0%{opacity:0;transform:translateY(var(--space-xs))}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cc-team-chart-panel{animation:none}}@media(min-width:769px)and (max-width:1024px){.cc-area .cc-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr))}.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-team-spark-panel{grid-column:auto}}@media(max-width:768px){.cc-team-ops-grid,.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-team-ops-card--org,.cc-team-ops-card--heartbeat,.cc-team-spark-panel{grid-column:auto}.cc-team-ops-card,.cc-team-chart-panel{padding:var(--space-sm)}.cc-team-ops-card-header{flex-direction:column}.cc-team-facts{grid-template-columns:minmax(0,1fr)}.cc-team-action{justify-content:center;inline-size:100%}.cc-team-org-scroll{max-block-size:calc(var(--space-2xl) * 10)}.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-roots,.cc-team-org-scroll[data-layout=horizontal] .cc-team-org-children{justify-content:flex-start;gap:var(--space-sm)}}.cc-system-refresh{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);color:var(--text-muted);font-size:.8125rem}.cc-system-refresh .btn-icon{flex:0 0 auto}.cc-system-node-selector{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text)}.cc-system-node-selector .input{min-inline-size:10rem}.cc-system-gauges .cc-stat-card{min-block-size:100%}.cc-system-chart-grid{min-inline-size:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md)}.cc-system-chart-grid .cc-stat-card{gap:var(--space-md)}.cc-system-section-title-with-icon{display:inline-flex;align-items:center;gap:var(--space-sm)}.cc-system-section-title-with-icon svg{color:var(--text-muted)}.cc-system-vitest-card{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-system-vitest-card .btn,.cc-system-toggle-row,.cc-system-threshold-row,.cc-system-threshold-controls{display:inline-flex;align-items:center;gap:var(--space-sm)}.cc-system-toggle-row,.cc-system-threshold-row{color:var(--text);font-size:.8125rem}.cc-system-threshold-controls input[type=range]{accent-color:var(--accent)}.cc-system-threshold-controls .input{inline-size:5rem}.cc-system-note{margin:0;color:var(--text-muted);font-size:.8125rem}.cc-system-note--error,.cc-system-value--critical{color:var(--color-error)}.cc-system-value--warning{color:var(--color-warning)}.cc-system-note--success{color:var(--color-success)}@media(max-width:768px){.cc-system-refresh{align-items:flex-start;justify-content:flex-start;flex-direction:column}.cc-system-chart-grid{grid-template-columns:minmax(0,1fr)}.cc-system-node-selector,.cc-system-vitest-card,.cc-system-toggle-row,.cc-system-threshold-row,.cc-system-threshold-controls{align-items:stretch;flex-direction:column;inline-size:100%}.cc-system-node-selector .input,.cc-system-vitest-card .btn,.cc-system-threshold-controls .input{inline-size:100%}}.cc-mission-control{display:flex;flex-direction:column;gap:var(--space-lg)}.cc-mc-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.cc-mc-section{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.cc-mc-muted{color:var(--text-muted);font-size:.85rem;margin:0}.cc-mc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.cc-mc-session,.cc-mc-node{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border-subtle, color-mix(in srgb, #ffffff 8%, transparent));border-radius:var(--radius-sm, 6px);background:var(--surface-1, color-mix(in srgb, #ffffff 2%, transparent));min-width:0}.cc-mc-node.inactive{opacity:.55}.cc-mc-session-purpose,.cc-mc-node-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cc-mc-session-meta,.cc-mc-node-meta{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.cc-mc-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:var(--radius-sm, 6px);background:var(--surface-2, color-mix(in srgb, #3b82f6 15%, transparent));color:var(--text)}.cc-mc-badge.inactive{background:var(--surface-2, color-mix(in srgb, #ffffff 6%, transparent));color:var(--text-muted)}.cc-mc-task,.cc-mc-node-count{font-size:.75rem;color:var(--text-muted)}@media(max-width:768px),(max-height:480px){.cc-mc-columns{grid-template-columns:1fr}}.theme-dropdown{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0}.theme-dropdown.open{z-index:10002}.theme-dropdown-trigger{justify-content:space-between;gap:var(--space-sm);inline-size:100%;min-inline-size:0}.theme-dropdown-trigger .theme-option-swatch,.theme-dropdown-option .theme-option-swatch{flex:0 0 auto}.theme-dropdown-trigger-label,.theme-dropdown-option-label{min-inline-size:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-dropdown-modes{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.theme-dropdown-mode-btn{gap:var(--space-xs)}.theme-dropdown-mode-btn.active{border-color:var(--accent);color:var(--accent)}.theme-dropdown-popover{position:absolute;z-index:10002;inset-block-start:calc(100% + var(--space-xs));inset-inline:0;padding:var(--space-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1);box-shadow:var(--shadow-lg)}.theme-dropdown-list{display:grid;gap:var(--space-xs);max-block-size:min(60vh,calc(var(--space-2xl) * 12));overflow-y:auto;overscroll-behavior:contain}.theme-dropdown-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-sm);inline-size:100%;padding:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text);cursor:pointer;text-align:start}.theme-dropdown-option:hover,.theme-dropdown-option:focus-visible,.theme-dropdown-option.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);outline:none}@media(max-width:768px){.theme-dropdown.open{z-index:auto}.theme-dropdown-popover{position:static;z-index:auto;margin-block-start:var(--space-xs)}.theme-dropdown-list{max-block-size:min(50vh,calc(var(--space-2xl) * 10))}}.cc-controls{min-inline-size:0}.cc-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);align-items:stretch}.cc-controls-card{min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-controls-card--concurrency{grid-column:1 / -1}.cc-controls-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-block-end:var(--space-md)}.cc-controls-card-header h3{margin:0;color:var(--text);font-size:.9375rem}.cc-controls-card-header p,.cc-controls-muted{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:.8125rem}.cc-controls-error{margin:0;color:var(--color-error);font-size:.8125rem}.cc-controls-status-pill{display:inline-flex;flex:0 0 auto;align-items:center;gap:var(--space-xs);color:var(--text-muted);font-size:.8125rem}.cc-controls-action{gap:var(--space-xs)}.cc-controls-save-state{flex:0 0 auto;color:var(--text-muted);font-size:.8125rem}.cc-controls-save-state--saved{color:var(--color-success)}.cc-controls-save-state--error{color:var(--color-error)}.cc-controls-sliders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md)}.cc-controls-slider{display:flex;min-inline-size:0;flex-direction:column;gap:var(--space-sm);color:var(--text);font-size:.8125rem}.cc-controls-slider-label{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cc-controls-slider-label strong{color:var(--accent);font-variant-numeric:tabular-nums}.cc-controls-slider input[type=range],.cc-controls-touch-slider{inline-size:100%;min-block-size:var(--space-xl);accent-color:var(--accent);touch-action:pan-y}@media(max-width:768px){.cc-controls-grid{grid-template-columns:minmax(0,1fr)}.cc-controls-card{padding:var(--space-sm)}.cc-controls-card-header{flex-direction:column}.cc-controls-sliders{grid-template-columns:minmax(0,1fr)}.cc-controls-slider input[type=range],.cc-controls-touch-slider{min-block-size:var(--space-2xl)}.cc-controls-slider input[type=range]::-webkit-slider-thumb,.cc-controls-touch-slider::-webkit-slider-thumb{inline-size:var(--space-xl);block-size:var(--space-xl)}.cc-controls-slider input[type=range]::-moz-range-thumb,.cc-controls-touch-slider::-moz-range-thumb{inline-size:var(--space-xl);block-size:var(--space-xl)}.cc-controls-action{justify-content:center;inline-size:100%}}.reliability-view{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-lg);height:100%;min-height:0;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.reliability-card{padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card)}.reliability-loading{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);height:100%;min-width:0;padding:var(--space-2xl);color:var(--text-muted)}.reliability-error{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);height:100%;min-width:0;padding:var(--space-2xl);text-align:center}.reliability-error p{color:var(--text-muted);margin:0}.reliability-headline-card{display:flex;flex-direction:column;gap:var(--space-sm)}.reliability-headline{font-size:1.75rem;font-weight:700}.reliability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.reliability-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.reliability-chart-section{display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0;margin-block-start:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.reliability-chart-section h4{margin:0;color:var(--text-muted);font-size:var(--font-size-xs);font-weight:600}.reliability-chart-section .cc-recharts-chart,.reliability-chart-section .cc-recharts-empty{block-size:clamp(calc(var(--space-2xl) * 4),34vh,calc(var(--space-2xl) * 7))}.reliability-table{width:100%;border-collapse:collapse;margin-top:var(--space-sm)}.reliability-table th,.reliability-table td{text-align:left;padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--border)}.reliability-stat-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0}.reliability-muted{color:var(--text-muted)}.reliability-details{margin-top:var(--space-sm)}.reliability-details summary{color:var(--text-muted);cursor:pointer}.reliability-details-content{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs);color:var(--text-muted)}.reliability-histogram{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.reliability-histogram li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,6fr) minmax(0,1fr);align-items:center;gap:var(--space-sm)}.reliability-histogram-bar-wrap{width:100%;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-info) 15%,transparent);overflow:hidden}.reliability-histogram-bar{height:var(--space-md);background:var(--color-info)}@media(max-width:768px){.reliability-view,.reliability-loading,.reliability-error{padding-bottom:calc(var(--space-lg) + var(--mobile-nav-height) + env(safe-area-inset-bottom,0px) + var(--standalone-bottom-gap))}.reliability-grid{grid-template-columns:minmax(0,1fr)}.reliability-section-header{flex-direction:column;align-items:flex-start}.reliability-chart-section{padding:var(--space-sm)}.reliability-chart-section .cc-recharts-chart,.reliability-chart-section .cc-recharts-empty{block-size:clamp(calc(var(--space-2xl) * 3),46vh,calc(var(--space-2xl) * 6))}}.nodes-view{--nodes-view-spin-duration: calc(var(--duration-slow) * 4);--nodes-view-pulse-duration: calc(var(--duration-slow) * 5);display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-sm) var(--space-md) var(--space-xl)}.nodes-view-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.nodes-view-title{display:flex;align-items:center;gap:var(--space-sm)}.nodes-view-title h2{margin:0;display:flex;align-items:center;gap:var(--space-sm)}.nodes-view-count{color:var(--text-muted);font-size:calc(var(--space-md) + var(--space-xs) / 4)}.nodes-view-actions{display:flex;gap:var(--space-sm)}.nodes-view-close{margin-left:auto}.nodes-view-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--space-xl) * 5.833),1fr));gap:var(--space-sm)}.nodes-view-stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.nodes-view-stat span{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.nodes-view-stat strong{font-size:calc(var(--space-lg) + var(--space-xs) / 2)}.nodes-view-stat--online strong{color:var(--color-success)}.nodes-view-stat--offline strong{color:var(--color-error)}.nodes-view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-lg) * 20),1fr));gap:var(--space-md)}.nodes-view-empty{padding:var(--space-xl);border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.nodes-view-error{color:var(--color-error);font-size:calc(var(--space-md) + var(--space-xs) / 4)}.node-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast)}.node-card:hover{border-color:var(--accent);transform:translateY(calc(var(--space-xs) * -.25))}.node-card:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.node-card--loading{min-height:calc(var(--space-xl) * 9.167);opacity:.55;pointer-events:none}.node-card__header{display:flex;align-items:center;justify-content:space-between}.node-card__title-wrap{display:flex;align-items:center;gap:var(--space-sm)}.node-card__icon{width:calc(var(--space-lg) * 2.125);height:calc(var(--space-lg) * 2.125);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.node-card__name{margin:0;font-size:calc(var(--space-md) + var(--space-xs));line-height:1.25}.node-card__meta-row{margin-top:var(--space-xs);display:flex;align-items:center;gap:var(--space-xs)}.node-card__type-badge{border:1px solid var(--border);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs) * .75);color:var(--text-muted)}.node-card__status{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:calc(var(--space-sm) + var(--space-xs) * .75);font-weight:600}.node-card__status-indicator{width:var(--space-sm);height:var(--space-sm);border-radius:50%}.node-card__status--online .node-card__status-indicator{background:var(--color-success)}.node-card__status--offline .node-card__status-indicator,.node-card__status--error .node-card__status-indicator{background:var(--color-error)}.node-card__status--connecting .node-card__status-indicator{background:var(--color-warning)}.node-card__auth-indicator{display:inline-flex;align-items:center;margin-left:var(--space-xs);vertical-align:middle}.node-card__url{font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted);word-break:break-all}.node-card__metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.node-card__metric{display:flex;flex-direction:column;gap:var(--space-xs)}.node-card__metric-label{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .75);text-transform:uppercase;letter-spacing:.03em}.node-card__metric-value{font-size:calc(var(--space-md) + var(--space-xs));font-weight:600}.node-card__sync{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.node-card__sync-dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%;flex-shrink:0}.node-card__sync-time{color:var(--text-muted)}.nodes-view-stat--synced strong{color:var(--color-success)}.node-card__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.node-card__action{display:inline-flex;align-items:center;gap:var(--space-xs)}.node-card__action--remove{margin-left:auto}.node-card__action--remove:not(.btn-danger){color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 45%,var(--border))}.node-card__action--remove.is-armed{background:color-mix(in srgb,var(--color-error) 14%,transparent)}.node-card__docker-badge{display:inline-flex;align-items:center;gap:var(--space-xs);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-sm);font-size:calc(var(--space-sm) + var(--space-xs) * .75);background:color-mix(in srgb,var(--color-info) 15%,transparent);color:var(--color-info)}.node-card__docker-meta{display:flex;gap:var(--space-sm);margin-top:var(--space-xs);font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.node-card__docker-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mesh-topology{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:calc(var(--space-2xl) * 6.25);padding:var(--space-md);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.mesh-topology__svg{width:100%;max-width:calc(var(--space-2xl) * 12.5);height:auto;aspect-ratio:1}.mesh-topology__node{transition:filter var(--transition-fast)}.mesh-topology__node:hover{filter:brightness(1.1)}.mesh-topology__node-circle{stroke:var(--border);stroke-width:calc(var(--space-xs) / 2);transition:fill var(--transition-fast)}.mesh-topology__node-label{font-size:calc(var(--space-sm) + var(--space-xs) * .75);fill:var(--text);font-weight:500}.mesh-topology__node-type-badge{fill:color-mix(in srgb,var(--surface) 75%,var(--bg));stroke:var(--border);stroke-width:calc(var(--space-xs) / 4)}.mesh-topology__node-type-text{font-size:calc(var(--space-sm) + var(--space-xs) / 2);font-weight:700;fill:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.mesh-topology__link{stroke:var(--border);stroke-width:calc((var(--space-xs) * 3) / 8);stroke-dasharray:var(--space-xs),var(--space-xs);opacity:.6}.mesh-topology__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}.mesh-topology__legend-item{display:flex;align-items:center;gap:var(--space-sm)}.mesh-topology__notice{margin:var(--space-md) 0 0;text-align:center;color:var(--text-dim);font-size:calc(var(--space-sm) + var(--space-xs))}.mesh-topology__legend-dot{width:calc(var(--space-sm) + var(--space-xs) / 2);height:calc(var(--space-sm) + var(--space-xs) / 2);border-radius:50%;border:1px solid var(--border)}.mesh-topology--empty{justify-content:center}.mesh-topology__empty-state{text-align:center;color:var(--text-muted);font-size:calc(var(--space-md) + var(--space-xs) / 2)}.connect-node-modal{width:min(calc(var(--space-lg) * 30),calc(100vw - (var(--space-lg) * 2)))}.connect-node-form{display:flex;flex-direction:column;gap:var(--space-md)}.connect-node-form .form-group{padding:0;margin-top:0}.connect-node-form .form-group:last-of-type{margin-bottom:0}.connect-node-field{display:flex;flex-direction:column;gap:var(--space-xs)}.connect-node-field__input{width:100%}.connect-node-field__input[aria-invalid=true]{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 5%,var(--surface))}.connect-node-field__input[aria-invalid=true]:focus-visible{border-color:var(--color-error);box-shadow:var(--glow-danger)}.connect-node-url-preview{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--surface) 50%,var(--bg));border-radius:var(--radius-sm);border-left:var(--space-xs) solid var(--accent);font-size:calc(var(--space-sm) + var(--space-xs))}.connect-node-url-preview-label{color:var(--text-muted)}.connect-node-url-preview code{font-family:var(--font-mono);color:var(--text);font-size:calc(var(--space-sm) + var(--space-xs))}.connect-node-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);padding:var(--modal-padding);border-top:1px solid var(--border)}.nodes-view-topology{margin-bottom:var(--space-md)}.nodes-view-section-title{font-size:calc(var(--space-md) + var(--space-xs) * .5);font-weight:600;color:var(--text);margin:0 0 var(--space-sm)}.nodes-view .node-status-indicator{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:calc(var(--space-sm) + var(--space-xs) * .625)}.nodes-view .node-status-indicator__label,.nodes-view .node-status-indicator--local{color:var(--text-muted)}.nodes-view .node-status-indicator--remote{color:var(--text)}.nodes-view .node-status-indicator__dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%;position:relative;display:inline-block}.nodes-view .node-status-indicator__dot--online{background:var(--color-success);box-shadow:var(--glow-success)}.nodes-view .node-status-indicator__dot--offline,.nodes-view .node-status-indicator__dot--error{background:var(--color-error)}.nodes-view .node-status-indicator__dot--connecting{background:var(--color-warning);animation:pulse-warning var(--nodes-view-pulse-duration) ease-in-out infinite}.nodes-view .node-status-indicator__spinner{position:absolute;inset:0;border:calc(var(--space-xs) / 2) solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin var(--nodes-view-spin-duration) linear infinite}.nodes-view .node-status-indicator__name{font-weight:500}.nodes-view .node-status-indicator__details{font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text-muted)}@keyframes pulse-warning{0%,to{opacity:1;box-shadow:var(--glow-warning)}50%{opacity:.6;box-shadow:var(--glow-warning)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin var(--nodes-view-spin-duration) linear infinite}@media(max-width:768px){.nodes-view{padding-inline:var(--space-sm)}.nodes-view-grid,.node-card__metrics{grid-template-columns:1fr}.node-card__docker-badge,.node-card__docker-meta{gap:var(--space-xs)}.node-card__docker-meta span{max-width:calc(var(--space-2xl) * 4.5)}.connect-node-modal{width:calc(100vw - (var(--space-md) * 2))}.connect-node-field__input{min-height:calc(var(--space-2xl) + var(--space-md))}.nodes-view-header{flex-wrap:wrap;gap:var(--space-sm)}.nodes-view-title h2{font-size:calc(var(--space-md) + var(--space-xs))}.nodes-view-title h2 svg{flex-shrink:0}.nodes-view-count{font-size:calc(var(--space-sm) + var(--space-xs))}.nodes-view-actions{flex-wrap:wrap;gap:var(--space-sm);width:100%;justify-content:flex-end}.nodes-view-close{min-height:calc(var(--space-xl) + var(--space-md));min-width:calc(var(--space-xl) + var(--space-md))}.nodes-view-actions .btn{min-height:calc(var(--space-xl) + var(--space-md))}.nodes-view-stats{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.nodes-view-stat{padding:var(--space-xs) var(--space-sm)}.nodes-view-stat span{font-size:calc(var(--space-sm) + var(--space-xs) * .75)}.nodes-view-stat strong{font-size:calc(var(--space-md) + var(--space-xs) / 2)}.nodes-view-empty{padding:var(--space-xl) var(--space-md);text-align:center}.nodes-view-error{padding:var(--space-md);margin:var(--space-md) 0}.nodes-view-topology{padding:var(--space-sm) 0}.nodes-view-section-title{font-size:calc(var(--space-md) + var(--space-xs) / 4)}}.add-node-modal{width:min(calc(var(--space-lg) * 32.5),calc(100vw - (var(--space-lg) * 2)))}.add-node-modal__body{display:flex;flex-direction:column;gap:var(--space-md)}.add-node-modal__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.add-node-modal__fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__fieldset legend{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .625);padding:0 var(--space-xs)}.add-node-modal__storage-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-sm)}.add-node-modal__advanced-btn{align-self:flex-start}.add-node-modal__advanced{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__textarea{min-height:calc(var(--space-2xl) * 2.25);resize:vertical;font-family:var(--font-mono)}.add-node-modal__description{font-size:calc(var(--space-sm) + var(--space-xs) * .625);color:var(--text-muted);margin-bottom:var(--space-sm);padding:0}.add-node-modal__field{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__field>span{font-size:calc(var(--space-sm) + var(--space-xs) * .625);font-weight:600;color:var(--text-muted)}.add-node-modal__field .input{width:100%;padding:var(--space-sm) var(--space-md);font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__field .input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring-strong)}.add-node-modal__field .input[aria-invalid=true]{border-color:var(--color-error);background:color-mix(in srgb,var(--color-error) 5%,var(--surface))}.add-node-modal__field .input[aria-invalid=true]:focus{box-shadow:var(--glow-danger)}.add-node-modal__hint{font-size:calc(var(--space-sm) + var(--space-xs) * .375);color:var(--text-dim);margin-top:calc(var(--space-xs) / 2)}.add-node-modal__error{margin-top:calc(var(--space-xs) / 2)}.add-node-modal__type-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface)}.add-node-modal__type-btn{flex:1;padding:calc(var(--space-sm) + var(--space-xs) / 2) var(--space-lg);border:none;background:transparent;color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs) * .625);font-weight:500;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.add-node-modal__type-btn:hover:not(:disabled){background:color-mix(in srgb,var(--bg) 50%,var(--surface))}.add-node-modal__type-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);z-index:1}.add-node-modal__type-btn.active{background:var(--accent);color:var(--bg)}.add-node-modal__type-btn:disabled{opacity:.6;cursor:not-allowed}.add-node-modal__remote-fields{display:grid;gap:var(--space-sm)}.add-node-modal__discovery-actions{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovery-state{font-size:calc(var(--space-sm) + var(--space-xs) * .375);color:var(--color-success)}.add-node-modal__discovered-list{display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovered-card{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs)}.add-node-modal__discovered-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.add-node-modal__projects{display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__projects-title{margin:0;font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__project-list{display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__project-card{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.add-node-modal__project-toggle{margin:0}@media(max-width:768px){.add-node-modal{width:calc(100vw - (var(--space-md) * 2))}.add-node-modal__type-toggle{width:100%}.add-node-modal__type-btn{flex:1;padding:var(--space-md) var(--space-lg)}.add-node-modal__field input{min-height:calc(var(--space-2xl) + var(--space-md));font-size:calc(var(--space-md) + var(--space-xs) * .5)}.add-node-modal__row{grid-template-columns:1fr}.add-node-modal__project-card{padding:var(--space-md)}.add-node-modal__discovered-row{flex-direction:column;align-items:flex-start}}.docker-tls-config{display:flex;flex-direction:column;gap:var(--space-md)}.docker-tls-config__fields{display:grid;gap:var(--space-md)}.docker-tls-config__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-tls-config__field label{color:var(--text-muted)}@media(max-width:768px){.docker-tls-config .input{min-height:calc(var(--mobile-nav-height) - var(--space-sm))}}.docker-target-selector{display:flex;flex-direction:column;gap:var(--space-md)}.docker-target-selector__modes{display:flex;gap:var(--space-sm);flex-wrap:wrap}.docker-target-selector__mode-active{border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.docker-target-selector__panel{display:grid;gap:var(--space-md)}.docker-target-selector__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-target-selector__field label{color:var(--text-muted)}.docker-target-selector__context-row{display:grid;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto;align-items:center}.docker-target-selector__status{color:var(--text-muted)}.docker-target-selector__success{color:var(--color-success)}.docker-target-selector__error{color:var(--color-error)}@media(max-width:768px){.docker-target-selector__modes .btn{min-height:calc(var(--mobile-nav-height) - var(--space-sm))}}.docker-onboarding{width:min(calc(var(--space-2xl) * 22.5),calc(100vw - (var(--space-lg) * 2)))}.docker-onboarding__body{display:flex;flex-direction:column;gap:var(--space-md)}.docker-onboarding__section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__section-title{margin:0;display:flex;align-items:center;gap:var(--space-sm);font-size:calc(var(--space-md) + var(--space-xs) / 2)}.docker-onboarding__field{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-onboarding__inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.docker-onboarding__radio-group{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.docker-onboarding__type-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.docker-onboarding__type-btn{flex:1;border:none;background:var(--surface);color:var(--text);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.docker-onboarding__type-btn+.docker-onboarding__type-btn{border-left:1px solid var(--border)}.docker-onboarding__type-btn.is-active{background:var(--todo);color:var(--bg)}.docker-onboarding__type-btn:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);position:relative;z-index:1}.docker-onboarding__checkbox-group{display:flex;flex-direction:column;gap:var(--space-xs)}.docker-onboarding__kv-list{display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__kv-list h5{margin:0;font-size:calc(var(--space-sm) + var(--space-xs))}.docker-onboarding__kv-row{display:grid;gap:var(--space-sm);align-items:center}.docker-onboarding__kv-row--env{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.docker-onboarding__kv-row--mount{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto}.docker-onboarding__kv-add{align-self:flex-start}.docker-onboarding__advanced-toggle{border:none;background:none;color:var(--text);padding:var(--space-xs);margin:calc(var(--space-xs) * -1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer;font-size:calc(var(--space-md) + var(--space-xs) / 2);font-weight:600}.docker-onboarding__advanced-toggle:focus-visible{outline:none;box-shadow:var(--focus-ring-strong)}.docker-onboarding__advanced-toggle svg{transition:transform var(--transition-fast)}.docker-onboarding__advanced-toggle.is-expanded svg{transform:rotate(180deg)}.docker-onboarding__advanced-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-fast)}.docker-onboarding__advanced-content>div{overflow:hidden;display:flex;flex-direction:column;gap:var(--space-sm)}.docker-onboarding__advanced-content.is-expanded{grid-template-rows:1fr}.docker-onboarding__tls-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.docker-onboarding__tls-fields .docker-onboarding__field:first-child{grid-column:1 / -1}@media(max-width:768px){.docker-onboarding{width:calc(100vw - (var(--space-md) * 2))}.docker-onboarding__inline-fields,.docker-onboarding__tls-fields,.docker-onboarding__kv-row{grid-template-columns:1fr}.docker-onboarding .input,.docker-onboarding .select,.docker-onboarding .btn{min-height:calc(var(--space-2xl) + var(--space-md))}.docker-onboarding__advanced-content{transition:none}}.settings-sync-log{display:flex;flex-direction:column;gap:var(--space-sm)}.settings-sync-log__header{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;padding:var(--space-xs) 0;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text);font:inherit;text-align:left;transition:background-color var(--transition-fast)}.settings-sync-log__header:hover{background:var(--surface-hover)}.settings-sync-log__header:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);background:var(--surface-hover)}.settings-sync-log__chevron{transform:rotate(0);transition:transform var(--transition-fast)}.settings-sync-log__chevron--expanded{transform:rotate(180deg)}.settings-sync-log__filters{display:flex;gap:var(--space-sm);align-items:center;flex-wrap:wrap}.settings-sync-log__filters label{display:flex;align-items:center;gap:var(--space-xs);font-size:12px;color:var(--text-muted)}.settings-sync-log__filters select{font-size:12px;padding:4px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.settings-sync-log__filters select:focus{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring)}.settings-sync-log__list{display:flex;flex-direction:column}.settings-sync-log__entry{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--border)}.settings-sync-log__entry:last-child{border-bottom:none}.settings-sync-log__entry-timestamp{font-size:12px;color:var(--text-muted);min-width:140px}.settings-sync-log__entry-direction{display:flex;align-items:center;color:var(--text-muted)}.settings-sync-log__entry-result{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.settings-sync-log__badge--success{background:color-mix(in srgb,var(--color-success, #2da44e) 14%,transparent);color:var(--color-success, #2da44e)}.settings-sync-log__badge--conflict{background:color-mix(in srgb,var(--color-warning, #d29922) 14%,transparent);color:var(--color-warning, #d29922)}.settings-sync-log__badge--error{background:color-mix(in srgb,var(--color-error, #cf222e) 14%,transparent);color:var(--color-error, #cf222e)}.settings-sync-log__entry-node{font-weight:500;font-size:12px}.settings-sync-log__entry-details{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.settings-sync-log__empty{text-align:center;color:var(--text-muted);padding:var(--space-md);font-size:13px}.node-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent) 36%,transparent);color:var(--text-muted);font-size:11px;width:fit-content;margin-top:4px}@media(max-width:768px){.settings-sync-conflict-modal__diff-panel{grid-template-columns:1fr}}.settings-sync-conflict-modal{max-width:860px;width:min(860px,calc(100vw - 32px))}.settings-sync-conflict-modal__conflict-list{display:flex;flex-direction:column;gap:var(--space-md);max-height:min(50vh,400px);overflow-y:auto}.settings-sync-conflict-modal__conflict-item{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-md)}.settings-sync-conflict-modal__key{font-weight:600;font-family:monospace;margin-bottom:var(--space-sm)}.settings-sync-conflict-modal__diff-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-sm)}.settings-sync-conflict-modal__diff-side{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.settings-sync-conflict-modal__diff-label{font-size:calc(var(--space-sm) + var(--space-xs) * .75);color:var(--text-muted);padding:4px 8px;border-bottom:1px solid var(--border);background:var(--surface)}.settings-sync-conflict-modal__diff-content{padding:var(--space-xs) var(--space-sm);white-space:pre;font-family:monospace;font-size:12px;line-height:1.5;overflow-x:auto}.settings-sync-conflict-modal__resolution{display:flex;gap:var(--space-md);align-items:center}.settings-sync-conflict-modal__resolution label{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer}.settings-sync-conflict-modal__resolution input[type=radio]{cursor:pointer}.settings-sync-conflict-modal__manual-input{width:100%;font-family:monospace;font-size:12px;min-height:80px;margin-top:var(--space-xs);padding:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);resize:vertical}.settings-sync-conflict-modal__manual-input:focus{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring)}.settings-sync-conflict-modal__bulk-actions{display:flex;gap:var(--space-xs);padding-top:var(--space-sm);border-top:1px solid var(--border)}.settings-sync-conflict-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-xs)}.node-detail-modal{max-width:calc(var(--space-lg) * 53.75);width:min(calc(var(--space-lg) * 53.75),calc(100vw - (var(--space-lg) * 2)))}.node-detail-modal__body{display:flex;flex-direction:column;gap:var(--space-md);max-height:min(72vh,calc(var(--space-lg) * 42.5));overflow-y:auto}.node-detail-modal__section{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.node-detail-modal__section h4{margin:0 0 var(--space-sm) 0}.node-detail-modal__section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.node-detail-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.node-detail-modal__field{display:flex;flex-direction:column;gap:var(--space-xs)}.node-detail-modal__field--full{grid-column:span 2}.node-detail-modal__field span{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__edit-actions{margin-top:var(--space-sm);display:flex;gap:var(--space-xs)}.node-detail-modal__project-list{margin:0;padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__project-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.node-detail-modal__project-item code{color:var(--text-muted)}.node-detail-modal__empty{margin:0;color:var(--text-muted)}.node-detail-modal__health-row{display:flex;flex-wrap:wrap;gap:var(--space-md)}.node-detail-modal__actions{justify-content:space-between}.node-detail-modal__docker-config{display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__docker-toggle{align-self:flex-start}.node-detail-modal__docker-toggle-icon--expanded{transform:rotate(180deg)}.node-detail-modal__docker-config-content{display:flex;flex-direction:column;gap:var(--space-sm)}.node-detail-modal__docker-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__docker-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-sm)}.node-detail-modal__docker-stack{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__checkbox{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted)}.node-detail-modal__docker-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm);color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__docker-recreate{color:var(--color-warning)}.node-detail-modal__docker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__textarea{min-height:calc(var(--space-2xl) * 2.25);resize:vertical;font-family:var(--font-mono)}.node-detail-modal__sync-status{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-sm)}.node-detail-modal__sync-dot{width:calc(var(--space-sm) + var(--space-xs) / 2);height:calc(var(--space-sm) + var(--space-xs) / 2);border-radius:50%;flex-shrink:0}.node-detail-modal__sync-dot--synced{background:var(--color-success)}.node-detail-modal__sync-dot--diff,.node-detail-modal__sync-dot--pending{background:var(--color-warning)}.node-detail-modal__sync-dot--error{background:var(--color-error)}.node-detail-modal__sync-dot--never{background:var(--text-muted)}.node-detail-modal__sync-diff{color:var(--color-warning);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__sync-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.node-detail-modal__sync-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-sm);padding:var(--space-sm);background:color-mix(in srgb,var(--color-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 30%,transparent);border-radius:var(--radius-sm);color:var(--color-error);font-size:calc(var(--space-sm) + var(--space-xs))}.node-detail-modal__sync-error-dismiss{background:transparent;border:none;color:var(--color-error);cursor:pointer;padding:calc(var(--space-xs) / 2);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.node-detail-modal__sync-error-dismiss:hover{background:color-mix(in srgb,var(--color-error) 20%,transparent)}.node-detail-modal__sync-error-dismiss:focus-visible{outline:none;box-shadow:var(--focus-ring-strong);background:color-mix(in srgb,var(--color-error) 20%,transparent)}.docker-management{display:flex;flex-direction:column;gap:var(--space-md)}.docker-management__status-card{display:flex;flex-direction:column;gap:var(--space-sm);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.docker-management__status-row{display:inline-flex;align-items:center;gap:var(--space-sm)}.docker-management__status-dot{width:var(--space-sm);height:var(--space-sm);border-radius:50%}.docker-management__status-dot--success{background:var(--color-success)}.docker-management__status-dot--warning{background:var(--color-warning)}.docker-management__status-dot--error{background:var(--color-error)}.docker-management__status-meta{color:var(--text-muted);font-size:calc(var(--space-sm) + var(--space-xs));display:flex;gap:var(--space-md);flex-wrap:wrap}.docker-management__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.docker-management__info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.docker-management__log-viewer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md)}.docker-management__log-viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.docker-management__log-viewer pre{margin:0;max-height:calc(var(--space-2xl) * 9.375);overflow-y:auto;font-family:var(--font-mono);font-size:calc(var(--space-sm) + var(--space-xs));color:var(--text);white-space:pre-wrap}.docker-management__env-list{margin:var(--space-sm) 0 0}.docker-management__env-list div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-sm);padding:var(--space-xs) 0}.docker-management__env-list dt{color:var(--text-muted);font-family:var(--font-mono)}.docker-management__env-list dd{margin:0;font-family:var(--font-mono);word-break:break-all}.docker-management__mounts-list{margin:var(--space-sm) 0 0;padding-left:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.docker-management__mounts-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}@media(max-width:768px){.node-detail-modal__grid,.node-detail-modal__docker-grid{grid-template-columns:1fr}.node-detail-modal__field--full{grid-column:span 1}.docker-management__actions{flex-direction:column}.docker-management__actions .btn{width:100%;justify-content:center}.docker-management__info-grid,.node-detail-modal__docker-row{grid-template-columns:1fr}.node-detail-modal__docker-toggle,.node-detail-modal__docker-config-content .btn{min-height:calc(var(--space-lg) * 2.25)}.docker-management__env-list div{grid-template-columns:1fr}.docker-management__mounts-list li{flex-direction:column;align-items:flex-start}.docker-management__log-viewer pre{max-height:calc(var(--space-2xl) * 6.25)}}.cc-area[data-testid=cc-area-funnel] .cc-area-section+.cc-area-section{margin-top:var(--space-lg)}.command-center{display:flex;flex:1;flex-direction:column;gap:0;min-height:0;inline-size:100%;padding:0}.cc-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:var(--space-md)}.cc-header{box-sizing:border-box;min-block-size:var(--view-header-min-height);padding:var(--space-lg) var(--space-xl);background:var(--surface)}@media(min-width:769px)and (min-height:481px){.cc-header{height:var(--view-header-min-height)}.cc-header>.cc-date-range{max-height:var(--view-header-content-row)}.cc-header>.cc-date-range .cc-date-range-trigger{min-height:0;max-height:var(--view-header-content-row);white-space:nowrap}}.cc-title{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:1.125rem;font-weight:600;color:var(--text)}.cc-title svg{flex-shrink:0;color:var(--todo)}.cc-tablist{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-md) var(--space-xl) 0;border-bottom:1px solid var(--border-subtle)}.cc-tab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);padding:var(--space-sm) var(--space-md);cursor:pointer;font-size:.8125rem;transition:color var(--transition-fast),border-color var(--transition-fast)}.cc-tab:hover{color:var(--text)}.cc-tab.active{color:var(--text);border-bottom-color:var(--accent)}.cc-tabpanel{flex:1;min-height:0;min-inline-size:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;outline:none;padding:var(--space-lg) var(--space-xl) var(--space-xl);-webkit-overflow-scrolling:touch}@media(max-width:768px){.cc-tabpanel{padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom,0) + var(--standalone-bottom-gap))}}.cc-overview{min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-lg)}.cc-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr));gap:var(--space-md)}.cc-stat-card{container-type:inline-size;display:flex;flex-direction:column;gap:var(--space-sm);min-inline-size:0;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-stat-label{font-size:.8125rem;color:var(--text-muted)}.cc-stat-value{max-width:100%;min-width:0;overflow:hidden;white-space:nowrap;font-size:clamp(.95rem,16cqi,2.4rem);line-height:1.1;font-variant-numeric:tabular-nums;color:var(--text)}.cc-stat-card--gauge{align-items:center;text-align:center}.cc-github-backfill-actions,.cc-productivity-backfill-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.cc-github-backfill-status,.cc-productivity-backfill-status{display:flex;flex-direction:column;gap:var(--space-xs);color:var(--text-muted);font-size:.75rem}.cc-github-backfill-status--error,.cc-productivity-backfill-status--error{color:var(--color-error)}.cc-github-backfill-status--warning,.cc-productivity-backfill-status--warning{color:var(--color-warning)}@media(max-width:768px){.cc-github-backfill-actions,.cc-productivity-backfill-actions{align-items:stretch;flex-direction:column}.cc-github-backfill-actions .btn,.cc-productivity-backfill-actions .btn{justify-content:center;inline-size:100%}}.cc-live-strip{position:relative;display:grid;grid-template-columns:minmax(calc(var(--space-2xl) * 5),1fr) minmax(calc(var(--space-2xl) * 8),2fr) minmax(calc(var(--space-2xl) * 5),1fr);align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent),var(--surface-1);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 9%,transparent);overflow:hidden;font-size:.8125rem}.cc-live-strip:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 10%,transparent),transparent);opacity:.25;transform:translate(-100%);animation:cc-live-signal-sweep calc(var(--duration-slow) * 8) linear infinite;pointer-events:none}.cc-live-strip-heading,.cc-live-strip-metrics,.cc-live-trend{min-inline-size:0;position:relative;z-index:1}.cc-live-strip-heading{display:flex;align-items:center;gap:var(--space-sm)}.cc-live-strip-label{color:var(--text);font-weight:600}.cc-live-strip-metrics{min-inline-size:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-sm)}.cc-live-metric{container-type:inline-size;min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--surface-2) 70%,transparent);animation:cc-live-signal-pulse calc(var(--duration-slow) * 6) ease-in-out infinite}.cc-live-metric-value{max-width:100%;min-width:0;overflow:hidden;white-space:nowrap;color:var(--text);font-size:clamp(.75rem,6cqi,1.125rem);font-weight:700;font-variant-numeric:tabular-nums}.cc-token-count-live{animation:cc-token-count-pop var(--duration-normal) ease-out both}@keyframes cc-token-count-pop{0%{transform:translateY(var(--space-xs));opacity:.7}to{transform:translateY(0);opacity:1}}.cc-live-metric-label,.cc-live-trend-label{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.cc-live-trend{min-inline-size:0;display:flex;flex-direction:column;gap:var(--space-sm)}.cc-live-trend .cc-sparkline{block-size:calc(var(--space-2xl) + var(--space-sm))}.cc-live-trend .cc-sparkline-bar{box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 28%,transparent);animation:cc-live-signal-pulse calc(var(--duration-slow) * 5) ease-in-out infinite}@keyframes cc-live-signal-sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes cc-live-signal-pulse{0%,to{opacity:.78}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.cc-live-strip:before,.cc-live-metric,.cc-live-trend .cc-sparkline-bar,.cc-token-count-live{animation:none}}.cc-overview-charts{min-inline-size:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);align-items:stretch}.cc-overview-chart-card{min-inline-size:0;position:relative;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent),var(--surface-1);box-shadow:0 0 var(--space-lg) color-mix(in srgb,var(--accent) 7%,transparent);overflow:hidden;animation:cc-overview-chart-rise var(--duration-normal) ease-out both}.cc-overview-chart-card--trend{grid-column:1 / -1}.cc-overview-chart-card:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 8%,transparent),transparent);opacity:0;pointer-events:none;animation:cc-overview-chart-sheen calc(var(--duration-slow) * 7) ease-in-out infinite}.cc-overview-chart-header{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--space-xs)}.cc-overview-chart-header p{margin:0;color:var(--text-muted);font-size:.8125rem}.cc-overview-chart-card .cc-bar-chart,.cc-overview-chart-card .cc-sparkline,.cc-overview-chart-card .cc-recharts-chart,.cc-overview-chart-card .cc-recharts-empty{position:relative;z-index:1}.cc-overview-chart-card .cc-recharts-chart,.cc-overview-chart-card .cc-recharts-empty{inline-size:100%;block-size:calc(var(--space-2xl) * 7 + var(--space-lg));min-inline-size:0}.cc-overview-chart-card .cc-sparkline{block-size:calc(var(--space-2xl) * 2)}.cc-overview-chart-card .cc-bar-fill,.cc-overview-chart-card .cc-sparkline-bar{box-shadow:0 0 var(--space-sm) color-mix(in srgb,var(--accent) 30%,transparent)}@keyframes cc-overview-chart-rise{0%{opacity:0;transform:translateY(var(--space-sm))}to{opacity:1;transform:translateY(0)}}@keyframes cc-overview-chart-sheen{0%{opacity:0;transform:translate(-100%)}45%,55%{opacity:.35}to{opacity:0;transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.cc-overview-chart-card,.cc-overview-chart-card:before{animation:none}}@media(min-width:769px)and (max-width:1024px){.command-center{flex:1;min-block-size:0;overflow:hidden}.cc-tabpanel{flex:1;min-block-size:0;overflow-x:hidden;overflow-y:auto}.cc-live-strip,.cc-overview-charts,.cc-team-chart-grid{min-inline-size:0;grid-template-columns:minmax(0,1fr)}.cc-live-strip-metrics{min-inline-size:0;grid-template-columns:repeat(2,minmax(0,1fr))}.cc-overview-chart-card--trend,.cc-team-spark-panel{grid-column:auto}.cc-stat-grid,.cc-area .cc-stat-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,calc(var(--space-2xl) * 5)),1fr))}}@media(max-width:768px){.cc-live-strip{grid-template-columns:1fr}.cc-live-strip-metrics,.cc-overview-charts{min-inline-size:0;grid-template-columns:1fr}.cc-overview-chart-card--trend{grid-column:auto}}.cc-loading,.cc-error,.cc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-muted);text-align:center}.cc-error{color:var(--color-error)}.cc-loading .cc-chart-skeleton{block-size:var(--space-lg);border-radius:var(--radius-sm);background:var(--surface-2);animation:cc-shell-pulse var(--duration-slow) ease-in-out infinite}@keyframes cc-shell-pulse{0%,to{opacity:.4}50%{opacity:.9}}.cc-overview-engine-panel{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-1)}.cc-overview-engine-panel-header{display:flex;align-items:center;gap:var(--space-sm);color:var(--text)}.cc-overview-engine-panel-title{font-size:.9375rem;font-weight:600}.cc-overview-engine-panel-status{margin:0;font-size:.8125rem;color:var(--text-muted)}.cc-overview-engine-nav{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-lg)}.cc-overview-engine-nav-btn{flex:1 1 auto;justify-content:center}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,j as r}from"./vendor-react-SZ_qB27O.js";import{d0 as Je,d1 as je,d2 as Nr,d3 as Ce,ai as Ye,d4 as Oe,d5 as ze,d6 as Fe,d7 as $e,d8 as Sr,d9 as be,da as kr,db as jr,dc as Cr,dd as Er,de as Lr,bU as se,df as xe,L as ve,aK as Rr,dg as Dr,dh as _r,di as Mr,o as Pr,b7 as Qe,dj as Tr,V as Ur,c2 as Ar,cl as Or,cn as zr,dk as Fr,F as Be,X as $r,aj as Br,R as Hr}from"./index-CUY6xXXv.js";import{u as ue}from"./vendor-i18n-GF3RlKbq.js";import{S as Ze}from"./shield-alert-CBAzSycj.js";import"./vendor-reactflow-Bg-Qjzh8.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const Ee=500,Vr=3e3;function W(e){return e instanceof Error?e.message:String(e)}function er(e){return e.length<=Ee?e:e.slice(-Ee)}function ye(e,i){return er([...e,i])}function Z(e){try{return JSON.parse(e)}catch{return null}}function oe(e){const i=e.text??"";return e.stream==="stderr"?`[stderr] ${i}`:i}function Wr(e){return e?.previewUrl??null}async function He(e){return kr(e)}async function Ve(e,i){return jr(e,i)}async function Ir(e){return Cr(e)}async function qr(e){return Er(e)}async function We(e){return Lr(e)}function K(e){try{return e()}catch{return null}}function Ne(){return typeof K(()=>je)=="function"&&typeof K(()=>Je)=="function"}function Y(e){return{config:{id:e.id??"default",name:e.name??"Dev Server",command:e.command??"",cwd:e.cwd??"."},status:e.status,runtime:e.pid?{pid:e.pid,startedAt:e.startedAt??new Date().toISOString(),exitCode:e.exitCode??void 0,previewUrl:e.previewUrl}:void 0,previewUrl:e.previewUrl??e.detectedUrl??e.manualUrl??void 0,logHistory:(e.logs??[]).map(i=>({timestamp:new Date().toISOString(),stream:i.startsWith("[stderr]")?"stderr":"stdout",text:i.replace(/^\[stderr\]\s*/,"")}))}}function Kr(e){const{t:i}=ue("app"),[p,s]=t.useState(null),[g,v]=t.useState([]),[y,u]=t.useState([]),[j,C]=t.useState([]),[z,E]=t.useState(!0),[k,m]=t.useState(null),o=t.useRef(0),[d,U]=t.useState(null),T=t.useCallback(a=>{if(s(a),a?.logHistory){const n=a.logHistory.slice(-Ee).map(oe);u(n)}},[]),_=t.useCallback(async()=>{const a=o.current;try{if(Ne())if(d){const n=await Je(d,e);if(o.current!==a)return;T(n)}else{const n=await je(e);if(o.current!==a)return;v(n),n.length>0&&(U(n[0].config.id),T(n[0]))}else{const n=await He(e);if(o.current!==a)return;const h=Y(n);v([h]),T(h)}m(null)}catch(n){if(o.current!==a)return;m(W(n))}},[T,e,d]);t.useEffect(()=>{o.current+=1;const a=o.current;s(null),v([]),u([]),C([]),E(!0),m(null),U(null),(async()=>{try{const[h,c]=await Promise.allSettled([Ne()?je(e):He(e).then(x=>[Y(x)]),typeof K(()=>be)=="function"?be(e):We(e).then(x=>x.map(L=>({name:L.name,command:L.command,cwd:L.cwd,scriptName:L.scriptName,packagePath:L.packagePath})))]);if(o.current!==a)return;let b=null;if(h.status==="fulfilled"){const x=h.value;if(v(x),x.length>0){const L=x[0];Ne()&&U(L.config.id),T(L)}}else b=W(h.reason);c.status==="fulfilled"&&C(c.value),b&&m(b)}catch(h){if(o.current!==a)return;m(W(h))}finally{o.current===a&&E(!1)}})()},[T,e]),t.useEffect(()=>{const a=d?Nr(d,e):typeof K(()=>Ce)=="function"?Ce(e):null;if(!a)return;const n=o.current,h=Ye(a,{events:{history:c=>{if(o.current!==n)return;const b=Z(c.data);if(b?.lines){const x=b.lines.map(oe);u(er(x))}},log:c=>{if(o.current!==n)return;const b=Z(c.data);if(b){const x=typeof b.line=="string"?b.line:oe(b);u(L=>ye(L,x))}},"dev-server:log":c=>{if(o.current!==n)return;const b=Z(c.data);if(b){const x=typeof b.line=="string"?b.line:oe(b);u(L=>ye(L,x))}},"dev-server:output":c=>{if(o.current!==n)return;const b=Z(c.data);b?.line&&u(x=>ye(x,b.line))},status:c=>{if(o.current!==n)return;const b=Z(c.data),x=b?.status;x&&s(L=>L&&{...L,status:x,runtime:b.pid?{...L.runtime??{startedAt:new Date().toISOString()},pid:b.pid}:L.runtime})},"dev-server:status":c=>{if(o.current!==n)return;const b=Z(c.data);if(b?.status){const x=Y(b);s(x),v([x])}},stopped:()=>{o.current},failed:()=>{o.current}},onReconnect:()=>{o.current===n&&_()},onError:()=>{o.current===n&&m(c=>c??i("devserver.lostConnection","Lost log stream connection."))}});return()=>{h()}},[e,_,d]),t.useEffect(()=>{if(p?.status!=="running"&&p?.status!=="starting")return;const a=setInterval(()=>{_()},Vr);return()=>{clearInterval(a)}},[_,p?.status]);const M=t.useCallback(async(a,n)=>{o.current+=1;const h=o.current;try{let c;const b=typeof n=="string"&&n.length>0,x=p?.config?.cwd??".";if(!(b&&n!==x)&&d&&typeof K(()=>Oe)=="function")c=await Oe(d,e);else{const V=await Ve({command:a,cwd:n},e);c=Y(V)}if(o.current!==h)return;s(c),m(null)}catch(c){if(o.current!==h)return;throw m(W(c)),c}},[e,p?.config?.cwd,d]),R=t.useCallback(async()=>{o.current+=1;const a=o.current;try{let n;if(d&&typeof K(()=>ze)=="function")n=await ze(d,e);else{const h=await Ir(e);n=Y(h)}if(o.current!==a)return;s(n),m(null)}catch(n){if(o.current!==a)return;throw m(W(n)),n}},[e,d]),F=t.useCallback(async()=>{o.current+=1;const a=o.current;try{let n;if(d&&typeof K(()=>Fe)=="function")n=await Fe(d,e);else{const h=await qr(e);n=Y(h)}if(o.current!==a)return;s(n),m(null)}catch(n){if(o.current!==a)return;throw m(W(n)),n}},[e,d]),A=t.useCallback(async a=>{o.current+=1;const n=o.current;try{let h;if(d&&typeof K(()=>$e)=="function")h=await $e(d,a,e);else{const c=await Sr({url:a},e);h={url:c.manualUrl??c.previewUrl??c.detectedUrl??null,source:c.manualUrl?"manual":"auto"}}if(o.current!==n)return;s(c=>c?{...c,previewUrl:h.url??void 0}:null),m(null)}catch(h){if(o.current!==n)return;throw m(W(h)),h}},[e,d]),$=t.useCallback(async()=>{o.current+=1;const a=o.current;try{let n;try{n=await be(e)}catch{n=(await We(e)).map(c=>({name:c.name,command:c.command,cwd:c.cwd,scriptName:c.scriptName,packagePath:c.packagePath}))}if(o.current!==a)return;C(n),m(null)}catch(n){if(o.current!==a)return;throw m(W(n)),n}},[e]),w=t.useCallback(async(a,n)=>{if(typeof a!="string"&&!d)try{const b=a,x=await Ve({command:b.command,cwd:b.cwd,scriptName:b.scriptName,packagePath:b.packagePath??b.cwd},e),L=Y(x);s(L),v([L]),m(null);return}catch(b){throw m(W(b)),b}const h=typeof a=="string"?a:a.command,c=typeof a=="string"?n:a.cwd;await M(h,c)},[e,M,d]),f=t.useCallback(async()=>{await R()},[R]),D=t.useCallback(async()=>{await F()},[F]),B=t.useCallback(async a=>{await A(a)},[A]),O=t.useCallback(async()=>{await $()},[$]),I=t.useCallback(async()=>{await _()},[_]),S=Wr(p),N=p?{...p,pid:p.runtime?.pid}:null;return{session:p,sessions:g,logs:y,detectedCommands:j,previewUrl:S,isLoading:z,error:k,startServer:M,stopServer:R,restartServer:F,setPreviewUrl:A,detectCommands:$,refresh:_,candidates:j,serverState:N,loading:z,start:w,stop:f,restart:D,setManualUrl:B,detect:O,refreshStatus:I}}const Ie=500,qe=100;function rr(e){return e.length>Ie?e.slice(-Ie):e}function tr(e){return e==="stderr"?"stderr":"stdout"}function ce(e){try{return JSON.parse(e.data)}catch{return null}}function de(e,i){return{id:typeof e.id=="number"&&Number.isFinite(e.id)?e.id:i,text:typeof e.text=="string"?e.text:"",stream:tr(e.stream),timestamp:typeof e.timestamp=="string"?e.timestamp:""}}function Xr(e,i){return{id:i,text:e,stream:"stdout",timestamp:""}}function Se(e,i){if(i.length===0)return e;const p=[...e],s=new Set(e.map(g=>g.id));for(const g of i)s.has(g.id)||(s.add(g.id),p.push(g));return p.sort((g,v)=>g.id-v.id),rr(p)}function Gr(e,i){const[p,s]=t.useState([]),[g,v]=t.useState(!1),[y,u]=t.useState(!1),[j,C]=t.useState(!1),[z,E]=t.useState(null),k=t.useRef(null),m=t.useRef(!1),o=t.useRef(0),d=t.useRef(0),U=t.useRef(e),T=t.useRef(i),_=t.useRef(0),M=t.useRef(1);(U.current!==e||T.current!==i)&&(U.current=e,T.current=i,o.current++,se({view:"useDevServerLogs",trigger:"project-context-change",projectId:e,replayAttempted:!1,reason:"context-version-bumped"}),m.current=!0,_.current=0,M.current=1,s([]),v(!1),u(!1),C(!1),E(null),k.current&&(k.current(),k.current=null)),t.useEffect(()=>{if(!i){k.current&&(k.current(),k.current=null);return}const w=o.current,f=++d.current;m.current=!1,v(!0);const D=(S,N)=>{const a=rr(S);s(a),E(N),C(N!==null?N>a.length:!1);const n=a.length>0?a[a.length-1].id:0;_.current=n,M.current=n+1},B=S=>{if(m.current||o.current!==w||!S||typeof S!="object")return;const N=S.lines;if(!Array.isArray(N))return;if(N.length>0&&typeof N[0]=="string"){const n=N.filter(h=>typeof h=="string").map((h,c)=>Xr(h,c+1));D(n,n.length);return}const a=N.filter(n=>!!n&&typeof n=="object").map((n,h)=>de(n,h+1));D(a,a.length)},O=S=>{if(m.current||o.current!==w)return;const N=typeof S.text=="string"?S.text:typeof S.line=="string"?S.line:null;if(!N)return;const a=M.current,n=typeof S.id=="number"&&Number.isFinite(S.id)?S.id:a,h={id:n,text:N,stream:tr(S.stream),timestamp:typeof S.timestamp=="string"?S.timestamp:""};_.current=Math.max(_.current,n),M.current=Math.max(M.current,n+1),s(c=>Se(c,[h])),E(c=>c===null?c:Math.max(c+1,h.id))};async function I(){try{const N=await xe({maxLines:qe},e);if(m.current||o.current!==w||d.current!==f)return;const a=N.lines.map((n,h)=>de(n,h+1));D(a,N.totalLines)}catch{if(m.current||o.current!==w||d.current!==f)return;D([],null)}finally{!m.current&&o.current===w&&d.current===f&&v(!1)}const S=Ce(e);k.current=Ye(S,{events:{"dev-server:log":N=>{const a=ce(N);a&&O(a)},log:N=>{const a=ce(N);a&&O(a)},history:N=>{const a=ce(N);B(a)},"dev-server:history":N=>{const a=ce(N);B(a)}},onReconnect:()=>{se({view:"useDevServerLogs",trigger:"sse-reconnect",projectId:e,replayAttempted:!0,replayFromEventId:_.current??null,sseChannel:S,reason:"history-replay"}),!(m.current||o.current!==w)&&xe({lastEventId:_.current,maxLines:50},e).then(N=>{if(m.current||o.current!==w)return;const a=N.lines.map((n,h)=>de(n,M.current+h));if(a.length>0){const n=a[a.length-1].id;_.current=Math.max(_.current,n),M.current=Math.max(M.current,n+1)}s(n=>Se(n,a)),E(N.totalLines)}).catch(()=>{})}}),se({view:"useDevServerLogs",trigger:"sse-open",projectId:e,replayAttempted:!1,sseChannel:S})}return I(),()=>{m.current=!0,k.current&&(k.current(),k.current=null)}},[i,e]);const F=t.useCallback(async()=>{if(!i||y)return;const w=o.current,f=p.length;u(!0);try{const D=await xe({maxLines:qe,offset:f},e);if(m.current||o.current!==w)return;const B=D.lines.map((O,I)=>de(O,I+1));s(O=>Se(B,O)),C(D.totalLines>f+B.length),E(D.totalLines)}catch{}finally{u(!1)}},[i,p.length,y,e]),A=t.useCallback(()=>{s([])},[]),$=k.current!==null&&!g&&!m.current;return{entries:p,loading:g,loadingMore:y,hasMore:j,total:z,loadMore:F,clear:A,logs:p,isStreaming:$,clearLogs:A}}const Jr="This preview appears to block iframe embedding. Open it in a new tab instead.",Yr="The preview URL could not be loaded. Verify the server is running and the URL is correct.",Qr="Preview is taking longer than expected and may block iframe embedding.";function Zr(e){return e==="blocked"?Jr:e==="error"?Yr:null}function et(e,i={}){const{loadTimeoutMs:p=1e4,detectionMethod:s=null}=i,g=t.useRef(null),v=t.useRef(null),[y,u]=t.useState("unknown"),[j,C]=t.useState(null),[z]=t.useState(s),E=t.useCallback(()=>{v.current!==null&&(window.clearTimeout(v.current),v.current=null)},[]),k=t.useCallback(R=>{u(R),C(Zr(R))},[]),m=t.useCallback(()=>{u("blocked"),C(Qr)},[]);t.useEffect(()=>{if(E(),!e){u("unknown"),C(null);return}u("unknown"),C(null);let R=!1;return queueMicrotask(()=>{R||(u("loading"),C(null))}),()=>{R=!0,E()}},[E,e]),t.useEffect(()=>{if(y!=="loading"){E();return}const R=setTimeout(()=>{v.current=null,m()},p);return v.current=R,()=>{clearTimeout(R),v.current===R&&(v.current=null)}},[E,y,p,m]);const o=t.useCallback(()=>{const R=g.current;if(!R){k("embedded");return}try{if(R.contentWindow?.location?.href==="about:blank"&&R.src!=="about:blank"){k("blocked");return}}catch{}k("embedded")},[k]),d=t.useCallback(()=>{k("error")},[k]);t.useEffect(()=>{if(E(),!e){u("unknown"),C(null);return}u("unknown"),C(null)},[E]);const U=t.useCallback(()=>{E(),u("unknown"),C(null)},[E]),T=U,_=t.useMemo(()=>y==="embedded",[y]),M=t.useMemo(()=>y==="blocked"||y==="error",[y]);return{embedStatus:y,isEmbedded:_,isBlocked:M,blockReason:j,detectionMethod:z,iframeRef:g,resetEmbedStatus:U,setEmbedStatus:k,retry:T,embedContext:j,handleIframeLoad:o,handleIframeError:d}}const rt=/\x1b\[[0-9;]*m/g;function Le(e){return e.replace(rt,"")}function tt(e){if(!e)return"";const i=new Date(e);return Number.isNaN(i.getTime())?"":i.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}function st(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nt(e){if(e.stream==="stderr")return"error";const i=Le(e.text).toLowerCase();return/\b(warn|warning)\b/.test(i)?"warn":/\b(error|fatal)\b/.test(i)?"error":"info"}function at(e,i){if(!i)return e;const p=new RegExp(`(${st(i)})`,"ig"),s=e.split(p),g=i.toLowerCase();return r.jsx(r.Fragment,{children:s.map((v,y)=>v.toLowerCase()===g?r.jsx("mark",{children:v},`${v}-${y}`):r.jsx("span",{children:v},`${v}-${y}`))})}function it({entries:e,loading:i,loadingMore:p,hasMore:s,total:g,onLoadMore:v,isRunning:y}){const{t:u}=ue("app"),j=t.useRef(null),C=t.useRef(e.length),z=t.useRef(y),[E,k]=t.useState(!1),[m,o]=t.useState(!1),[d,U]=t.useState(""),[T,_]=t.useState("all"),M=t.useMemo(()=>T==="all"?e:e.filter(w=>nt(w)===T),[e,T]),R=t.useMemo(()=>{const w=d.trim().toLowerCase();return w?M.filter(f=>Le(f.text).toLowerCase().includes(w)):M},[M,d]),F=R.length,A=t.useCallback(()=>{const w=j.current;w&&(w.scrollTop=w.scrollHeight,o(!1))},[]);t.useEffect(()=>{const w=z.current,f=C.current,D=e.length>f;y&&(!w||!m&&D)&&A(),z.current=y,C.current=e.length},[e.length,y,m,A]);const $=t.useCallback(()=>{const w=j.current;if(!w)return;const D=w.scrollTop+w.clientHeight>=w.scrollHeight-50;o(!D)},[]);return t.useEffect(()=>{i||e.length===0||!m&&y&&A()},[e,y,m,i,A]),i&&e.length===0?r.jsx("section",{className:"devserver-log-viewer","data-testid":"devserver-log-viewer",children:r.jsxs("div",{className:"devserver-log-viewer__loading","data-testid":"devserver-log-loading",children:[r.jsx(ve,{size:16,className:"devserver-log-viewer__spinner"}),r.jsx("span",{children:u("devserver.loadingLogs","Loading logs…")})]})}):r.jsxs("section",{className:`devserver-log-viewer${E?" devserver-log-viewer--fullscreen":""}`,"data-testid":"devserver-log-viewer",children:[r.jsxs("header",{className:"devserver-log-viewer__toolbar",children:[r.jsxs("div",{className:"devserver-log-viewer__toolbar-meta",children:[r.jsx("span",{className:"devserver-log-viewer__title",children:u("devserver.logs","Logs")}),r.jsxs("span",{className:"devserver-log-viewer__count","data-testid":"devserver-log-count",children:[g!==null?`${e.length}/${g}`:`${e.length}`," ",u("devserver.lines","lines")]})]}),r.jsxs("div",{className:"devserver-log-viewer__toolbar-actions",children:[r.jsxs("label",{className:"devserver-log-viewer__severity",htmlFor:"devserver-log-severity-filter",children:[r.jsx("span",{className:"visually-hidden",children:u("devserver.filterBySeverity","Filter logs by severity")}),r.jsxs("select",{id:"devserver-log-severity-filter",className:"select devserver-log-viewer__severity-select",value:T,onChange:w=>_(w.target.value),"data-testid":"devserver-log-severity-filter","aria-label":u("devserver.filterBySeverity","Filter logs by severity"),children:[r.jsx("option",{value:"all",children:u("devserver.allSeverities","All severities")}),r.jsx("option",{value:"info",children:u("devserver.info","Info")}),r.jsx("option",{value:"warn",children:u("devserver.warn","Warn")}),r.jsx("option",{value:"error",children:u("devserver.error","Error")})]})]}),r.jsxs("label",{className:"devserver-log-viewer__search",htmlFor:"devserver-log-search",children:[r.jsx("span",{className:"visually-hidden",children:u("devserver.searchLogs","Search logs")}),r.jsx(Rr,{size:14}),r.jsx("input",{id:"devserver-log-search",className:"input devserver-log-viewer__search-input",type:"text",value:d,onChange:w=>U(w.target.value),placeholder:u("devserver.searchLogs","Search logs"),"data-testid":"devserver-log-search-input","aria-label":u("devserver.searchLogs","Search logs")})]}),d.trim().length>0&&r.jsx("span",{className:"devserver-log-viewer__matches","data-testid":"devserver-log-match-count",children:u("devserver.matchCount",{count:F,defaultValue_one:"{{count}} match",defaultValue_other:"{{count}} matches"})}),r.jsx("button",{type:"button",className:"btn btn-sm btn-icon",onClick:()=>k(w=>!w),"data-testid":"devserver-log-fullscreen-toggle","aria-label":E?u("devserver.exitFullscreen","Exit fullscreen logs"):u("devserver.enterFullscreen","Enter fullscreen logs"),children:E?r.jsx(Dr,{size:14}):r.jsx(_r,{size:14})})]})]}),r.jsxs("div",{className:"devserver-log-viewer__body",children:[s&&r.jsx("div",{className:"devserver-log-viewer__load-more","data-testid":"devserver-log-load-more",children:r.jsx("button",{type:"button",className:"btn btn-sm touch-target",onClick:v,disabled:p,"data-testid":"devserver-log-load-more-button",children:p?r.jsxs(r.Fragment,{children:[r.jsx(ve,{size:14,className:"devserver-log-viewer__spinner"}),u("devserver.loadingOlderLogs","Loading older logs…")]}):u("devserver.loadOlderLogs","Load older logs")})}),r.jsxs("div",{ref:j,className:"devserver-log-viewer__content",onScroll:$,"data-testid":"devserver-log-content",children:[!i&&R.length===0&&r.jsx("p",{className:"devserver-log-viewer__empty","data-testid":"devserver-log-empty",children:e.length===0?u("devserver.noLogsYet","No logs yet. Start the dev server to see output."):M.length===0?u("devserver.noMatchesSeverity","No log lines match the selected severity."):u("devserver.noMatchesSearch","No log lines match your search.")}),R.map(w=>{const f=Le(w.text),D=tt(w.timestamp);return r.jsxs("div",{className:"devserver-log-line",children:[D&&r.jsx("span",{className:"devserver-log-timestamp","data-testid":"devserver-log-timestamp",children:D}),w.stream==="stderr"&&r.jsx("span",{className:"devserver-log-stream-badge","data-testid":"devserver-log-stderr-badge",children:u("devserver.errBadge","ERR")}),r.jsx("span",{className:"devserver-log-text",children:Mr(at(f,d.trim()))})]},w.id)})]}),m&&y&&r.jsxs("button",{type:"button",className:"btn btn-sm devserver-log-viewer__new-logs-button",onClick:A,"data-testid":"devserver-log-jump-button",children:[r.jsx(Pr,{size:14}),u("devserver.newLogs","New logs")]})]})]})}const lt="devserver-preview-iframe";function ot({url:e,embedStatus:i,onEmbedStatusChange:p,iframeRef:s,blockReason:g,onRetry:v,className:y=lt,embedContext:u}){const{t:j}=ue("app"),C=g??u??null,[z,E]=t.useState(0);t.useEffect(()=>{!e||i!=="unknown"||(E(d=>d+1),p("loading"))},[i,p,e]);const k=t.useCallback(()=>{const d=s.current;if(!d){p("embedded");return}try{if(d.contentWindow?.location?.href==="about:blank"&&d.src!=="about:blank"){p("blocked");return}}catch{}p("embedded")},[s,p]),m=t.useCallback(d=>{d.stopPropagation(),p("error")},[p]),o=t.useCallback(()=>{e&&window.open(e,"_blank","noopener,noreferrer")},[e]);return e?r.jsxs("div",{className:"devserver-preview-iframe-shell",children:[r.jsx("iframe",{src:e,ref:s,sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox",className:y,title:"Dev server preview",onLoad:k,onError:m,onErrorCapture:m,"data-testid":"devserver-preview-iframe"},`${e}-${z}`),i==="loading"&&r.jsxs("div",{className:"devserver-preview-overlay","data-testid":"devserver-preview-loading",children:[r.jsx(ve,{size:16,className:"dev-server-spin"}),r.jsx("span",{children:j("preview.loading","Loading preview...")})]}),i==="blocked"&&r.jsxs("div",{className:"devserver-preview-blocked-panel",role:"alert","data-testid":"devserver-preview-blocked-panel",children:[r.jsx(Ze,{className:"devserver-preview-blocked-icon","aria-hidden":"true"}),r.jsxs("div",{children:[r.jsx("p",{className:"devserver-preview-blocked-title",children:j("preview.blockedTitle","Preview cannot be embedded")}),C&&r.jsx("p",{className:"devserver-preview-blocked-context",children:C})]}),r.jsx("p",{className:"devserver-preview-blocked-description",children:j("preview.blockedDescription","You can view the preview in a separate browser tab.")}),r.jsxs("div",{className:"devserver-preview-blocked-actions",children:[r.jsx("button",{type:"button",className:"btn btn-primary",onClick:o,children:j("preview.openInNewTab","Open in new tab")}),v&&r.jsx("button",{type:"button",className:"btn btn-sm",onClick:v,children:j("actions.retry","Retry")})]})]}),i==="error"&&r.jsxs("div",{className:"devserver-preview-error-panel",role:"alert","data-testid":"devserver-preview-error-panel",children:[r.jsx(Qe,{className:"devserver-preview-blocked-icon","aria-hidden":"true"}),r.jsxs("div",{children:[r.jsx("p",{className:"devserver-preview-blocked-title",children:j("preview.errorTitle","Unable to load preview")}),C&&r.jsx("p",{className:"devserver-preview-blocked-context",children:C})]}),r.jsx("p",{className:"devserver-preview-blocked-description",children:j("preview.blockedDescription","You can view the preview in a separate browser tab.")}),r.jsxs("div",{className:"devserver-preview-blocked-actions",children:[r.jsx("button",{type:"button",className:"btn btn-primary",onClick:o,children:j("preview.openInNewTab","Open in new tab")}),v&&r.jsx("button",{type:"button",className:"btn btn-sm",onClick:v,children:j("actions.retry","Retry")})]})]})]}):null}function ct(e){return{stopped:{className:"dev-server-status-badge--stopped",label:e("devserver.status.stopped","Stopped")},starting:{className:"dev-server-status-badge--starting",label:e("devserver.status.starting","Starting...")},running:{className:"dev-server-status-badge--running",label:e("devserver.status.running","Running")},stopping:{className:"dev-server-status-badge--starting",label:e("devserver.status.stopping","Stopping...")},failed:{className:"dev-server-status-badge--failed",label:e("devserver.status.failed","Failed")}}}const dt=480;function vt(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(max-width: 768px)").matches}function sr(e){if(e.closest(".right-dock-expand-modal__body"))return null;const i=e.parentElement;return i?.classList.contains("right-dock__body")?i:null}function ut(e){return e.clientWidth>0?e.clientWidth:e.getBoundingClientRect().width}function mt(e){if(!e||vt())return!1;const i=sr(e);return i?ut(i)<=dt:!1}function pt(e){const[i,p]=t.useState(!1);return t.useEffect(()=>{const s=e.current;if(!s){p(!1);return}const g=sr(s),v=()=>p(mt(s));if(v(),!g||typeof ResizeObserver>"u")return window.addEventListener("resize",v),()=>window.removeEventListener("resize",v);const y=new ResizeObserver(v);return y.observe(g),window.addEventListener("resize",v),()=>{y.disconnect(),window.removeEventListener("resize",v)}},[e]),i}let ke=!1;function Ke(e){return e instanceof Error?e.message:String(e)}function nr(e){return e==="."?"root":e}function Xe(e){return e?e==="root"?".":e:null}function Ge(e,i,p){return!i||e.scriptName!==i?!1:p?nr(e.cwd)===p:!0}function ft(e){return e.cwd==="."?"root":e.cwd}function ht(e){return e.length<=60?e:`${e.slice(0,60)}…`}function kt({addToast:e,projectId:i,tasks:p}){const{t:s}=ue("app");t.useEffect(()=>(se({view:"DevServerView",trigger:ke?"route-active":"remount",projectId:i,replayAttempted:!1}),ke=!1,()=>{ke=!0,se({view:"DevServerView",trigger:"route-inactive",projectId:i,replayAttempted:!1})}),[i]);const{session:g,detectedCommands:v,previewUrl:y,isLoading:u,error:j,startServer:C,stopServer:z,restartServer:E,setPreviewUrl:k,detectCommands:m,refresh:o}=Kr(i),d=g?.status??"stopped",U=d==="running"||d==="starting",T=ct(s),_=T[d]??T.stopped,{entries:M,loading:R,loadingMore:F,hasMore:A,total:$,loadMore:w}=Gr(i,!!i),f=y,D=g?.config?.cwd??null,B=t.useRef(null),O=pt(B),[I,S]=t.useState(!0),[N,a]=t.useState(""),[n,h]=t.useState(""),[c,b]=t.useState(null),[x,L]=t.useState(null),[V,Re]=t.useState(null),X=t.useMemo(()=>(p??[]).filter(l=>l.column==="in-progress"&&typeof l.worktree=="string"&&l.worktree.length>0),[p]),q=t.useMemo(()=>X.find(l=>l.id===x)??null,[X,x]);t.useEffect(()=>{x&&!X.some(l=>l.id===x)&&L(null)},[X,x]);const[ee,ar]=t.useState("embedded"),[re,me]=t.useState(!1),De=t.useRef(null),pe=t.useRef(null),ir=ee==="embedded"?f:null,{embedStatus:H,setEmbedStatus:lr,resetEmbedStatus:ne,iframeRef:Q,isEmbedded:or,isBlocked:fe,blockReason:he,retry:_e}=et(ir),[Me,G]=t.useState(!1),Pe=t.useRef(H);t.useEffect(()=>{const l=Pe.current!==H;fe&&l&&G(!0),H==="embedded"&&G(!1),Pe.current=H},[H,fe]),t.useEffect(()=>{G(!1)},[f]);const ae=t.useMemo(()=>{if(!c)return null;const l=Xe(D);return v.find(P=>!(P.scriptName!==c||l&&P.cwd!==l||g?.config?.command&&P.command!==g.config.command))??v.find(P=>Ge(P,c,D))??null},[v,g?.config?.command,c,D]);t.useEffect(()=>{typeof m=="function"&&m().catch(l=>{e(Ke(l),"error")})},[e,m]),t.useEffect(()=>{if(c){S(!1);return}S(!0)},[c]),t.useEffect(()=>{if(g?.status==="running"||g?.status==="starting"){g.config?.command?.trim().length>0&&a(g.config.command);return}if(ae){a(ae.command);return}v.length>0&&a(l=>l.trim().length>0?l:v[0]?.command??"")},[v,ae,g?.config?.command,g?.status]),t.useEffect(()=>{h(f??"")},[f]);const ie=t.useCallback(()=>{me(!1),window.requestAnimationFrame(()=>De.current?.focus())},[]),cr=Tr(ie);t.useEffect(()=>{if(!re)return;pe.current?.focus();const l=P=>{if(P.key==="Escape"){ie();return}if(P.key!=="Tab")return;const te=Array.from(pe.current?.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')??[]).filter(Ae=>!Ae.hasAttribute("disabled")&&Ae.getAttribute("aria-hidden")!=="true"),J=te[0],we=te.at(-1);!J||!we||(P.shiftKey&&document.activeElement===J?(P.preventDefault(),we.focus()):!P.shiftKey&&document.activeElement===we&&(P.preventDefault(),J.focus()))};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[ie,re]),t.useEffect(()=>{!O&&re&&me(!1)},[O,re]);const ge=t.useCallback(()=>{f&&window.open(f,"_blank","noopener,noreferrer")},[f]),Te=t.useCallback(()=>{G(!1),_e()},[_e]),dr=t.useCallback(()=>{try{const l=Q.current;if(l?.contentWindow){l.contentWindow.location.reload(),G(!1),ne();return}}catch{}if(!(!f||!Q.current))try{const l=new URL(f);l.searchParams.set("_t",Date.now().toString()),Q.current.src=l.toString(),G(!1),ne()}catch{Q.current.src=f,G(!1),ne()}},[f,Q,ne]),le=t.useCallback(async(l,P,te)=>{Re(l);try{await P(),e(te,"success")}catch(J){e(Ke(J),"error")}finally{Re(null)}},[e]),vr=t.useCallback(l=>{b(l.scriptName),S(!1),a(l.command),e(s("devserver.toast.selectedScript","Selected {{name}} script.",{name:l.scriptName}),"success")},[e]),ur=t.useCallback(()=>{b(null),S(!0),e(s("devserver.toast.clearedScript","Cleared selected dev server script."),"success")},[e]),mr=t.useCallback(l=>{U&&l&&l!==x&&e(s("devserver.restartToApplyTask","Restart the dev server to apply the selected task's worktree."),"info"),L(l)},[e,U,x,s]),pr=()=>{const l=N.trim();if(l.length===0){e(s("devserver.toast.enterCommand","Enter a command before starting the dev server."),"warning");return}const P=Xe(D)??".",J=q?.worktree??null??ae?.cwd??P;le("start",()=>C(l,J),s("devserver.toast.started","Dev server started."))},fr=()=>{le("stop",z,s("devserver.toast.stopped","Dev server stopped."))},hr=()=>{le("restart",E,s("devserver.toast.restarted","Dev server restarted."))},gr=()=>{const l=n.trim(),P=l.length>0?l:null;le("preview",()=>k(P),P?s("devserver.toast.previewUpdated","Preview URL updated."):s("devserver.toast.previewCleared","Preview URL override cleared."))},wr=t.useCallback(()=>{j&&o()},[j,o]),br=d==="starting"||d==="running"||V!==null,xr=d==="stopped"||V!==null,yr=d==="stopped"||d==="starting"||V!==null,Ue=()=>r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"devserver-preview-header",children:[r.jsxs("div",{className:"devserver-preview-title",children:[r.jsx(Be,{size:14}),r.jsx("span",{children:s("devserver.preview","Preview")})]}),r.jsxs("span",{className:"devserver-preview-url-badge devserver-preview-url-badge--auto",title:f??s("devserver.noPreviewUrl","No preview URL"),"data-testid":"devserver-preview-url-badge",children:[s("devserver.auto","Auto"),f?` · ${f}`:s("devserver.notAvailable"," · Not available")]}),r.jsxs("div",{className:"devserver-preview-actions",children:[r.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>ar(l=>l==="embedded"?"external":"embedded"),"data-testid":"devserver-preview-mode-toggle",children:ee==="embedded"?s("devserver.externalOnly","External only"):s("devserver.embedded","Embedded")}),r.jsx("button",{type:"button",className:"btn btn-sm btn-icon",title:s("devserver.openInNewTab","Open in new tab"),onClick:ge,disabled:!f,"data-testid":"devserver-preview-open-tab",children:r.jsx(Br,{})}),r.jsx("button",{type:"button",className:"btn btn-sm btn-icon",title:s("devserver.refreshPreview","Refresh preview"),onClick:dr,disabled:!f,"data-testid":"devserver-preview-refresh",children:r.jsx(Hr,{})})]})]}),r.jsxs("div",{className:"devserver-preview-container","data-embed-status":H,"data-embedded":or?"true":"false",children:[!f&&!U&&r.jsx("p",{className:"devserver-preview-empty",children:s("devserver.startDevServer","Start a dev server to see a live preview here.")}),!f&&U&&r.jsx("p",{className:"devserver-preview-empty",children:s("devserver.noPreviewDetected","No preview URL detected. Start the dev server or set a manual URL to preview your app.")}),f&&ee==="external"&&r.jsxs("div",{className:"devserver-preview-external-only","data-testid":"devserver-preview-external-only",children:[r.jsx("p",{children:s("devserver.embeddedPreviewDisabled","Embedded preview is disabled. Open your app in a separate browser tab.")}),r.jsx("button",{type:"button",className:"btn btn-primary btn-sm touch-target",onClick:ge,"data-testid":"devserver-preview-external-open-tab",children:s("devserver.openInNewTab","Open in new tab")})]}),f&&ee==="embedded"&&Me&&fe&&r.jsxs("div",{className:H==="error"?"devserver-preview-error-panel":"devserver-preview-blocked-panel","data-testid":"devserver-preview-fallback",role:"alert",children:[H==="error"?r.jsx(Qe,{className:"devserver-preview-blocked-icon","aria-hidden":"true"}):r.jsx(Ze,{className:"devserver-preview-blocked-icon","aria-hidden":"true"}),r.jsxs("div",{children:[r.jsx("p",{className:"devserver-preview-blocked-title",children:H==="error"?s("devserver.previewFailed","Preview failed"):s("devserver.previewBlocked","Preview blocked")}),he&&r.jsx("p",{className:"devserver-preview-blocked-context",children:he})]}),r.jsx("p",{className:"devserver-preview-blocked-description",children:s("devserver.openPreviewOrRetry","Open the preview in a new tab, or retry embedded mode after checking your server settings.")}),r.jsxs("div",{className:"devserver-preview-blocked-actions",children:[r.jsx("button",{type:"button",className:"btn btn-primary",onClick:ge,"data-testid":"devserver-preview-fallback-open-tab",children:s("devserver.openPreviewInNewTab","Open preview in new tab")}),r.jsx("button",{type:"button",className:"btn btn-sm",onClick:Te,"data-testid":"devserver-preview-fallback-retry",children:s("devserver.retryEmbeddedPreview","Retry embedded preview")})]})]}),f&&ee==="embedded"&&!Me&&r.jsx(ot,{url:f,embedStatus:H,onEmbedStatusChange:lr,iframeRef:Q,blockReason:he,onRetry:Te})]})]});return r.jsxs("div",{ref:B,className:"dev-server-view","data-testid":"dev-server-view","data-narrow-right-dock-preview":O?"true":"false",children:[r.jsx(Ur,{icon:Ar,title:s("devserver.title","Dev Server"),actions:r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"dev-server-header-title",children:r.jsx("span",{className:`dev-server-status-badge ${_.className}`,"data-testid":"dev-server-status-badge",children:_.label})}),r.jsxs("div",{className:"dev-server-header-actions",children:[r.jsxs("button",{type:"button",className:"btn btn-primary btn-sm",onClick:pr,disabled:br,"data-testid":"dev-server-start-button",children:[r.jsx(Or,{size:14}),r.jsx("span",{children:V==="start"?s("devserver.starting","Starting..."):s("devserver.start","Start")})]}),r.jsxs("button",{type:"button",className:"btn btn-danger btn-sm",onClick:fr,disabled:xr,"data-testid":"dev-server-stop-button",children:[r.jsx(zr,{size:14}),r.jsx("span",{children:V==="stop"?s("devserver.stopping","Stopping..."):s("devserver.stop","Stop")})]}),r.jsxs("button",{type:"button",className:"btn btn-sm",onClick:hr,disabled:yr,"data-testid":"dev-server-restart-button",children:[r.jsx(Fr,{size:14}),r.jsx("span",{children:V==="restart"?s("devserver.restarting","Restarting..."):s("devserver.restart","Restart")})]})]})]})}),r.jsxs("section",{className:"dev-server-panel dev-server-config","aria-label":s("devserver.configurationLabel","Dev server configuration"),children:[r.jsxs("div",{className:"dev-server-section-header",children:[r.jsx("h3",{children:s("devserver.configuration","Configuration")}),u&&r.jsx("span",{className:"dev-server-muted",children:s("devserver.loading","Loading...")})]}),u&&!g&&v.length===0&&r.jsxs("div",{className:"dev-server-loading-state","data-testid":"dev-server-loading-state",children:[r.jsx(ve,{size:16,className:"dev-server-spin"}),r.jsx("span",{children:s("devserver.loadingConfig","Loading dev server configuration...")})]}),j&&r.jsxs("div",{className:"dev-server-error-box",role:"alert","data-testid":"dev-server-error-box",children:[r.jsx("p",{children:j}),r.jsx("button",{type:"button",className:"btn btn-sm",onClick:wr,children:s("devserver.retry","Retry")})]}),r.jsxs("div",{className:"dev-server-section",children:[r.jsx("h3",{children:s("devserver.scriptSelection","Script Selection")}),c&&r.jsxs("div",{className:"dev-server-selected","data-testid":"dev-server-selected-summary",children:[r.jsx("span",{className:"dev-server-candidate-name",children:c}),r.jsx("span",{className:"dev-server-candidate-source",children:D??"root"}),r.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>S(!0),"data-testid":"dev-server-change-selection",children:s("devserver.change","Change")}),r.jsx("button",{type:"button",className:"btn btn-danger btn-sm",onClick:ur,"data-testid":"dev-server-clear-selection",children:s("devserver.clear","Clear")})]}),I&&v.length===0&&r.jsx("p",{className:"dev-server-empty-state","data-testid":"dev-server-empty-candidates",children:s("devserver.noScriptsDetected","No dev server scripts detected. Check that your project has a package.json with a dev, start, or similar script.")}),I&&v.length>0&&r.jsx("div",{className:"dev-server-candidates","data-testid":"dev-server-candidates",children:v.map(l=>{const P=Ge(l,c,D);return r.jsxs("button",{type:"button",className:`dev-server-candidate ${P?"dev-server-candidate--selected":""}`,onClick:()=>vr(l),"data-testid":`dev-server-candidate-${l.scriptName}-${nr(l.cwd)}`,children:[r.jsx("span",{className:"dev-server-candidate-name",children:l.scriptName}),r.jsx("span",{className:"dev-server-candidate-command",children:ht(l.command)}),r.jsx("span",{className:"dev-server-candidate-source",children:ft(l)})]},`${l.cwd}::${l.scriptName}::${l.command}`)})})]}),r.jsxs("div",{className:"dev-server-section dev-server-executing-task-section",children:[r.jsx("h3",{children:s("devserver.executingTask","Executing Task")}),r.jsxs("div",{className:"dev-server-field-group",children:[r.jsx("label",{htmlFor:"dev-server-task-picker",className:"dev-server-label",children:s("devserver.executingTask","Executing Task")}),r.jsxs("select",{id:"dev-server-task-picker",className:"input dev-server-task-picker",value:x??"",onChange:l=>mr(l.target.value.length>0?l.target.value:null),disabled:X.length===0,"aria-label":s("devserver.executingTask","Executing Task"),"data-testid":"dev-server-task-picker",children:[r.jsx("option",{value:"",children:s("devserver.projectRootNoTask","Project root (no task)")}),X.map(l=>r.jsx("option",{value:l.id,children:l.title?`${l.id} — ${l.title}`:l.id},l.id))]}),X.length===0&&r.jsx("p",{className:"dev-server-empty-state","data-testid":"dev-server-no-executing-tasks",children:s("devserver.noExecutingTasks","No executing tasks with a worktree available. Start a task to target its worktree.")}),q&&r.jsxs("div",{className:"dev-server-task-descriptor","data-testid":"dev-server-task-descriptor",children:[r.jsx("div",{className:"dev-server-task-descriptor-header",children:r.jsx("span",{className:"dev-server-candidate-name",children:q.title?`${q.id} — ${q.title}`:q.id})}),r.jsx("p",{className:"dev-server-task-description",children:q.description}),r.jsxs("div",{className:"dev-server-task-worktree",children:[r.jsx("span",{className:"dev-server-label",children:s("devserver.targetWorktree","Target worktree")}),r.jsx("code",{children:q.worktree})]})]})]})]}),r.jsxs("div",{className:"dev-server-field-group",children:[r.jsx("label",{htmlFor:"dev-server-command",className:"dev-server-label",children:s("devserver.command","Command")}),r.jsx("input",{id:"dev-server-command",className:"input",value:N,onChange:l=>a(l.target.value),placeholder:"pnpm dev","data-testid":"dev-server-command-input",readOnly:d==="running"||d==="starting"})]}),(d==="running"||d==="starting")&&g&&r.jsxs("div",{className:"dev-server-current-command","data-testid":"dev-server-current-command",children:[r.jsx("span",{className:"dev-server-label",children:s("devserver.runningCommand","Running command")}),r.jsx("code",{children:g.config?.command??N})]}),r.jsxs("div",{className:"dev-server-preview-override",children:[r.jsx("label",{htmlFor:"dev-server-preview-input",className:"dev-server-label",children:s("devserver.previewUrlOverride","Preview URL Override")}),r.jsx("input",{id:"dev-server-preview-input",className:"input",type:"url",value:n,onChange:l=>h(l.target.value),placeholder:"http://localhost:3000","data-testid":"dev-server-preview-input"}),r.jsx("button",{type:"button",className:"btn btn-primary btn-sm",onClick:gr,disabled:V==="preview","data-testid":"dev-server-set-preview",children:s("devserver.save","Save")})]}),f&&r.jsx("p",{className:"dev-server-preview-hint",children:s("devserver.autoDetected","Auto-detected: {{url}}",{url:f})})]}),r.jsx("div",{className:"dev-server-content",children:r.jsxs("section",{className:"dev-server-panel dev-server-logs-panel","data-testid":"dev-server-logs-panel","aria-label":s("devserver.logsLabel","Dev server logs"),children:[r.jsxs("div",{className:"dev-server-section-header",children:[r.jsx("h3",{children:s("devserver.logs","Logs")}),r.jsx("span",{className:"dev-server-muted",children:s("devserver.lines","{{count}} lines",{count:$??M.length})})]}),r.jsx("div",{className:"dev-server-logs-viewer","data-testid":"dev-server-log-viewer",children:r.jsx(it,{entries:M,loading:R,loadingMore:F,hasMore:A,total:$,onLoadMore:w,isRunning:U})})]})}),O?r.jsxs("section",{className:"dev-server-panel devserver-preview-modal-launcher","data-testid":"devserver-preview-modal-launcher","aria-label":s("devserver.previewLabel","Dev server preview"),children:[r.jsxs("div",{className:"devserver-preview-modal-launcher__copy",children:[r.jsxs("div",{className:"devserver-preview-title",children:[r.jsx(Be,{size:14}),r.jsx("span",{children:s("devserver.preview","Preview")})]}),r.jsx("span",{className:"devserver-preview-url-badge devserver-preview-url-badge--auto",title:f??s("devserver.noPreviewUrl","No preview URL"),"data-testid":"devserver-preview-url-badge",children:f||s("devserver.notAvailable","Not available")})]}),r.jsx("p",{className:"devserver-preview-modal-launcher__description",children:f?s("devserver.previewModalLauncherDescription","Open the live preview in a modal so logs and configuration stay usable in this narrow dock."):s("devserver.previewModalLauncherUnavailable","Start the dev server or set a preview URL to open the preview modal.")}),r.jsx("button",{type:"button",className:"btn btn-primary btn-sm",ref:De,onClick:()=>me(!0),"data-testid":"devserver-preview-modal-open",children:s("devserver.openPreview","Open preview")})]}):r.jsx("section",{className:"dev-server-panel devserver-preview-panel","data-testid":"devserver-preview-panel","aria-label":s("devserver.previewLabel","Dev server preview"),children:Ue()}),O&&re&&r.jsx("div",{className:"modal-overlay open devserver-preview-modal-overlay",...cr,children:r.jsxs("div",{className:"modal devserver-preview-modal",role:"dialog","aria-modal":"true","aria-labelledby":"devserver-preview-modal-title",tabIndex:-1,ref:pe,"data-testid":"devserver-preview-modal",children:[r.jsxs("div",{className:"devserver-preview-modal__titlebar",children:[r.jsx("h2",{id:"devserver-preview-modal-title",children:s("devserver.preview","Preview")}),r.jsx("button",{type:"button",className:"btn btn-sm btn-icon",onClick:ie,"aria-label":s("devserver.closePreviewModal","Close preview modal"),"data-testid":"devserver-preview-modal-close",children:r.jsx($r,{})})]}),r.jsx("div",{className:"devserver-preview-modal__body",children:Ue()})]})})]})}export{kt as DevServerView};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dev-server-view{display:flex;flex-direction:column;gap:var(--space-md);padding:0 var(--space-lg) var(--space-lg);min-height:0;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.right-dock__body .dev-server-view>.view-header,.right-dock-expand-modal__body .dev-server-view>.view-header{display:none}@media(max-width:768px){.right-dock__body .dev-server-view>.view-header,.right-dock-expand-modal__body .dev-server-view>.view-header{display:flex}}.dev-server-header-title{display:flex;align-items:center;gap:var(--space-sm)}.dev-server-header-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.dev-server-status-badge{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono)}.dev-server-status-badge--stopped{color:var(--color-muted);background:color-mix(in srgb,var(--color-muted) 16%,transparent);border-color:color-mix(in srgb,var(--color-muted) 40%,transparent)}.dev-server-status-badge--starting{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning) 16%,transparent);border-color:color-mix(in srgb,var(--color-warning) 40%,transparent)}.dev-server-status-badge--running{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 16%,transparent);border-color:color-mix(in srgb,var(--color-success) 40%,transparent)}.dev-server-status-badge--failed{color:var(--color-error);background:color-mix(in srgb,var(--color-error) 16%,transparent);border-color:color-mix(in srgb,var(--color-error) 40%,transparent)}.dev-server-panel{display:flex;flex-direction:column;gap:var(--space-md);min-height:0;padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);cursor:default;user-select:text;touch-action:auto}.dev-server-config{flex:0 0 auto;min-height:0;max-height:min(52vh,calc(var(--space-2xl) * 16));overflow-y:auto;overscroll-behavior:contain}.dev-server-section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.dev-server-section-header h3{margin:0}.dev-server-muted{color:var(--text-muted);font-family:var(--font-mono)}.dev-server-field-group{display:flex;flex-direction:column;gap:var(--space-xs)}.dev-server-label{color:var(--text-muted)}.dev-server-empty-state{margin:0;color:var(--text-muted)}.dev-server-empty-state code{font-family:var(--font-mono)}.dev-server-task-picker{width:100%;min-width:0}.dev-server-task-descriptor{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0;padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 84%,var(--text))}.dev-server-task-descriptor-header{display:flex;min-width:0}.dev-server-task-description{margin:0;max-height:calc(var(--space-2xl) * 4);overflow-y:auto;color:var(--text);line-height:1.5;white-space:pre-wrap}.dev-server-task-worktree{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.dev-server-task-worktree code{color:var(--text-muted);font-family:var(--font-mono);overflow-wrap:anywhere}.dev-server-section{display:flex;flex-direction:column;gap:var(--space-md);min-height:0;padding:var(--space-xl);max-width:calc(var(--space-2xl) * 25);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.dev-server-section h3{margin:0}.dev-server-candidates{display:flex;flex-direction:column;gap:var(--space-sm);min-height:0;max-height:min(36vh,calc(var(--space-2xl) * 9));overflow-y:auto;overscroll-behavior:contain}.dev-server-candidate{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);color:var(--text);text-align:left;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.dev-server-candidate:hover{background:var(--card-hover)}.dev-server-candidate:focus-visible{outline:none;box-shadow:var(--focus-ring-strong)}.dev-server-candidate--selected{border-left:calc(var(--btn-border-width) * 3) solid var(--todo);background:var(--status-todo-bg)}.dev-server-candidate-name{font-family:var(--font-mono);font-size:.8125rem;font-weight:600}.dev-server-candidate-command{color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;max-width:calc(var(--space-2xl) * 9 + var(--space-md));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dev-server-candidate-source{margin-left:auto;color:var(--text-dim);font-size:.6875rem}.dev-server-selected{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.dev-server-selected .btn{margin-left:0}.dev-server-preview-override{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xl)}.dev-server-preview-override .input{flex:1}.dev-server-preview-hint{margin:0;color:var(--text-muted)}.dev-server-loading-state{display:flex;align-items:center;gap:var(--space-sm);color:var(--text-muted)}.dev-server-error-box{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:1px solid color-mix(in srgb,var(--color-error) 40%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error)}.dev-server-error-box p{margin:0}.dev-server-current-command{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.dev-server-current-command code{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word}.dev-server-error{margin:0;padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--color-error) 40%,transparent);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 10%,transparent)}.dev-server-content{flex:1;min-height:0;display:flex;flex-direction:column}.dev-server-logs-panel,.dev-server-preview{min-height:0}.dev-server-logs-viewer{flex:1;min-height:0}.dev-server-logs{flex:1;min-height:clamp(calc(var(--space-2xl) * 3 + var(--space-xs)),28vh,calc(var(--space-2xl) * 5));max-height:clamp(calc(var(--space-2xl) * 8),55vh,calc(var(--space-2xl) * 14));padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);overflow-y:auto;font-family:var(--font-mono)}.dev-server-log-line{margin:0;white-space:pre-wrap;word-break:break-word}.devserver-preview-panel{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}.devserver-preview-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}.devserver-preview-title{display:flex;align-items:center;gap:var(--space-xs);font-size:.8125rem;font-weight:600;color:var(--text)}.devserver-preview-url-badge{flex:1 1 auto;min-width:0;max-width:calc(var(--space-2xl) * 9);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:.6875rem}.devserver-preview-url-badge--manual{color:var(--color-info);background:color-mix(in srgb,var(--color-info) 14%,transparent)}.devserver-preview-url-badge--auto{color:var(--text-muted);background:color-mix(in srgb,var(--surface) 70%,var(--text))}.devserver-preview-actions{display:flex;gap:var(--space-xs);margin-left:auto}.devserver-preview-container{position:relative;flex:1;min-height:clamp(calc(var(--space-2xl) * 4),42vh,calc(var(--space-2xl) * 9 + var(--space-sm)));max-height:clamp(calc(var(--space-2xl) * 10),72vh,calc(var(--space-2xl) * 18 + var(--space-lg)));overflow:hidden}.devserver-preview-iframe-shell{position:relative;width:100%;height:100%}.devserver-preview-iframe{width:100%;height:100%;border:none;background:var(--surface)}.devserver-preview-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);background:color-mix(in srgb,var(--bg) 85%,transparent);color:var(--text-muted)}.devserver-preview-blocked-panel,.devserver-preview-error-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;gap:var(--space-md);padding:var(--space-xl);text-align:center;border-radius:var(--radius-lg)}.devserver-preview-blocked-panel{background:color-mix(in srgb,var(--color-warning) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-warning) 20%,transparent)}.devserver-preview-error-panel{background:color-mix(in srgb,var(--color-error) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 20%,transparent)}.devserver-preview-blocked-icon{width:calc(var(--space-2xl) + var(--space-lg));height:calc(var(--space-2xl) + var(--space-lg));color:var(--color-warning)}.devserver-preview-error-panel .devserver-preview-blocked-icon{color:var(--color-error)}.devserver-preview-blocked-title{margin:0 0 var(--space-xs);font-size:1rem;font-weight:600;color:var(--text)}.devserver-preview-blocked-context{margin:0;font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono);background:color-mix(in srgb,var(--bg) 80%,transparent);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.devserver-preview-blocked-description{margin:0;color:var(--text-muted);font-size:.8125rem}.devserver-preview-blocked-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;justify-content:center}.devserver-preview-empty{margin:0;padding:var(--space-2xl);text-align:center;color:var(--text-dim);font-size:.8125rem}.devserver-preview-external-only{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:100%;padding:var(--space-lg);text-align:center;color:var(--text-muted);background:color-mix(in srgb,var(--surface) 80%,var(--text))}.devserver-preview-external-only p{margin:0}.devserver-preview-modal-launcher{align-items:stretch}.devserver-preview-modal-launcher__copy{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.devserver-preview-modal-launcher__copy .devserver-preview-url-badge{max-width:none}.devserver-preview-modal-launcher__description{margin:0;color:var(--text-muted);line-height:1.5}.devserver-preview-modal-overlay{align-items:center;padding:var(--space-xl)}.devserver-preview-modal{width:min(calc(var(--space-2xl) * 28),calc(100vw - var(--space-xl) * 2));max-height:calc(100vh - var(--space-xl) * 2)}.devserver-preview-modal__titlebar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--border)}.devserver-preview-modal__titlebar h2{margin:0;font-size:1rem}.devserver-preview-modal__body{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden}.devserver-preview-modal__body .devserver-preview-container{flex:1;min-height:min(60vh,calc(var(--space-2xl) * 14));max-height:none}.dev-server-preview-fallback{border:1px solid color-mix(in srgb,var(--color-warning) 40%,transparent);background:color-mix(in srgb,var(--color-warning) 10%,transparent)}.dev-server-preview-external-only{border:1px solid var(--border);background:var(--surface)}.dev-server-spin{animation:dev-server-spin 1s linear infinite}@media(min-width:769px){.dev-server-view{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto 1fr}.dev-server-view>.view-header{grid-column:1 / -1}.dev-server-config{grid-column:1;grid-row:2;max-height:none}.dev-server-content{grid-column:1;grid-row:3}.devserver-preview-panel{grid-column:2;grid-row:2 / 4}.devserver-preview-container{min-height:0;max-height:none}}@media(max-width:768px){.dev-server-view{display:flex;flex-direction:column;padding:0 var(--space-md) var(--space-md)}.dev-server-header-title{flex-wrap:wrap}.dev-server-header-actions{width:100%}.dev-server-content{display:flex;flex-direction:column}.dev-server-section{padding:var(--space-md);max-width:none}.devserver-preview-header,.devserver-preview-modal-launcher__copy{flex-wrap:wrap}.devserver-preview-url-badge{order:2;flex:1 1 100%;min-width:0;max-width:100%}.devserver-preview-actions{order:3;width:100%;margin-left:0;justify-content:flex-end}.dev-server-preview-override{flex-direction:column;align-items:stretch}.dev-server-candidate,.dev-server-selected{flex-wrap:wrap}.dev-server-candidate-command{flex:1 1 100%;max-width:100%;white-space:normal;word-break:break-word}.dev-server-task-picker,.dev-server-task-descriptor{width:100%}.dev-server-task-description{max-height:calc(var(--space-2xl) * 3)}.devserver-preview-modal-overlay{align-items:stretch;padding:var(--space-md)}.devserver-preview-modal{width:100%;max-height:calc(100vh - var(--space-md) * 2)}.devserver-preview-modal__body .devserver-preview-container{min-height:calc(var(--space-2xl) * 7)}.dev-server-config{max-height:min(48vh,calc(var(--space-2xl) * 13))}.dev-server-candidates{max-height:min(32vh,calc(var(--space-2xl) * 7))}.dev-server-candidate-source{margin-left:0}.dev-server-header-actions .btn,.devserver-preview-actions .btn,.dev-server-preview-override .btn,.devserver-preview-external-only .btn,.devserver-preview-blocked-panel .btn,.devserver-preview-error-panel .btn,.devserver-log-viewer__load-more .btn{min-height:calc(var(--space-lg) + var(--space-lg) + var(--space-xs))}.devserver-preview-actions .btn-icon{min-width:calc(var(--space-lg) + var(--space-lg) + var(--space-xs));min-height:calc(var(--space-lg) + var(--space-lg) + var(--space-xs))}.devserver-log-viewer__toolbar{flex-wrap:wrap;padding:var(--space-xs) var(--space-sm)}.devserver-log-viewer__toolbar-actions{width:100%;justify-content:space-between}.devserver-log-viewer__search{flex:1}.devserver-log-viewer__search-input{min-width:0;width:100%}.devserver-log-viewer__content{padding:var(--space-xs);font-size:.6875rem}.devserver-log-viewer__new-logs-button{bottom:var(--space-lg);min-height:calc(var(--space-lg) + var(--space-lg) + var(--space-xs))}.dev-server-logs,.devserver-preview-container,.devserver-preview-iframe{min-height:calc(var(--space-2xl) * 4 + var(--space-md))}.devserver-preview-blocked-panel,.devserver-preview-error-panel,.devserver-preview-external-only{word-break:break-word}.devserver-preview-blocked-panel,.devserver-preview-error-panel{padding:var(--space-md)}.devserver-preview-blocked-actions .btn{min-height:calc(var(--space-lg) + var(--space-md) + var(--space-sm))}.chat-tool-calls-header,.chat-tool-call summary,.chat-tool-call-content,.chat-tool-call-preview,.chat-tool-call-value{font-size:.6875rem}.chat-tool-call summary{padding:var(--space-xs)}.chat-tool-call-content{margin:var(--space-xs);padding:var(--space-xs)}.chat-tool-call-status-text{font-size:.625rem}}@container right-dock-body (max-width: 768px){.dev-server-view{display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto;padding:0 var(--space-md) var(--space-md)}.dev-server-view>.view-header{grid-column:auto}.dev-server-header-title{flex-wrap:wrap}.dev-server-header-actions{width:100%}.dev-server-config{grid-column:auto;grid-row:auto;max-height:min(48vh,calc(var(--space-2xl) * 13))}.dev-server-content{grid-column:auto;grid-row:auto;display:flex;flex-direction:column}.devserver-preview-panel,.devserver-preview-modal-launcher{grid-column:auto;grid-row:auto}.dev-server-section{padding:var(--space-md);max-width:none}.devserver-preview-header,.devserver-preview-modal-launcher__copy{flex-wrap:wrap}.devserver-preview-modal-overlay{align-items:stretch;padding:var(--space-md)}.devserver-preview-modal{width:min(calc(var(--space-2xl) * 20),calc(100vw - var(--space-md) * 2));max-height:calc(100vh - var(--space-md) * 2)}.devserver-preview-modal__body .devserver-preview-container{min-height:calc(var(--space-2xl) * 7)}.devserver-preview-url-badge{order:2;flex:1 1 100%;min-width:0;max-width:100%}.devserver-preview-actions{order:3;width:100%;margin-left:0;justify-content:flex-end}.dev-server-preview-override{flex-direction:column;align-items:stretch}.dev-server-candidate,.dev-server-selected{flex-wrap:wrap}.dev-server-candidate-command{flex:1 1 100%;max-width:100%;white-space:normal;word-break:break-word}.dev-server-candidate-source{margin-left:0}.dev-server-candidates{max-height:min(32vh,calc(var(--space-2xl) * 7))}.dev-server-task-picker,.dev-server-task-descriptor{width:100%}.dev-server-task-description{max-height:calc(var(--space-2xl) * 3)}.dev-server-logs,.devserver-preview-panel .devserver-preview-container,.devserver-preview-panel .devserver-preview-iframe{min-height:calc(var(--space-2xl) * 4 + var(--space-md));max-height:none}.devserver-preview-blocked-panel,.devserver-preview-error-panel,.devserver-preview-external-only{word-break:break-word}}.devserver-log-viewer{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.devserver-log-viewer--fullscreen{position:fixed;inset:0;z-index:120;border-radius:0}.devserver-log-viewer__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);background:var(--card)}.devserver-log-viewer__toolbar-meta{display:flex;align-items:baseline;gap:var(--space-sm)}.devserver-log-viewer__title{color:var(--text);font-weight:600}.devserver-log-viewer__count{color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem}.devserver-log-viewer__toolbar-actions{display:flex;align-items:center;gap:var(--space-sm)}.devserver-log-viewer__severity,.devserver-log-viewer__search{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--text-muted)}.devserver-log-viewer__severity-select{min-height:calc(var(--space-lg) + var(--space-md));min-width:calc(var(--space-2xl) * 3);font-size:.75rem}.devserver-log-viewer__search-input{min-height:calc(var(--space-lg) + var(--space-md));min-width:calc(var(--space-2xl) * 4);font-size:.75rem}.devserver-log-viewer__matches{color:var(--text-muted);font-family:var(--font-mono);font-size:.6875rem}.devserver-log-viewer__body{position:relative;display:flex;flex:1;flex-direction:column;min-height:0}.devserver-log-viewer__load-more{display:flex;justify-content:center;padding:var(--space-sm);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 95%,var(--text))}.devserver-log-viewer__content{flex:1;min-height:0;overflow-y:auto;padding:var(--space-sm);font-family:var(--font-mono);font-size:.75rem;line-height:1.5;background:var(--surface)}.devserver-log-viewer__loading,.devserver-log-viewer__empty{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:calc(var(--space-2xl) * 4);margin:0;color:var(--text-muted)}.devserver-log-viewer__spinner{animation:dev-server-spin 1s linear infinite}.devserver-log-line{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-all}.devserver-log-line:nth-child(2n){background:color-mix(in srgb,var(--surface) 95%,var(--text))}.devserver-log-timestamp{margin-right:var(--space-sm);color:var(--text-dim);font-size:.6875rem}.devserver-log-stream-badge{margin-right:var(--space-sm);padding:0 var(--space-xs);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-error) 15%,transparent);color:var(--color-error);font-size:.625rem;font-weight:600}.devserver-log-text{color:var(--text)}.devserver-log-text mark{border-radius:var(--radius-sm);background:color-mix(in srgb,var(--todo) 40%,transparent);color:var(--text)}.devserver-log-viewer__new-logs-button{position:absolute;left:50%;bottom:var(--space-xl);transform:translate(-50%);z-index:10;border-color:var(--border);background:var(--card);box-shadow:var(--shadow-md)}.devserver-log-viewer__new-logs-button:active{transform:translate(-50%) scale(.97)}@keyframes dev-server-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:480px){.devserver-preview-blocked-actions{width:100%;flex-direction:column}.devserver-preview-blocked-actions .btn{width:100%;min-height:calc(var(--space-lg) + var(--space-lg) + var(--space-xs))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as n,j as r}from"./vendor-react-SZ_qB27O.js";import{
|
|
1
|
+
import{r as n,j as r}from"./vendor-react-SZ_qB27O.js";import{a9 as v,aa as z,ab as D,ac as x,C as j,ad as S,D as T,F as B,P as A,L,q as w}from"./index-CUY6xXXv.js";import{u as K}from"./vendor-i18n-GF3RlKbq.js";import{F as R}from"./folder-open-DCNfEqr1.js";function J({value:p,onChange:u,placeholder:f,onInputKeyDown:N,nodeId:b,localNodeId:k}){const{t:i}=K("app"),[e,s]=n.useState({isOpen:!1,loading:!1,error:null,currentPath:"",parentPath:null,entries:[],showHidden:!1,createFolderOpen:!1,createFolderError:null}),[l,h]=n.useState(""),d=n.useCallback(async(t,c=!1)=>{s(o=>({...o,loading:!0,error:null}));try{const o=await v(t,c,b,k);s(a=>({...a,loading:!1,currentPath:o.currentPath,parentPath:o.parentPath,entries:o.entries}))}catch(o){s(a=>({...a,loading:!1,error:o instanceof Error?o.message:"Failed to browse directory"}))}},[b,k]),F=n.useCallback(()=>{s(t=>t.isOpen?{...t,isOpen:!1}:{...t,isOpen:!0})},[]);n.useEffect(()=>{e.isOpen&&!e.loading&&!e.currentPath&&!e.error&&d(p||void 0,e.showHidden)},[e.isOpen,e.loading,e.currentPath,e.error,p,e.showHidden,d,b,k]);const m=n.useCallback(t=>{d(t,e.showHidden)},[d,e.showHidden]),C=n.useCallback(()=>{u(e.currentPath),s(t=>({...t,isOpen:!1}))},[e.currentPath,u]),g=n.useCallback(()=>{s(t=>{const c=!t.showHidden;return{...t,showHidden:c}})},[]);n.useEffect(()=>{e.isOpen&&e.currentPath&&d(e.currentPath,e.showHidden)},[e.showHidden,d]);const P=n.useCallback(()=>{s(t=>({...t,createFolderOpen:!t.createFolderOpen,createFolderError:null})),h("")},[]),y=n.useCallback(async()=>{if(!l.trim()||!e.currentPath)return;const t=l.trim();if(t.includes("/")||t.includes("\\")||t.includes("..")){s(a=>({...a,createFolderError:i("dirPicker.createFolderError","Folder name cannot contain path separators or '..'")}));return}const c=e.currentPath.includes("\\")?"\\":"/",o=e.currentPath.endsWith(c)?e.currentPath+t:e.currentPath+c+t;s(a=>({...a,loading:!0,createFolderError:null}));try{await z(o),h(""),s(a=>({...a,createFolderOpen:!1})),await d(e.currentPath,e.showHidden)}catch(a){s(O=>({...O,loading:!1,createFolderError:a instanceof Error?a.message:"Failed to create folder"}))}},[l,e.currentPath,e.showHidden,d]),H=n.useCallback(t=>{t.key==="Enter"?(t.preventDefault(),y()):t.key==="Escape"&&(s(c=>({...c,createFolderOpen:!1,createFolderError:null})),h(""))},[y]),E=e.currentPath?D(e.currentPath):[];return r.jsxs("div",{className:"directory-picker",children:[r.jsxs("div",{className:"directory-picker-input-row",children:[r.jsx("input",{type:"text",className:"input directory-picker-input",value:p,onChange:t=>u(t.target.value),onKeyDown:N,placeholder:f||i("dirPicker.defaultPlaceholder","/path/to/your/project")}),r.jsxs("button",{type:"button",className:"btn btn-secondary btn-sm directory-picker-browse-btn",onClick:F,"aria-label":e.isOpen?i("dirPicker.closeBrowser","Close directory browser"):i("dirPicker.openBrowser","Browse directories"),children:[e.isOpen?r.jsx(R,{size:16}):r.jsx(x,{size:16}),r.jsx("span",{children:i("dirPicker.browse","Browse")})]})]}),e.isOpen&&r.jsxs("div",{className:"directory-picker-browser",role:"tree","aria-label":i("dirPicker.ariaLabel","Directory browser"),children:[r.jsx("div",{className:"directory-picker-breadcrumbs",children:E.map((t,c)=>r.jsxs("span",{className:"directory-picker-breadcrumb-item",children:[c>0&&r.jsx(j,{size:12,className:"directory-picker-breadcrumb-sep"}),r.jsx("button",{type:"button",className:"directory-picker-breadcrumb",onClick:()=>m(t.path),title:t.path,children:t.label})]},t.path))}),r.jsxs("div",{className:"directory-picker-toolbar",children:[e.parentPath&&r.jsxs("button",{type:"button",className:"btn btn-sm btn-secondary directory-picker-up-btn",onClick:()=>m(e.parentPath),"aria-label":i("dirPicker.parentDir","Go to parent directory"),title:i("dirPicker.parentDirTitle","Parent directory"),children:[r.jsx(S,{size:14}),r.jsx("span",{children:i("dirPicker.up","Up")})]}),r.jsxs("button",{type:"button",className:"btn btn-sm btn-secondary directory-picker-hidden-toggle",onClick:g,"aria-label":e.showHidden?i("dirPicker.hideHiddenAria","Hide hidden directories"):i("dirPicker.showHiddenAria","Show hidden directories"),title:e.showHidden?i("dirPicker.hideHiddenTitle","Hide hidden"):i("dirPicker.showHiddenTitle","Show hidden"),children:[e.showHidden?r.jsx(T,{size:14}):r.jsx(B,{size:14}),r.jsx("span",{children:e.showHidden?i("dirPicker.hideHidden","Hide hidden"):i("dirPicker.showHidden","Show hidden")})]}),r.jsxs("button",{type:"button",className:"btn btn-sm btn-secondary directory-picker-create-folder-toggle",onClick:P,"aria-label":i("dirPicker.createFolderAria","Create new folder"),title:i("dirPicker.createFolderTitle","Create folder"),children:[r.jsx(A,{size:14}),r.jsx("span",{children:i("dirPicker.createFolder","New folder")})]})]}),e.loading?r.jsxs("div",{className:"directory-picker-loading",children:[r.jsx(L,{size:20,className:"animate-spin"}),r.jsx("span",{children:i("dirPicker.loading","Loading…")})]}):e.error?r.jsxs("div",{className:"directory-picker-error",children:[r.jsx(w,{size:16}),r.jsx("span",{children:e.error})]}):r.jsx("div",{className:"directory-picker-entries",children:e.entries.length===0?r.jsx("div",{className:"directory-picker-empty",children:i("dirPicker.noSubdirs","No subdirectories")}):e.entries.map(t=>r.jsxs("button",{type:"button",className:"directory-picker-entry",onClick:()=>m(t.path),role:"treeitem",title:t.path,children:[r.jsx(x,{size:16,className:"directory-picker-entry-icon"}),r.jsx("span",{className:"directory-picker-entry-name",children:t.name}),t.hasChildren&&r.jsx(j,{size:14,className:"directory-picker-entry-arrow"})]},t.path))}),e.createFolderOpen&&r.jsxs("div",{className:"directory-picker-create-folder",children:[r.jsx("input",{type:"text",className:"input directory-picker-create-folder-input",value:l,onChange:t=>h(t.target.value),onKeyDown:H,placeholder:i("dirPicker.newFolderPlaceholder","Folder name"),autoFocus:!0}),r.jsxs("div",{className:"directory-picker-create-folder-actions",children:[r.jsx("button",{type:"button",className:"btn btn-sm btn-primary",onClick:y,disabled:!l.trim()||e.loading||!e.currentPath,children:i("dirPicker.createFolderConfirm","Create")}),r.jsx("button",{type:"button",className:"btn btn-sm btn-secondary",onClick:P,children:i("dirPicker.cancel","Cancel")})]}),e.createFolderError&&r.jsxs("div",{className:"directory-picker-create-folder-error",children:[r.jsx(w,{size:14}),r.jsx("span",{children:e.createFolderError})]})]}),r.jsxs("div",{className:"directory-picker-actions",children:[r.jsx("span",{className:"directory-picker-selected-path",title:e.currentPath,children:e.currentPath}),r.jsx("button",{type:"button",className:"btn btn-primary directory-picker-select-btn",onClick:C,children:i("dirPicker.select","Select")})]})]})]})}export{J as D};
|