@duckcodeailabs/dql-cli 1.13.0 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/apps-api.d.ts +225 -5
  2. package/dist/apps-api.d.ts.map +1 -1
  3. package/dist/apps-api.js +1950 -117
  4. package/dist/apps-api.js.map +1 -1
  5. package/dist/args.d.ts +2 -0
  6. package/dist/args.d.ts.map +1 -1
  7. package/dist/args.js +3 -0
  8. package/dist/args.js.map +1 -1
  9. package/dist/assets/dql-notebook/assets/{AgentLogPage-CBGEoGmU.js → AgentLogPage-BlUE3qsX.js} +1 -1
  10. package/dist/assets/dql-notebook/assets/{AiBuildDialog-CwAD3tXE.js → AiBuildDialog-O88iK6UW.js} +1 -1
  11. package/dist/assets/dql-notebook/assets/AiBuildResult-D-6G4Sh3.js +33 -0
  12. package/dist/assets/dql-notebook/assets/{AiSidePanel-DjB8PWHG.js → AiSidePanel-MRSGtQDV.js} +1 -1
  13. package/dist/assets/dql-notebook/assets/AnalyticsHome-CcRVO6zN.js +6 -0
  14. package/dist/assets/dql-notebook/assets/AppsView-BTkGC-wl.js +5588 -0
  15. package/dist/assets/dql-notebook/assets/BlockStudio-BrTNaDpb.js +55 -0
  16. package/dist/assets/dql-notebook/assets/{BusinessArtifactView-C4SZVNW-.js → BusinessArtifactView-itEIUrYy.js} +1 -1
  17. package/dist/assets/dql-notebook/assets/DbtFirstModelingPage-CbAqOpNc.js +22 -0
  18. package/dist/assets/dql-notebook/assets/{GitPage-BfVD4tVq.js → GitPage-BxOqRYu2.js} +1 -1
  19. package/dist/assets/dql-notebook/assets/GlobalAiRail-Tfkx76CI.js +1 -0
  20. package/dist/assets/dql-notebook/assets/GovernedContextPage-CeaDbepP.js +7 -0
  21. package/dist/assets/dql-notebook/assets/{HelpDocsPage-BDPNVot1.js → HelpDocsPage-D1lAryYv.js} +1 -1
  22. package/dist/assets/dql-notebook/assets/{HomePage-DiOnRhEG.js → HomePage-GB6se6xW.js} +1 -1
  23. package/dist/assets/dql-notebook/assets/{LineageDAG-BiUFX2KL.js → LineageDAG-zCyN-hdg.js} +1 -1
  24. package/dist/assets/dql-notebook/assets/{LineageDetailView-CfbSvlPJ.js → LineageDetailView-Cg0TgG2Y.js} +1 -1
  25. package/dist/assets/dql-notebook/assets/{LineageDrawer-CgTScaGB.js → LineageDrawer-DwMcenDf.js} +1 -1
  26. package/dist/assets/dql-notebook/assets/{LineagePathBreadcrumb-D7ZA7k68.js → LineagePathBreadcrumb-DUZx3ksU.js} +1 -1
  27. package/dist/assets/dql-notebook/assets/{MiniLineageGraph-GkD4y17x.js → MiniLineageGraph-DT_ycl6s.js} +1 -1
  28. package/dist/assets/dql-notebook/assets/{NewBlockModal-B9TfRjt7.js → NewBlockModal-qdhzeJPF.js} +1 -1
  29. package/dist/assets/dql-notebook/assets/{NewNotebookModal-BbO9NKUl.js → NewNotebookModal-BnaDzs1A.js} +1 -1
  30. package/dist/assets/dql-notebook/assets/{NotebookEditor-CuMpvXR9.js → NotebookEditor-CouPFzdo.js} +26 -31
  31. package/dist/assets/dql-notebook/assets/{ReadinessPage-BROJ9YBM.js → ReadinessPage-DB_KbH9Y.js} +1 -1
  32. package/dist/assets/dql-notebook/assets/{SetupOnboarding-BCcZlpuQ.js → SetupOnboarding-CamQq_N2.js} +1 -1
  33. package/dist/assets/dql-notebook/assets/SkillsPage--mYkOAK2.js +10 -0
  34. package/dist/assets/dql-notebook/assets/{TrustBadge-vQQh8d0D.js → TrustBadge-ClEYiYeA.js} +1 -1
  35. package/dist/assets/dql-notebook/assets/UnifiedAgentRunPanel-DBfsmXes.js +88 -0
  36. package/dist/assets/dql-notebook/assets/{answer-to-notebook-DuqCcDDl.js → answer-to-notebook-Cg3UyGwh.js} +1 -1
  37. package/dist/assets/dql-notebook/assets/{arrow-left-CMe1kkOL.js → arrow-left-DnYPGqlr.js} +1 -1
  38. package/dist/assets/dql-notebook/assets/{arrow-right-DvB_DONr.js → arrow-right-Ct_YGrmU.js} +1 -1
  39. package/dist/assets/dql-notebook/assets/{book-open-text-CJ3NAvrs.js → book-open-text-DULlwbj6.js} +1 -1
  40. package/dist/assets/dql-notebook/assets/{circle-x-BCgtha1W.js → circle-x-ByYxoiS9.js} +1 -1
  41. package/dist/assets/dql-notebook/assets/{dagre.esm-GKp7qoUL.js → dagre.esm-BjYSO53F.js} +1 -1
  42. package/dist/assets/dql-notebook/assets/{external-link-C-PXokWV.js → external-link-DprWh9Yf.js} +1 -1
  43. package/dist/assets/dql-notebook/assets/{grip-vertical-B4EHbGXW.js → grip-vertical-CrEEYkXN.js} +1 -1
  44. package/dist/assets/dql-notebook/assets/{index-1mIC_XX4.js → index-9w93YPF9.js} +127 -126
  45. package/dist/assets/dql-notebook/assets/index-B3shyZsg.css +1 -0
  46. package/dist/assets/dql-notebook/assets/{link-2-BLx-goet.js → link-2-BkW-rkEC.js} +1 -1
  47. package/dist/assets/dql-notebook/assets/{list-tree-BRFpEmvV.js → list-tree-BipBLmIE.js} +1 -1
  48. package/dist/assets/dql-notebook/assets/{minimize-2-CDwSCGlO.js → minimize-2-BhXsglrO.js} +1 -1
  49. package/dist/assets/dql-notebook/assets/{panel-right-open-CunA1xO7.js → panel-right-open-BoCSilYB.js} +1 -1
  50. package/dist/assets/dql-notebook/assets/{bot-CV8DYRrt.js → play-mdoZawPu.js} +7 -2
  51. package/dist/assets/dql-notebook/assets/{rotate-ccw-DOrfTZk8.js → rotate-ccw-ELiDRUmj.js} +1 -1
  52. package/dist/assets/dql-notebook/assets/{semantic-fields-AfQvjt5R.js → semantic-fields-DVNRLfeU.js} +1 -1
  53. package/dist/assets/dql-notebook/assets/sliders-horizontal-GeUzpmKz.js +6 -0
  54. package/dist/assets/dql-notebook/assets/{star-DDhv4e8M.js → star-D63O81Wp.js} +1 -1
  55. package/dist/assets/dql-notebook/assets/{triangle-alert-2ZXx8wAu.js → triangle-alert-BWrCxQVE.js} +1 -1
  56. package/dist/assets/dql-notebook/assets/upload-CI-ldXhC.js +6 -0
  57. package/dist/assets/dql-notebook/assets/usePersistedAgentThreadId-Cv7Yq2hK.js +32 -0
  58. package/dist/assets/dql-notebook/assets/{user-round-BA074kiQ.js → user-round-Do21aFGo.js} +1 -1
  59. package/dist/assets/dql-notebook/assets/{wand-sparkles-CEYHLt9b.js → wand-sparkles-DT7u7F_x.js} +1 -1
  60. package/dist/assets/dql-notebook/assets/{workflow-CZtyrcR-.js → workflow-DHh2mMbn.js} +1 -1
  61. package/dist/assets/dql-notebook/assets/{wrench-Ong23-wu.js → wrench-7tYr_GKb.js} +1 -1
  62. package/dist/assets/dql-notebook/assets/{x-CSo1M3tu.js → x-CcYceFMz.js} +1 -1
  63. package/dist/assets/dql-notebook/index.html +2 -2
  64. package/dist/commands/app.d.ts.map +1 -1
  65. package/dist/commands/app.js +65 -133
  66. package/dist/commands/app.js.map +1 -1
  67. package/dist/commands/model.d.ts.map +1 -1
  68. package/dist/commands/model.js +83 -3
  69. package/dist/commands/model.js.map +1 -1
  70. package/dist/index.js +3 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/llm/providers/dql-agent-provider.d.ts +16 -0
  73. package/dist/llm/providers/dql-agent-provider.d.ts.map +1 -1
  74. package/dist/llm/providers/dql-agent-provider.js +65 -2
  75. package/dist/llm/providers/dql-agent-provider.js.map +1 -1
  76. package/dist/local-runtime.d.ts +75 -0
  77. package/dist/local-runtime.d.ts.map +1 -1
  78. package/dist/local-runtime.js +2015 -88
  79. package/dist/local-runtime.js.map +1 -1
  80. package/dist/package.json +10 -10
  81. package/dist/sql-result-filter.d.ts +9 -0
  82. package/dist/sql-result-filter.d.ts.map +1 -1
  83. package/dist/sql-result-filter.js +25 -0
  84. package/dist/sql-result-filter.js.map +1 -1
  85. package/package.json +10 -10
  86. package/dist/assets/dql-notebook/assets/AgentAnswerCard-Cp0eh6zU.js +0 -5
  87. package/dist/assets/dql-notebook/assets/AiBuildResult-CyqTuQe5.js +0 -33
  88. package/dist/assets/dql-notebook/assets/AnalyticsHome-B7BkvA-R.js +0 -6
  89. package/dist/assets/dql-notebook/assets/AppsView-CUrqtEGC.js +0 -4583
  90. package/dist/assets/dql-notebook/assets/BlockStudio-Bl0aGQJR.js +0 -60
  91. package/dist/assets/dql-notebook/assets/DbtFirstModelingPage-B0uxitnx.js +0 -22
  92. package/dist/assets/dql-notebook/assets/GlobalAiRail-DUwdy3fB.js +0 -1
  93. package/dist/assets/dql-notebook/assets/GovernedContextPage-D9f26ZFb.js +0 -7
  94. package/dist/assets/dql-notebook/assets/UnifiedAgentRunPanel-Dj4AXAhT.js +0 -83
  95. package/dist/assets/dql-notebook/assets/chevron-up-HxU1l85K.js +0 -6
  96. package/dist/assets/dql-notebook/assets/index-DKu4CZt3.css +0 -1
  97. package/dist/assets/dql-notebook/assets/maximize-2-CCd5uRIZ.js +0 -6
  98. package/dist/assets/dql-notebook/assets/pencil-D_I14Wyk.js +0 -6
  99. package/dist/assets/dql-notebook/assets/usePersistedAgentThreadId-3rzkZrqc.js +0 -18
@@ -1 +0,0 @@
1
- /*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-lg:16px;--text-2xl:22px;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--shadow-sm:0 1px 2px #0f172a0f, 0 1px 1px #0f172a0a;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg-primary:var(--bg-1);--color-bg-secondary:var(--bg-2);--color-bg-tertiary:var(--bg-3);--color-bg-surface:var(--bg-2);--color-bg-sunken:var(--bg-0);--color-bg-hover:var(--bg-3);--color-bg-active:var(--accent-dim);--color-bg-card:var(--bg-2);--color-bg-toolbar:var(--bg-1);--color-bg-canvas:var(--bg-canvas);--color-bg-overlay:var(--scrim);--color-border-primary:var(--border-default);--color-border-secondary:var(--border-strong);--color-border-subtle:var(--border-subtle);--color-border-strong:var(--border-strong);--color-text-primary:var(--text-primary);--color-text-secondary:var(--text-secondary);--color-text-tertiary:var(--text-tertiary);--color-text-muted:var(--text-muted);--color-text-accent:var(--accent);--color-text-on-accent:var(--accent-fg);--color-accent-blue:var(--accent);--color-accent-blue-soft:var(--accent-dim);--color-accent-green:var(--cat-billing);--color-accent-yellow:var(--pk);--color-accent-purple:var(--cat-users);--color-accent-purple-soft:var(--cat-users-soft);--color-accent-cyan:var(--cat-audit);--color-status-success:var(--status-success);--color-status-warning:var(--status-warning);--color-status-error:var(--status-error);--shadow-focus:0 0 0 2px #3b82f659;--radius-pill:999px;--text-2xs:10px;--text-md:14px;--weight-regular:400;--weight-medium:500;--weight-semibold:600}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box}html{font-size:14px}body{font-family:var(--font-ui);font-size:var(--text-base);font-weight:var(--weight-regular);line-height:var(--leading-normal);letter-spacing:-.005em;background:var(--color-bg-primary);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-feature-settings:"cv01","cv02","cv03","ss01";min-height:100vh;margin:0}[data-theme=light] body,body:not([data-theme]){background:radial-gradient(circle at 0% 0%,#94c8ff24 0%,transparent 28%),radial-gradient(circle at 100% 0%,#b0edff29 0%,transparent 34%),var(--color-bg-primary)}[data-theme=dark] body{background:var(--color-bg-primary)}#root{flex-direction:column;min-height:100vh;display:flex}code,pre,.font-mono{font-feature-settings:"liga" 0,"calt" 1;font-family:JetBrains Mono,SFMono-Regular,Menlo,Monaco,Consolas,monospace}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-secondary);background-clip:padding-box;border:2px solid #0000;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong);background-clip:padding-box;border:2px solid #0000}::selection{color:var(--color-text-primary);background:#3b82f638}:focus-visible{box-shadow:var(--shadow-focus);border-radius:4px;outline:none}button:focus:not(:focus-visible){outline:none}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-8{top:calc(var(--spacing) * 8)}.isolate{isolation:isolate}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.table{display:table}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-bg-primary{background-color:var(--color-bg-primary)}.text-wrap{text-wrap:wrap}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-all{-webkit-user-select:all;user-select:all}}:root{--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-hand:"Caveat", cursive;--font-sketch:"Kalam", "Caveat", cursive;--row-h:26px;--row-fs:12px;--row-px:10px;--card-header-h:32px;--card-width:240px;--card-radius:8px;--ease:cubic-bezier(.2, .8, .2, 1);color-scheme:dark;--bg-0:#0b0d12;--bg-1:#11141b;--bg-2:#161a23;--bg-3:#1c212d;--bg-4:#242938;--bg-canvas:#0b0d12;--bg-grid:#ffffff06;--border-subtle:#1b1f28;--border-default:#232833;--border-strong:#2c3240;--border-focus:#5b8cff;--text-primary:#e6e8ee;--text-secondary:#9aa0ae;--text-tertiary:#626878;--text-muted:#4a5060;--accent:#5b8cff;--accent-hover:#7aa2ff;--accent-dim:#5b8cff24;--accent-fg:#0b0d12;--accent-on:#0b0d12;--bg-hover:#ffffff0b;--color-bg:var(--bg-1);--surface:var(--bg-2);--surface-subtle:var(--bg-0);--surface-hover:var(--bg-3);--surface-elevated:var(--bg-3);--border-color:var(--border-subtle);--status-error:#f87171;--status-error-bg:#f871711a;--status-error-border:#f871714d;--status-warning:#fbbf24;--status-warning-bg:#fbbf241a;--status-warning-border:#fbbf244d;--status-success:#4ade80;--status-success-bg:#4ade801a;--status-success-border:#4ade804d;--status-info:var(--accent);--status-info-bg:var(--accent-dim);--status-info-border:#4f8bff4d;--pk:#e3b341;--fk:#a29bff;--idx:#6fd0bb;--nn:#6e6e73;--nullable:#a29bff;--cat-users:#a29bff;--cat-users-soft:#a29bff1a;--cat-billing:#4ade80;--cat-billing-soft:#4ade801a;--cat-product:#fb923c;--cat-product-soft:#fb923c1a;--cat-system:#a1a1a6;--cat-system-soft:#a1a1a61a;--cat-access:#f472b6;--cat-access-soft:#f472b61a;--cat-audit:#38bdf8;--cat-audit-soft:#38bdf81a;--rel-line:#3a3b40;--rel-line-strong:#6e6e73;--rel-line-active:#ededee;--rel-line-dim:#3a3b4080;--sql-keyword:#9cc7ff;--sql-type:#7fd4bf;--sql-string:#7fd49c;--sql-number:#ffc48c;--sql-function:#e0d89c;--sql-punctuation:#8b8b92;--sql-ident:var(--text-primary);--sql-comment:var(--text-tertiary);--shadow-card:0 1px 0 #ffffff0a inset, 0 8px 24px #00000059;--shadow-pop:0 20px 50px #00000080;--scrim:#00000080;--cell-md:#2fb97a;--cell-sql:#3b8ef0;--cell-chart:#b067f7;--cell-filter:#f26a6a;--cell-pivot:#e5a84d;--cell-table:#5dd1c8;--cell-text:#4a8aef;--cell-chat:#8a8f9b;--cell-single:#b067f7;--cell-kpi:#b067f7;--cell-insight:#ffc857;--cell-callout:#ff7ac6;--cell-goal:#61d095;--cell-compare:#7fd4ff;--cell-heatmap:#f96;--cell-narrative:#ffc857;--cell-inputs:#9aa0ae;--cell-block:#6b8afd}[data-theme=obsidian]{color-scheme:dark}[data-theme=paper]{color-scheme:light;--bg-0:#f3f0ea;--bg-1:#fbfaf7;--bg-2:#fff;--bg-3:#f3f0ea;--bg-4:#e9e6e0;--bg-canvas:#fbfaf7;--bg-grid:#1a1a1a0a;--border-subtle:#f0eee9;--border-default:#e9e6e0;--border-strong:#d9d5cc;--border-focus:#6b5dd3;--text-primary:#1a1a1a;--text-secondary:#4a4a52;--text-tertiary:#8a8d96;--text-muted:#b0b2ba;--accent:#6b5dd3;--accent-hover:#5c4fc2;--accent-dim:#f3f0fb;--accent-fg:#fff;--accent-on:#fff;--bg-hover:#6b5dd30f;--status-error:#c14545;--status-error-bg:#fbf2f2;--status-error-border:#c145454d;--status-warning:#b26b1f;--status-warning-bg:#fdf6e6;--status-warning-border:#b26b1f47;--status-success:#2e8b57;--status-success-bg:#e8f4ee;--status-success-border:#2e8b574d;--status-info:var(--accent);--status-info-bg:var(--accent-dim);--status-info-border:#6b5dd34d;--pk:#b26b1f;--fk:#6b5dd3;--idx:#2e8b57;--nn:#8a8d96;--nullable:#6b5dd3;--cat-users:#6b5dd3;--cat-users-soft:#f3f0fb;--cat-billing:#2e8b57;--cat-billing-soft:#e8f4ee;--cat-product:#f0a04b;--cat-product-soft:#f0a04b24;--cat-system:#4a4a52;--cat-system-soft:#f3f0ea;--cat-access:#c14590;--cat-access-soft:#c145901a;--cat-audit:#4a74c9;--cat-audit-soft:#eef3fc;--rel-line:#e9e6e0;--rel-line-strong:#b0b2ba;--rel-line-active:#6b5dd3;--rel-line-dim:#e9e6e080;--sql-keyword:#6b5dd3;--sql-type:#2e8b57;--sql-string:#b26b1f;--sql-number:#0a6b5e;--sql-function:#f0a04b;--sql-punctuation:#4a4a52;--sql-ident:var(--text-primary);--sql-comment:#8a8d96;--shadow-card:0 1px 2px #00000005;--shadow-pop:0 10px 30px #1a1a1a1f;--scrim:#1a1a1a66;--cell-md:#4a4a52;--cell-sql:#3b8ef0;--cell-chart:#6b5dd3;--cell-filter:#c14545;--cell-pivot:#e5a84d;--cell-table:#5dd1c8;--cell-text:#4a4a52;--cell-chat:#c14590;--cell-single:#6b5dd3;--cell-kpi:#6b5dd3;--cell-insight:#f0a04b;--cell-callout:#c14590;--cell-goal:#2e8b57;--cell-compare:#4a74c9;--cell-heatmap:#f0a04b;--cell-narrative:#f0a04b;--cell-inputs:#d4a14a;--cell-block:#6b5dd3}[data-theme=white]{color-scheme:light;--bg-0:#f5f6f8;--bg-1:#fff;--bg-2:#fff;--bg-3:#eef0f3;--bg-4:#e1e4e9;--bg-canvas:#f7f8fa;--bg-grid:#0f172a0a;--border-subtle:#0f172a14;--border-default:#0f172a24;--border-strong:#0f172a38;--border-focus:#2563eb;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-muted:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-dim:#2563eb1a;--accent-fg:#fff;--accent-on:#fff;--bg-hover:#0f172a0b;--status-error:#dc2626;--status-error-bg:#dc262614;--status-error-border:#dc26264d;--status-warning:#ca8a04;--status-warning-bg:#ca8a041a;--status-warning-border:#ca8a0452;--status-success:#16a34a;--status-success-bg:#16a34a14;--status-success-border:#16a34a4d;--status-info:var(--accent);--status-info-bg:var(--accent-dim);--status-info-border:#2563eb4d;--pk:#ca8a04;--fk:#7c3aed;--idx:#0891b2;--nn:#64748b;--nullable:#7c3aed;--cat-users:#7c3aed;--cat-users-soft:#7c3aed17;--cat-billing:#16a34a;--cat-billing-soft:#16a34a17;--cat-product:#ea580c;--cat-product-soft:#ea580c17;--cat-system:#64748b;--cat-system-soft:#64748b1a;--cat-access:#db2777;--cat-access-soft:#db277717;--cat-audit:#0891b2;--cat-audit-soft:#0891b217;--rel-line:#cbd5e1;--rel-line-strong:#64748b;--rel-line-active:#2563eb;--rel-line-dim:#cbd5e180;--sql-keyword:#1d4ed8;--sql-type:#0891b2;--sql-string:#15803d;--sql-number:#c2410c;--sql-function:#7c3aed;--sql-punctuation:#475569;--sql-ident:var(--text-primary);--sql-comment:#94a3b8;--shadow-card:0 1px 0 #fff inset, 0 1px 2px #0f172a0a, 0 8px 24px #0f172a0f;--shadow-pop:0 20px 50px #0f172a24;--scrim:#0f172a4d;--cell-md:#15803d;--cell-sql:#1d4ed8;--cell-chart:#7c3aed;--cell-filter:#dc2626;--cell-pivot:#ca8a04;--cell-table:#0891b2;--cell-text:#1d4ed8;--cell-chat:#64748b;--cell-single:#7c3aed;--cell-kpi:#7c3aed;--cell-insight:#ca8a04;--cell-callout:#db2777;--cell-goal:#16a34a;--cell-compare:#0891b2;--cell-heatmap:#ea580c;--cell-narrative:#ca8a04;--cell-inputs:#64748b;--cell-block:#2563eb}[data-density=compact]{--row-h:20px;--row-fs:11px;--row-px:8px;--card-header-h:26px;--card-width:210px}[data-density=detailed]{--row-h:32px;--row-fs:13px;--row-px:12px;--card-header-h:38px;--card-width:280px}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-ui);color:var(--text-primary);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input{font:inherit;color:inherit}:focus{outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:2px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted);background-clip:padding-box;border:2px solid #0000}.app{grid-template-rows:44px 36px 1fr 26px;grid-template-columns:260px 1fr var(--right-w,320px);background:var(--bg-0);grid-template-areas:"topbar topbar topbar""tabs tabs tabs""left canvas right""status status status";height:100vh;display:grid}.app.no-right{grid-template-columns:260px 1fr 0}.topbar{background:var(--bg-1);border-bottom:1px solid var(--border-subtle);-webkit-app-region:drag;grid-area:topbar;align-items:center;gap:14px;padding:0 14px;display:flex}.topbar>*{-webkit-app-region:no-drag}.traffic-lights{gap:8px;margin-right:6px;display:flex}.traffic-lights span{background:#3d4150;border-radius:50%;width:12px;height:12px}.traffic-lights span:first-child{background:#ff5f57}.traffic-lights span:nth-child(2){background:#ffbd2e}.traffic-lights span:nth-child(3){background:#28c840}.brand{border-right:1px solid var(--border-subtle);align-items:center;gap:8px;padding-right:14px;font-size:13px;font-weight:600;display:flex}.brand-mark{color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#5b8cff,#7c5cff);border-radius:6px;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.toolbar{flex:1;align-items:center;gap:2px;display:flex}.tool-group{border-right:1px solid var(--border-subtle);align-items:center;gap:2px;height:28px;padding:0 6px;display:flex}.tool-group:last-child{border-right:0}.tool-btn{height:28px;color:var(--text-secondary);transition:all .12s var(--ease);border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.tool-btn:hover{background:var(--bg-3);color:var(--text-primary)}.tool-btn.active{background:var(--bg-3);color:var(--accent)}.tool-btn svg{flex-shrink:0;width:14px;height:14px}.tool-btn:disabled{cursor:not-allowed}.view-switcher{background:var(--bg-2);border:1px solid var(--border-default);border-radius:7px;align-items:center;gap:2px;height:28px;padding:2px;display:inline-flex}.view-seg{height:22px;color:var(--text-secondary);cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease);white-space:nowrap;background:0 0;border:0;border-radius:5px;align-items:center;gap:6px;padding:0 10px;font-size:11.5px;font-weight:500;display:inline-flex}.view-seg svg{flex-shrink:0;width:13px;height:13px}.view-seg:hover{color:var(--text-primary)}.view-seg.active{background:var(--accent-dim);color:var(--accent)}.chrome-popover{z-index:60;background:var(--bg-2);border:1px solid var(--border-strong);box-shadow:var(--shadow-pop);border-radius:10px;position:absolute;overflow:hidden}.chrome-popover-header{border-bottom:1px solid var(--border-subtle);letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:8px;padding:10px 12px 8px;font-size:10.5px;font-weight:600;display:flex}.chrome-popover-header .spacer{flex:1}.chrome-popover-body{max-height:360px;padding:6px;overflow:auto}.chrome-popover-row{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;transition:background .12s var(--ease);background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12px;display:flex}.chrome-popover-row:hover{background:var(--bg-3)}.chrome-popover-row .meta{color:var(--text-tertiary);font-size:10.5px;font-family:var(--font-mono);flex-shrink:0;margin-left:auto}.chrome-popover-row.danger{color:#ef4444}.chrome-popover-divider{background:var(--border-subtle);height:1px;margin:4px 6px}.bell-btn{position:relative}.bell-btn .unread-dot{background:var(--accent);border:1.5px solid var(--bg-1);border-radius:4px;width:7px;height:7px;position:absolute;top:4px;right:4px}.shell-view{background:var(--bg-0);border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);flex-direction:column;grid-area:canvas;min-width:0;display:flex;overflow:hidden}.shell-view .panel-frame{flex:1;min-height:0}.shell-view-density-toggle{border:1px solid var(--border-default);background:var(--bg-1);border-radius:6px;display:inline-flex;overflow:hidden}.shell-view-density-toggle button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:5px 10px;font-size:11px;font-weight:500}.shell-view-density-toggle button.active{background:var(--accent-dim);color:var(--accent)}.shell-view-table-wrap{border:1px solid var(--border-default);background:var(--bg-1);border-radius:8px;max-height:100%;overflow:auto}.shell-view-table-wrap .panel-table{border:none;border-radius:0}.shell-view-table-wrap .panel-table tbody tr{cursor:pointer}.shell-view-table-wrap .panel-table tbody tr.active{background:var(--accent-dim);box-shadow:inset 2px 0 0 var(--accent)}.shell-view-checkbox{width:13px;height:13px;accent-color:var(--accent);cursor:pointer}.shell-view-bulkbar{background:var(--accent-dim);border:1px solid var(--accent);color:var(--text-primary);border-radius:8px;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-size:11.5px;display:flex}.shell-view-bulkbar .spacer{flex:1}.user-chip-btn{border:1px solid var(--border-default);color:var(--text-primary);cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease);background:0 0;border-radius:20px;align-items:center;gap:8px;padding:3px 10px 3px 3px;font-size:12px;display:flex}.user-chip-btn:hover{background:var(--bg-2);border-color:var(--border-strong)}.search-launcher{background:var(--bg-2);border:1px solid var(--border-default);height:30px;color:var(--text-tertiary);cursor:pointer;min-width:260px;transition:border-color .14s var(--ease),background .14s var(--ease),box-shadow .14s var(--ease),color .14s var(--ease);border-radius:8px;align-items:center;gap:8px;padding:0 8px 0 10px;font-size:12px;display:flex}.search-launcher:hover{border-color:var(--accent);color:var(--text-secondary);background:var(--bg-1)}.search-launcher:focus-visible,.search-launcher:active{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim);color:var(--text-primary);outline:none}.search-launcher .search-launcher-icon{color:var(--text-tertiary);justify-content:center;align-items:center;display:inline-flex}.search-launcher:hover .search-launcher-icon,.search-launcher:focus-visible .search-launcher-icon{color:var(--accent)}.search-launcher .search-launcher-text{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.search-launcher svg{width:13px;height:13px}.kbd{background:var(--bg-3);border:1px solid var(--border-default);font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:.04em;border-radius:4px;align-items:center;gap:2px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:600;display:inline-flex}.search-launcher:hover .kbd{border-color:var(--accent);color:var(--accent)}.user-chip{border:1px solid var(--border-default);border-radius:20px;align-items:center;gap:8px;padding:3px 10px 3px 3px;font-size:12px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#ec4899,#f59e0b);border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:700;display:grid}.tabs{background:var(--bg-1);border-bottom:1px solid var(--border-subtle);grid-area:tabs;align-items:flex-end;gap:2px;padding:0 10px;display:flex;overflow-x:auto}.tab{height:30px;color:var(--text-tertiary);transition:color .12s var(--ease);background:0 0;border-radius:6px 6px 0 0;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:inline-flex;position:relative}.tab:hover{color:var(--text-secondary)}.tab.active{background:var(--bg-2);color:var(--text-primary)}.tab.active:after{content:"";background:var(--bg-2);height:1px;position:absolute;bottom:-1px;left:0;right:0}.tab-dot{opacity:.7;background:currentColor;border-radius:50%;width:8px;height:8px}.tab.unsaved .tab-close:before{content:"●";font-size:10px}.tab-close{width:16px;height:16px;color:var(--text-muted);border-radius:4px;place-items:center;font-size:14px;line-height:1;display:grid}.tab-close:hover{background:var(--bg-3);color:var(--text-primary)}.tabs-spacer{flex:1}.tab-action{height:28px;color:var(--text-tertiary);border-radius:6px;align-items:center;gap:6px;padding:0 8px;font-size:12px;display:inline-flex}.tab-action:hover{background:var(--bg-2);color:var(--text-primary)}.tab-action svg{width:12px;height:12px}.left{background:var(--bg-1);border-right:1px solid var(--border-subtle);flex-direction:column;grid-area:left;display:flex;overflow:hidden}.left-tabs{border-bottom:1px solid var(--border-subtle);gap:2px;padding:6px 6px 0;display:flex}.left-tab{letter-spacing:.04em;text-transform:uppercase;height:30px;color:var(--text-tertiary);transition:color .12s var(--ease);border-radius:6px 6px 0 0;flex:1;place-items:center;font-size:11px;font-weight:500;display:grid;position:relative}.left-tab:hover{color:var(--text-secondary)}.left-tab.active{color:var(--text-primary)}.left-tab.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10%;right:10%}.left-search{gap:6px;padding:10px 10px 6px;display:flex}.search-field{background:var(--bg-2);border:1px solid var(--border-default);border-radius:6px;flex:1;align-items:center;gap:6px;height:28px;padding:0 8px;display:flex}.search-field:focus-within{border-color:var(--accent);background:var(--bg-0)}.search-field svg{width:12px;height:12px;color:var(--text-tertiary);flex-shrink:0}.search-field input{color:var(--text-primary);background:0 0;border:0;flex:1;font-size:12px}.search-field input::placeholder{color:var(--text-tertiary)}.icon-btn{width:28px;height:28px;color:var(--text-tertiary);transition:all .12s var(--ease);border-radius:6px;place-items:center;display:grid}.icon-btn:hover{background:var(--bg-3);color:var(--text-primary)}.icon-btn svg{width:14px;height:14px}.tree{flex:1;padding:2px 4px 20px;overflow-y:auto}.tree-section{margin-top:2px}.tree-section-header{letter-spacing:.08em;text-transform:uppercase;height:24px;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:4px;padding:0 6px;font-size:10px;font-weight:600;display:flex}.tree-section-header:hover{color:var(--text-secondary)}.tree-section-header .count{color:var(--text-muted);font-weight:500}.tree-caret{width:10px;height:10px;transition:transform .15s var(--ease);flex-shrink:0}.tree-section.collapsed .tree-caret{transform:rotate(-90deg)}.tree-section.collapsed .tree-items{display:none}.tree-section-header .add{width:18px;height:18px;color:var(--text-muted);opacity:0;border-radius:4px;place-items:center;margin-left:auto;display:grid}.tree-section-header:hover .add{opacity:1}.tree-section-header .add:hover{background:var(--bg-3);color:var(--text-primary)}.tree-item{height:26px;color:var(--text-secondary);cursor:pointer;transition:background .12s var(--ease);-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:8px;padding:0 6px 0 22px;font-size:12px;display:flex;position:relative}.tree-item:hover{background:var(--bg-2);color:var(--text-primary)}.tree-item.active{background:var(--accent-dim);color:var(--text-primary)}.tree-item.active:before{content:"";background:var(--accent);border-radius:2px;width:2px;position:absolute;top:4px;bottom:4px;left:0}.tree-icon{width:14px;height:14px;color:var(--text-tertiary);flex-shrink:0}.tree-item.active .tree-icon{color:var(--accent)}.tree-item .badge{color:var(--text-muted);font-size:10px;font-family:var(--font-mono);margin-left:auto}.tree-item .swatch{border-radius:2px;width:8px;height:8px}.canvas-wrap{background:var(--bg-canvas);grid-area:canvas;position:relative;overflow:hidden}.canvas-grid{background-image:radial-gradient(circle at 1px 1px,var(--bg-grid) 1px,transparent 0);pointer-events:none;background-size:24px 24px;position:absolute;top:0;right:0;bottom:0;left:0}.canvas-chrome{pointer-events:none;z-index:10;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;top:12px;left:12px;right:12px}.canvas-title{pointer-events:auto;background:var(--bg-1);flex-direction:column;gap:2px;padding:10px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.canvas-title{background:color-mix(in srgb,var(--bg-1) 85%,transparent)}}.canvas-title{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-default);border-radius:10px}.canvas-title h1{letter-spacing:-.01em;font-size:15px;font-weight:600}.canvas-title p{color:var(--text-tertiary);align-items:center;gap:6px;font-size:11px;display:flex}.canvas-title .dot{background:var(--text-muted);border-radius:50%;width:3px;height:3px}.canvas-title .engine{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-secondary);font-size:10px}.canvas-actions{pointer-events:auto;gap:6px;display:flex}.canvas-btn{background:var(--bg-1);align-items:center;gap:6px;height:30px;padding:0 10px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.canvas-btn{background:color-mix(in srgb,var(--bg-1) 85%,transparent)}}.canvas-btn{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-default);color:var(--text-secondary);transition:all .12s var(--ease);border-radius:8px;font-size:12px}.canvas-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.canvas-btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.canvas-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.canvas-btn svg{width:13px;height:13px}.minimap{background:var(--bg-1);width:180px;height:120px;position:absolute;bottom:46px;right:12px}@supports (color:color-mix(in lab,red,red)){.minimap{background:color-mix(in srgb,var(--bg-1) 90%,transparent)}}.minimap{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-default);z-index:10;border-radius:8px;padding:6px}.minimap-title{color:var(--text-tertiary);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;padding:0 2px;font-size:10px}.minimap-canvas{background:var(--bg-0);border-radius:4px;width:100%;height:calc(100% - 14px);position:relative;overflow:hidden}.minimap-canvas .mm-table{border-radius:1px;position:absolute}.minimap-canvas .mm-viewport{border:1px solid var(--accent);background:var(--accent-dim);pointer-events:none;border-radius:2px;position:absolute}.zoom-bar{background:var(--bg-1);align-items:center;display:flex;position:absolute;bottom:12px;right:12px}@supports (color:color-mix(in lab,red,red)){.zoom-bar{background:color-mix(in srgb,var(--bg-1) 90%,transparent)}}.zoom-bar{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-default);z-index:10;border-radius:8px;height:30px;overflow:hidden}.zoom-btn{width:30px;height:30px;color:var(--text-secondary);place-items:center;display:grid}.zoom-btn:hover{background:var(--bg-3);color:var(--text-primary)}.zoom-level{font-size:11px;font-family:var(--font-mono);color:var(--text-secondary);border-left:1px solid var(--border-subtle);border-right:1px solid var(--border-subtle);place-items:center;min-width:48px;height:100%;padding:0 8px;display:grid}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto}.canvas-inner,.canvas-stage{position:relative}.subject-area{background:var(--text-primary);border:1.5px dashed;border-radius:16px;position:absolute}@supports (color:color-mix(in lab,red,red)){.subject-area{background:color-mix(in srgb,var(--text-primary) 2%,transparent)}}.subject-area{pointer-events:none}.subject-area-label{letter-spacing:.08em;text-transform:uppercase;background:var(--bg-canvas);border-radius:4px;padding:2px 10px;font-size:10px;font-weight:600;position:absolute;top:-11px;left:18px}.table-card{width:var(--card-width);background:var(--bg-2);border:1px solid var(--border-default);border-radius:var(--card-radius);box-shadow:var(--shadow-card);cursor:grab;transition:box-shadow .15s var(--ease),border-color .12s var(--ease),transform .15s var(--ease);-webkit-user-select:none;user-select:none;position:absolute;overflow:hidden}.table-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-pop)}.table-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 0 4px var(--accent-dim),var(--shadow-pop)}.tc-header{height:var(--card-header-h);padding:0 var(--row-px);background:var(--cat-soft,var(--bg-3));border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;display:flex;position:relative}.tc-header:before{content:"";background:var(--cat,var(--cat-system));width:3px;position:absolute;top:0;bottom:0;left:0}.tc-icon{width:14px;height:14px;color:var(--cat,var(--cat-system));flex-shrink:0}.tc-name{font-size:var(--row-fs);letter-spacing:-.005em;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.tc-schema{color:var(--text-tertiary);font-size:10px;font-family:var(--font-mono)}.tc-badges{align-items:center;gap:4px;display:flex}.tc-badge{letter-spacing:.04em;height:16px;font-size:9px;font-weight:600;font-family:var(--font-mono);color:var(--text-secondary);background:var(--bg-3);border-radius:3px;align-items:center;padding:0 5px;display:inline-flex}.tc-rows{flex-direction:column;display:flex}.tc-row{height:var(--row-h);padding:0 var(--row-px);font-size:var(--row-fs);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);transition:background .12s var(--ease);grid-template-columns:14px 1fr auto auto;align-items:center;gap:8px;display:grid}.tc-row:last-child{border-bottom:0}.tc-row:hover{background:var(--bg-3);color:var(--text-primary)}.tc-row.pk{color:var(--text-primary);font-weight:500}.tc-key{cursor:crosshair;width:14px;height:14px;transition:background .12s var(--ease);border-radius:3px;place-items:center;display:grid}.tc-key:hover{background:var(--bg-3)}.tc-key svg{width:11px;height:11px}.tc-key.pk{color:var(--pk)}.tc-key.fk{color:var(--fk)}.tc-key.idx{color:var(--idx)}.tc-col{font-family:var(--font-mono);font-size:calc(var(--row-fs) - .5px);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tc-type{font-family:var(--font-mono);font-size:calc(var(--row-fs) - 1px);color:var(--text-tertiary)}.tc-nn{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);text-align:right;min-width:16px;font-size:9px;font-weight:600}.tc-nn.required{color:var(--text-secondary)}.tc-footer{padding:4px var(--row-px);color:var(--text-muted);background:var(--bg-1);border-top:1px solid var(--border-subtle);font-size:10px;font-family:var(--font-mono);justify-content:space-between;align-items:center;display:flex}.right{background:var(--bg-1);border-left:1px solid var(--border-subtle);flex-direction:column;grid-area:right;display:flex;position:relative;overflow:hidden}.right-resize{cursor:ew-resize;z-index:5;width:5px;transition:background .12s var(--ease);background:0 0;position:absolute;top:0;bottom:0;left:-2px}.right-resize:hover,.right-resize.dragging{background:var(--accent-dim)}.right-resize:after{content:"";width:1px;transition:background .12s var(--ease);background:0 0;position:absolute;top:0;bottom:0;left:2px}.right-resize:hover:after,.right-resize.dragging:after{background:var(--accent)}.inspector-tabs{background:var(--bg-2);border:1px solid var(--border-default);border-radius:7px;gap:2px;padding:2px;display:inline-flex}.inspector-tab{color:var(--text-secondary);cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease);white-space:nowrap;background:0 0;border:0;border-radius:5px;padding:4px 10px;font-size:11px;font-weight:500}.inspector-tab:hover{color:var(--text-primary)}.inspector-tab.active{background:var(--accent-dim);color:var(--accent)}.inspector-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.inspector-inline-form{background:var(--bg-0);border:1px dashed var(--border-default);border-radius:6px;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:10px;padding:10px;display:grid}.inspector-inline-form .full{grid-column:1/-1}.inspector-action-picker{background:var(--bg-2);border:1px solid var(--border-default);border-radius:6px;flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.inspector-action-picker button{color:var(--text-secondary);font-size:10.5px;font-weight:500;font-family:var(--font-mono);letter-spacing:.03em;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:5px;padding:3px 8px;display:inline-flex}.inspector-action-picker button .swatch{border-radius:2px;width:7px;height:7px;display:inline-block}.inspector-action-picker button:hover{color:var(--text-primary)}.inspector-action-picker button.active{background:var(--accent-dim);color:var(--accent)}.inspector-sql-pre{font-family:var(--font-mono);color:var(--sql-ident,var(--text-primary));background:var(--bg-0);border:1px solid var(--border-default);white-space:pre;border-radius:8px;max-height:440px;margin:0;padding:12px;font-size:11.5px;line-height:1.55;overflow:auto}.inspector-sql-pre .sql-kw{color:var(--sql-keyword);font-weight:600}.inspector-sql-pre .sql-type{color:var(--sql-type)}.inspector-sql-pre .sql-str{color:var(--sql-string)}.inspector-sql-pre .sql-num{color:var(--sql-number)}.inspector-sql-pre .sql-fn{color:var(--sql-function)}.inspector-sql-pre .sql-punct{color:var(--sql-punctuation)}.inspector-sql-pre .sql-comment{color:var(--sql-comment);font-style:italic}.insp-header{border-bottom:1px solid var(--border-subtle);padding:14px 16px 10px}.insp-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);align-items:center;gap:6px;margin-bottom:4px;font-size:10px;font-weight:600;display:flex}.insp-eyebrow .pill{background:var(--cat-users-soft);color:var(--cat-users);letter-spacing:.06em;border-radius:3px;padding:1px 6px;font-size:9px}.insp-title{align-items:center;gap:10px;margin-bottom:8px;display:flex}.insp-title h2{letter-spacing:-.015em;font-size:17px;font-weight:600;font-family:var(--font-mono)}.insp-title .copy-btn{width:22px;height:22px;color:var(--text-muted);border-radius:4px;place-items:center;display:grid}.insp-title .copy-btn:hover{background:var(--bg-3);color:var(--text-primary)}.insp-sub{color:var(--text-tertiary);font-size:12px;line-height:1.5}.insp-tabs{border-bottom:1px solid var(--border-subtle);background:var(--bg-1);gap:2px;padding:0 10px;display:flex}.insp-tab{height:34px;color:var(--text-tertiary);padding:0 10px;font-size:12px;position:relative}.insp-tab:hover{color:var(--text-secondary)}.insp-tab.active{color:var(--text-primary)}.insp-tab.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.insp-body{flex:1;padding:14px 16px 20px;overflow-y:auto}.insp-section{margin-bottom:18px}.insp-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:10px;font-weight:600;display:flex}.insp-section-title .count{color:var(--text-muted);font-family:var(--font-mono)}.field{margin-bottom:10px}.field-row{grid-template-columns:90px 1fr;align-items:center;gap:8px;min-height:28px;display:grid}.field-label{color:var(--text-tertiary);font-size:11px}.field-input{background:var(--bg-2);border:1px solid var(--border-default);height:28px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);width:100%;transition:border-color .12s var(--ease);border-radius:5px;padding:0 8px}.field-input:focus{border-color:var(--accent);background:var(--bg-0)}.field-input.readonly{color:var(--text-secondary);background:var(--bg-1)}.field-select{background:var(--bg-2);border:1px solid var(--border-default);height:28px;color:var(--text-primary);font-size:12px;font-family:var(--font-mono);-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M2 4l3 3 3-3' stroke='%239aa3b4' fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:5px;width:100%;padding:0 24px 0 8px}.field-flags{flex-wrap:wrap;gap:6px;display:flex}.flag{background:var(--bg-2);border:1px solid var(--border-default);height:24px;color:var(--text-secondary);font-size:11px;font-family:var(--font-mono);cursor:pointer;transition:all .12s var(--ease);border-radius:5px;align-items:center;gap:5px;padding:0 8px;display:inline-flex}.flag:hover{border-color:var(--border-strong)}.flag.on{background:var(--accent-dim);border-color:var(--accent);color:var(--text-primary)}.flag .check{border:1px solid var(--text-muted);border-radius:3px;place-items:center;width:12px;height:12px;display:grid}.flag.on .check{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.flag.on .check svg{width:8px;height:8px}.col-list{background:var(--bg-2);border:1px solid var(--border-default);border-radius:6px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.col-item{color:var(--text-secondary);background:var(--bg-2);cursor:pointer;transition:background .12s var(--ease);grid-template-columns:14px 1fr auto;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:grid}.col-item:hover{background:var(--bg-3);color:var(--text-primary)}.col-item.active{background:var(--accent-dim);color:var(--text-primary)}.col-item-key{place-items:center;display:grid}.col-item-key svg{width:11px;height:11px}.col-item-key.pk{color:var(--pk)}.col-item-key.fk{color:var(--fk)}.col-item-name{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.col-item-type{font-family:var(--font-mono);color:var(--text-tertiary);font-size:10px}.rel-card{background:var(--bg-2);border:1px solid var(--border-default);border-radius:6px;margin-bottom:6px;padding:10px;font-size:12px}.rel-card .rel-title{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.rel-card .rel-cardinality{font-family:var(--font-mono);color:var(--text-tertiary);background:var(--bg-3);border-radius:3px;padding:1px 5px;font-size:10px}.rel-card .rel-sub{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.sql-preview{background:var(--bg-0);border:1px solid var(--border-default);font-family:var(--font-mono);color:var(--sql-ident,var(--text-primary));white-space:pre;border-radius:6px;padding:10px 12px;font-size:11px;line-height:1.6;overflow-x:auto}.sql-kw{color:var(--sql-keyword);font-weight:600}.sql-type{color:var(--sql-type)}.sql-str{color:var(--sql-string)}.sql-num{color:var(--sql-number)}.sql-fn{color:var(--sql-function)}.sql-punct{color:var(--sql-punctuation)}.sql-comment{color:var(--sql-comment);font-style:italic}.status{background:var(--bg-1);border-top:1px solid var(--border-subtle);color:var(--text-tertiary);grid-area:status;align-items:center;gap:14px;padding:0 12px;font-size:11px;display:flex}.status-item{align-items:center;gap:6px;display:flex}.status-item .dot{background:#10b981;border-radius:50%;width:6px;height:6px}.status-item.warn .dot{background:#f59e0b}.status-item .k{font-family:var(--font-mono);color:var(--text-tertiary)}.status-spacer{flex:1}.density-toggle{background:var(--bg-2);border:1px solid var(--border-default);border-radius:5px;height:20px;display:flex;overflow:hidden}.density-toggle button{color:var(--text-tertiary);letter-spacing:.04em;text-transform:uppercase;transition:all .12s var(--ease);padding:0 8px;font-size:10px}.density-toggle button:hover{color:var(--text-primary)}.density-toggle button.active{background:var(--accent);color:var(--accent-fg)}.cmd-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(4px);z-index:100;animation:fadeIn .12s var(--ease);place-items:start center;padding-top:14vh;display:grid;position:fixed;top:0;right:0;bottom:0;left:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cmd{background:var(--bg-2);border:1px solid var(--border-strong);width:640px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-pop);animation:popIn .18s var(--ease);border-radius:12px;overflow:hidden}@keyframes popIn{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.cmd-input-wrap{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd-input-wrap svg{width:16px;height:16px;color:var(--text-tertiary)}.cmd-input{color:var(--text-primary);background:0 0;border:0;flex:1;font-size:15px}.cmd-input::placeholder{color:var(--text-tertiary)}.cmd-list{max-height:380px;padding:6px;overflow-y:auto}.cmd-section{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);padding:8px 10px 4px;font-size:10px;font-weight:600}.cmd-item{color:var(--text-secondary);cursor:pointer;border-radius:6px;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:grid}.cmd-item:hover,.cmd-item.selected{background:var(--bg-3);color:var(--text-primary)}.cmd-item .cmd-icon{width:16px;height:16px;color:var(--text-tertiary);place-items:center;display:grid}.cmd-item.selected .cmd-icon{color:var(--accent)}.cmd-item .cmd-meta{color:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.cmd-footer{border-top:1px solid var(--border-subtle);background:var(--bg-1);color:var(--text-tertiary);align-items:center;gap:14px;padding:8px 16px;font-size:11px;display:flex}.cmd-footer .hint{align-items:center;gap:4px;display:flex}.rel-svg{pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0}.rel-line{fill:none;stroke:var(--rel-line);stroke-width:1.25px;transition:stroke .15s var(--ease),stroke-width .15s var(--ease)}.rel-line.strong{stroke:var(--rel-line-strong)}.rel-glyph{stroke:var(--rel-line-strong);stroke-width:1.25px;fill:none;stroke-width:1.6px}.rel-glyph.dimmed,.rel-line.dimmed{stroke:var(--rel-line-dim)}.rel-line.active{stroke:var(--rel-line-active);stroke-width:2px}.rel-label{font-family:var(--font-mono);fill:var(--text-secondary);paint-order:stroke;stroke:var(--bg-canvas);stroke-width:3.5px;stroke-linejoin:round;font-size:9.5px;font-weight:600}.rel-label.active{fill:var(--rel-line-active)}.rel-label.dimmed{fill:var(--text-muted);opacity:.5;stroke-width:2px}.tooltip{background:var(--bg-4);border:1px solid var(--border-default);color:var(--text-primary);pointer-events:none;z-index:200;box-shadow:var(--shadow-pop);font-size:11px;font-family:var(--font-mono);white-space:nowrap;border-radius:5px;padding:5px 8px;position:fixed}.table-card.cat-users{--cat:var(--cat-users);--cat-soft:var(--cat-users-soft)}.table-card.cat-billing{--cat:var(--cat-billing);--cat-soft:var(--cat-billing-soft)}.table-card.cat-product{--cat:var(--cat-product);--cat-soft:var(--cat-product-soft)}.table-card.cat-system{--cat:var(--cat-system);--cat-soft:var(--cat-system-soft)}.table-card.cat-access{--cat:var(--cat-access);--cat-soft:var(--cat-access-soft)}.table-card.cat-audit{--cat:var(--cat-audit);--cat-soft:var(--cat-audit-soft)}.subject-area.cat-users{border-color:var(--cat-users)}@supports (color:color-mix(in lab,red,red)){.subject-area.cat-users{border-color:color-mix(in srgb,var(--cat-users) 35%,transparent)}}.subject-area.cat-users .subject-area-label{color:var(--cat-users)}.subject-area.cat-billing{border-color:var(--cat-billing)}@supports (color:color-mix(in lab,red,red)){.subject-area.cat-billing{border-color:color-mix(in srgb,var(--cat-billing) 35%,transparent)}}.subject-area.cat-billing .subject-area-label{color:var(--cat-billing)}.subject-area.cat-product{border-color:var(--cat-product)}@supports (color:color-mix(in lab,red,red)){.subject-area.cat-product{border-color:color-mix(in srgb,var(--cat-product) 35%,transparent)}}.subject-area.cat-product .subject-area-label{color:var(--cat-product)}.subject-area.cat-audit{border-color:var(--cat-audit)}@supports (color:color-mix(in lab,red,red)){.subject-area.cat-audit{border-color:color-mix(in srgb,var(--cat-audit) 35%,transparent)}}.subject-area.cat-audit .subject-area-label{color:var(--cat-audit)}n .tc-colflags{align-items:center;gap:3px;display:flex}.tc-cf{width:12px;height:12px;color:var(--text-muted);opacity:.7;place-items:center;display:inline-grid}.tc-cf:hover{opacity:1;color:var(--text-secondary)}.tc-cf-uq{color:var(--fk)}.tc-cf-ck{color:var(--idx)}.tc-cf-df{color:var(--cat-product)}.tc-cf-gn{color:var(--cat-access)}.table-card.junction{border-style:dashed}.tc-badge.junction{background:var(--cat-access-soft);color:var(--cat-access)}.tc-badge.part{background:var(--cat-audit-soft);color:var(--cat-audit)}.tc-badge.enum{background:var(--cat-system-soft);color:var(--cat-system)}.rel-line.identifying{stroke-width:1.75px}.rel-glyph{stroke:var(--rel-line);stroke-width:1.25px;fill:none;transition:stroke .12s var(--ease)}.rel-glyph.active{stroke:var(--accent);stroke-width:1.6px}.legend-toggle{z-index:10;background:var(--bg-1);align-items:center;gap:6px;height:30px;padding:0 10px;display:inline-flex;position:absolute;bottom:12px;left:12px}@supports (color:color-mix(in lab,red,red)){.legend-toggle{background:color-mix(in srgb,var(--bg-1) 85%,transparent)}}.legend-toggle{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:8px;font-size:12px}.legend-toggle:hover{color:var(--text-primary);border-color:var(--border-strong)}.legend{z-index:11;background:var(--bg-1);width:280px;max-height:calc(100% - 100px);position:absolute;bottom:12px;left:12px}@supports (color:color-mix(in lab,red,red)){.legend{background:color-mix(in srgb,var(--bg-1) 92%,transparent)}}.legend{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-strong);box-shadow:var(--shadow-pop);border-radius:10px;padding:10px 12px 14px;overflow-y:auto}.legend-head{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.legend-section{margin-top:12px}.legend-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);border-bottom:1px solid var(--border-subtle);margin-bottom:6px;padding-bottom:4px;font-size:10px;font-weight:600}.legend-row{color:var(--text-secondary);grid-template-columns:48px 1fr auto;align-items:center;gap:8px;padding:4px 0;font-size:11px;display:grid}.legend-gly{color:var(--text-secondary);place-items:center;display:grid}.legend-sub{font-family:var(--font-mono);color:var(--text-muted);font-size:10px}.rel-insp-kind{background:var(--accent-dim);border:1px solid var(--accent);font-family:var(--font-mono);color:var(--text-primary);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:inline-flex}.rel-route{background:var(--bg-2);border:1px solid var(--border-default);font-family:var(--font-mono);border-radius:6px;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:10px;font-size:12px;display:grid}.rel-route-col{flex-direction:column;gap:3px;display:flex}.rel-route-table{color:var(--text-primary);font-weight:600}.rel-route-field{color:var(--text-tertiary);font-size:11px}.rel-route-card{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:10px}.rel-route-arrow{color:var(--text-tertiary)}.action-picker{flex-wrap:wrap;gap:6px;display:flex}.action-picker .action{background:var(--bg-2);border:1px solid var(--border-default);font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;border-radius:5px;align-items:center;gap:5px;padding:5px 8px;font-size:11px;display:inline-flex}.action-picker .action.on{background:var(--accent-dim);border-color:var(--accent);color:var(--text-primary)}.action-picker .action .dot{border-radius:50%;width:7px;height:7px}.panel-frame{background:var(--bg-1);height:100%;min-height:0;color:var(--text-primary);flex-direction:column;display:flex}.panel-frame-header{border-bottom:1px solid var(--border-default);background:var(--bg-2);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:8px 16px;padding:12px 16px;display:flex}.panel-frame-heading{flex:auto;align-items:flex-start;gap:10px;min-width:0;display:flex}.panel-frame-icon{background:var(--accent-dim);width:26px;height:26px;color:var(--accent);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.panel-frame-icon svg{width:14px;height:14px}.panel-frame-title-col{flex-direction:column;gap:2px;min-width:0;display:flex}.panel-frame-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:600}.panel-frame-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-frame-title{color:var(--text-primary);margin:0;font-size:13px;font-weight:600;line-height:1.2}.panel-frame-status{align-items:center;display:inline-flex}.panel-frame-subtitle{color:var(--text-tertiary);margin-top:2px;font-size:11px}.panel-frame-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:flex}.panel-frame-toolbar{border-bottom:1px solid var(--border-default);background:var(--bg-1);flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex}.panel-frame-body{flex:1;min-height:0;overflow:auto}.panel-section{margin-bottom:16px}.panel-section:last-child{margin-bottom:0}.panel-section-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.panel-section-title-wrap{align-items:center;gap:8px;min-width:0;display:flex}.panel-section-icon{color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.panel-section-icon svg{width:12px;height:12px}.panel-section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin:0;font-size:10.5px;font-weight:600;line-height:1.2}.panel-section-count{background:var(--bg-3);min-width:18px;height:16px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex}.panel-section-action{align-items:center;gap:6px;display:flex}.panel-section-desc{color:var(--text-tertiary);margin:0 0 8px;font-size:11.5px}.panel-section-body.padded{padding:0}.panel-card{background:var(--bg-2);border:1px solid var(--border-default);border-left:3px solid var(--border-default);transition:background .12s var(--ease),border-color .12s var(--ease);border-radius:8px;padding:12px 14px}.panel-card.dense{padding:8px 10px}.panel-card+.panel-card{margin-top:8px}.panel-card-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;display:flex}.panel-card-heading{align-items:flex-start;gap:10px;min-width:0;display:flex}.panel-card-icon{background:var(--bg-3);width:22px;height:22px;color:var(--text-secondary);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.panel-card-icon svg{width:12px;height:12px}.panel-card-title-col{flex-direction:column;gap:1px;min-width:0;display:flex}.panel-card-eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--text-tertiary);font-size:9.5px;font-weight:600}.panel-card-title{color:var(--text-primary);font-size:12.5px;font-weight:600;line-height:1.3}.panel-card-subtitle{color:var(--text-tertiary);font-size:11px}.panel-card-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.panel-card-body{color:var(--text-secondary);font-size:12px}.panel-card.tone-neutral{border-left-color:var(--border-strong)}.panel-card.tone-accent{border-left-color:var(--accent);background:linear-gradient(to right,var(--accent-dim),var(--bg-2) 90px)}.panel-card.tone-info{border-left-color:var(--status-info);background:linear-gradient(to right,var(--status-info-bg),var(--bg-2) 90px)}.panel-card.tone-success{border-left-color:var(--status-success);background:linear-gradient(to right,var(--status-success-bg),var(--bg-2) 90px)}.panel-card.tone-warning{border-left-color:var(--status-warning);background:linear-gradient(to right,var(--status-warning-bg),var(--bg-2) 90px)}.panel-card.tone-error{border-left-color:var(--status-error);background:linear-gradient(to right,var(--status-error-bg),var(--bg-2) 90px)}.status-pill{letter-spacing:.02em;background:var(--bg-3);height:20px;color:var(--text-secondary);border:1px solid var(--border-default);white-space:nowrap;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:10.5px;font-weight:600;line-height:1;display:inline-flex}.status-pill-icon{align-items:center;display:inline-flex}.status-pill-icon svg{width:10px;height:10px}.status-pill.tone-neutral{background:var(--bg-3);color:var(--text-secondary);border-color:var(--border-default)}.status-pill.tone-accent{background:var(--accent-dim);color:var(--accent);border-color:var(--status-info-border)}.status-pill.tone-info{background:var(--status-info-bg);color:var(--status-info);border-color:var(--status-info-border)}.status-pill.tone-success{background:var(--status-success-bg);color:var(--status-success);border-color:var(--status-success-border)}.status-pill.tone-warning{background:var(--status-warning-bg);color:var(--status-warning);border-color:var(--status-warning-border)}.status-pill.tone-error{background:var(--status-error-bg);color:var(--status-error);border-color:var(--status-error-border)}.panel-kv-grid{gap:10px 16px;margin:0;display:grid}.panel-kv-row{background:var(--bg-2);border:1px solid var(--border-default);border-radius:6px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.panel-kv-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin:0;font-size:10px;font-weight:600}.panel-kv-value{color:var(--text-primary);font-feature-settings:"tnum" 1;word-break:break-word;margin:0;font-size:12px}.panel-toolbar{background:var(--bg-2);border:1px solid var(--border-default);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:8px 10px;display:flex}.panel-toolbar-left,.panel-toolbar-center,.panel-toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel-toolbar-left{flex:1;min-width:0}.panel-toolbar-center{flex:2;justify-content:center}.panel-toolbar-right{justify-content:flex-end}.panel-table{border-collapse:collapse;background:var(--bg-1);border:1px solid var(--border-default);border-radius:8px;width:100%;font-size:12px;overflow:hidden}.panel-table thead th{background:var(--bg-2);color:var(--text-tertiary);letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:1px solid var(--border-default);z-index:1;padding:8px 10px;font-size:10px;font-weight:600;position:sticky;top:0}.panel-table tbody tr:nth-child(odd){background:var(--bg-1)}.panel-table tbody tr:nth-child(2n){background:var(--bg-2)}.panel-table tbody tr:hover{background:var(--bg-3)}.panel-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-primary);vertical-align:top;padding:6px 10px}.panel-table tbody tr:last-child td{border-bottom:none}.panel-form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 12px;display:grid}.panel-form-row{flex-direction:column;gap:4px;min-width:0;display:flex}.panel-form-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:600}.panel-form-hint{color:var(--text-tertiary);font-size:10.5px;line-height:1.4}.panel-input,.panel-select,.panel-textarea{background:var(--bg-1);border:1px solid var(--border-default);width:100%;font-size:12px;font-family:var(--font-mono,ui-monospace, "SF Mono", Menlo, monospace);color:var(--text-primary);transition:border-color .12s var(--ease,ease),background .12s var(--ease,ease);border-radius:6px;outline:none;padding:7px 10px}.panel-input::placeholder,.panel-textarea::placeholder{color:var(--text-tertiary);opacity:.8}.panel-input:focus,.panel-select:focus,.panel-textarea:focus{border-color:var(--accent);background:var(--bg-0);box-shadow:0 0 0 3px var(--accent-dim)}.panel-input:disabled,.panel-select:disabled,.panel-textarea:disabled{opacity:.55;cursor:not-allowed}.panel-textarea{resize:vertical;min-height:64px;font-family:inherit;line-height:1.45}.panel-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;color:var(--text-primary);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 14px),calc(100% - 10px);background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:28px;position:relative}.panel-select option{color:var(--text-primary);background:var(--bg-1)}.panel-select:focus{background-color:var(--bg-0)}.panel-btn{cursor:pointer;border:1px solid var(--border-default);background:var(--bg-1);color:var(--text-secondary);transition:background .12s var(--ease,ease),color .12s var(--ease,ease),border-color .12s var(--ease,ease);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:11.5px;font-weight:500;display:inline-flex}.panel-btn:hover:not(:disabled){background:var(--bg-3);color:var(--text-primary);border-color:var(--border-strong)}.panel-btn:disabled{opacity:.45;cursor:not-allowed}.panel-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.panel-btn.primary:hover:not(:disabled){background:var(--accent-hover,var(--accent));border-color:var(--accent-hover,var(--accent));color:var(--accent-fg);filter:none}.panel-btn.danger{color:var(--status-error);border-color:var(--status-error-border)}.panel-btn.danger:hover:not(:disabled){background:var(--status-error-bg);color:var(--status-error);border-color:var(--status-error)}.panel-btn-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.panel-chip-list{flex-wrap:wrap;gap:5px;padding:6px 0 2px;display:flex}.panel-chip{border:1px solid var(--border-default);background:var(--bg-1);color:var(--text-secondary);font-size:10.5px;font-family:var(--font-mono,ui-monospace, "SF Mono", Menlo, monospace);white-space:nowrap;border-radius:10px;align-items:center;padding:3px 8px;display:inline-flex}.panel-chip.empty{color:var(--text-tertiary);border-style:dashed;font-family:inherit;font-style:italic}.panel-summary-card{border:1px solid var(--border-default);background:var(--bg-1);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.panel-summary-card .label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);font-size:10px;font-weight:600}.panel-summary-card .value{color:var(--text-primary);font-size:20px;font-weight:600;line-height:1;font-family:var(--font-mono,ui-monospace, "SF Mono", Menlo, monospace)}.panel-empty{text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:32px 16px;display:flex}.panel-empty-icon{background:var(--bg-2);width:40px;height:40px;color:var(--text-tertiary);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.panel-empty-title{color:var(--text-secondary);margin:0;font-size:12.5px;font-weight:600}.panel-empty-desc{color:var(--text-tertiary);max-width:280px;margin:0;font-size:11.5px;line-height:1.5}.t-display{font-size:var(--text-2xl);line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:-.02em;color:var(--color-text-primary)}.t-title{font-size:var(--text-lg);line-height:var(--leading-snug);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--color-text-primary)}.t-subtitle{font-size:var(--text-md);line-height:var(--leading-snug);font-weight:var(--weight-semibold);color:var(--color-text-primary)}.t-body{font-size:var(--text-base);line-height:var(--leading-normal);font-weight:var(--weight-regular);color:var(--color-text-secondary)}.t-label{font-size:var(--text-sm);line-height:var(--leading-snug);font-weight:var(--weight-medium);color:var(--color-text-primary)}.t-caption{font-size:var(--text-xs);line-height:var(--leading-snug);font-weight:var(--weight-regular);color:var(--color-text-muted)}.t-overline{font-size:var(--text-2xs);line-height:var(--leading-tight);font-weight:var(--weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.t-mono{font-family:JetBrains Mono,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:var(--text-sm);color:var(--color-text-secondary)}.dl-toolbar-btn{border-radius:var(--radius-sm);height:28px;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 8px;line-height:1;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.dl-toolbar-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dl-toolbar-btn:active{background:var(--color-bg-active)}.dl-toolbar-btn[disabled],.dl-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.dl-toolbar-btn--primary{background:var(--color-accent-blue);color:var(--color-text-on-accent);border-color:var(--color-accent-blue)}.dl-toolbar-btn--primary:hover{color:var(--color-text-on-accent);background:#2563eb}.dl-toolbar-btn--ghost-icon{justify-content:center;width:28px;padding:0}.dl-toolbar-divider{background:var(--color-border-primary);flex-shrink:0;width:1px;height:18px;margin:0 4px}.dl-chip{border-radius:var(--radius-pill);height:22px;font-size:var(--text-xs);font-weight:var(--weight-medium);background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border-subtle);align-items:center;gap:4px;padding:0 8px;line-height:1;display:inline-flex}.dl-chip--accent{background:var(--color-accent-blue-soft);color:var(--color-accent-blue);border-color:#0000}.dl-tree-row{border-radius:var(--radius-xs);height:26px;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 8px 0 6px;transition:background 80ms,color 80ms;display:flex}.dl-tree-row:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.dl-tree-row--active{background:var(--color-bg-active);color:var(--color-text-accent);font-weight:var(--weight-medium)}.dl-tree-section{height:28px;font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:0 8px 0 4px;display:flex}.dl-tree-section:hover{color:var(--color-text-secondary)}.cm-editor{font-size:13px;height:100%!important}.react-flow__background{background:var(--color-bg-canvas)!important}.react-flow__minimap{box-shadow:var(--shadow-sm);background:var(--color-bg-surface)!important;border:1px solid var(--color-border-primary)!important;border-radius:var(--radius-md)!important}.react-flow__controls{box-shadow:var(--shadow-sm);overflow:hidden;border:1px solid var(--color-border-primary)!important;border-radius:var(--radius-md)!important}.react-flow__controls-button{background:var(--color-bg-surface)!important;border-bottom:1px solid var(--color-border-primary)!important;fill:var(--color-text-secondary)!important}.react-flow__controls-button:hover{background:var(--color-bg-hover)!important}[data-theme=dark] .react-flow__node{color:var(--color-text-primary)}[data-theme=dark] .react-flow__edge-text{fill:var(--color-text-secondary)!important}.sash-container .sash{background:var(--color-border-primary)!important}.sash-container .sash:hover{background:var(--color-accent-blue)!important}@keyframes dql-drawer-slide-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes dql-modal-fade-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -1,6 +0,0 @@
1
- import{c as t}from"./index-1mIC_XX4.js";/**
2
- * @license lucide-react v0.563.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const a=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],i=t("maximize-2",a);export{i as M};
@@ -1,6 +0,0 @@
1
- import{c as a}from"./index-1mIC_XX4.js";/**
2
- * @license lucide-react v0.563.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const c=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],o=a("pencil",c);export{o as P};
@@ -1,18 +0,0 @@
1
- import{c as te,r as W,j as t,t as R,a_ as je,L as Se,f as we,l as Me,S as le,d as $e,e as Ae}from"./index-1mIC_XX4.js";import{W as ke}from"./wrench-Ong23-wu.js";/**
2
- * @license lucide-react v0.563.0 - ISC
3
- *
4
- * This source code is licensed under the ISC license.
5
- * See the LICENSE file in the root directory of this source tree.
6
- */const ze=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],_e=te("code-xml",ze);/**
7
- * @license lucide-react v0.563.0 - ISC
8
- *
9
- * This source code is licensed under the ISC license.
10
- * See the LICENSE file in the root directory of this source tree.
11
- */const Te=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Fe=te("file-search",Te);/**
12
- * @license lucide-react v0.563.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */const Ne=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],kt=te("send",Ne),Ie=/date|time|_at$|_on$|timestamp/i;function We(e){return typeof e=="number"||typeof e=="string"&&e!==""&&!isNaN(Number(e))}function Be(e,s){if(Ie.test(e))return"date";const n=s.slice(0,40).map(l=>l[e]).filter(l=>l!=null);return n.length===0?"string":n.every(l=>typeof l=="boolean")?"bool":n.every(l=>typeof l=="object")?"json":n.filter(We).length/n.length>.8?"numeric":"string"}function zt(e){return e==="numeric"?"measure":e==="date"?"temporal":"dimension"}const re=/(?:^|_)(?:revenue|sales|spend|amount|price|cost|profit|margin|income|expense|balance|budget|bookings|arr|mrr|gmv|fee|fees|charge|charges|tax|value)(?:_|$)/i,Le=/(?:^|_)(?:percent|percentage|pct|ratio|share|conversion|churn|retention|utilization)(?:_|$)/i,Ee=/(?:^|_)(?:count|orders?|customers?|accounts?|users?|products?|items?|units?|quantity|rank|position|days?|months?|years?|distinct)(?:_|$)/i,ie=/(?:^|_)(?:average|avg|mean)(?:_|$)/i,Pe=/(?:^|_)(?:year|yr)$/i,Re=/(?:^|_)(?:month|monthly|month_num|month_number|month_of_year)$/i,De=/(?:^|_)(?:date|day|month|quarter|year|time|timestamp|daily|weekly|monthly|quarterly|yearly|hourly)(?:_|$)|_(?:at|on)$/i,pe=/^(\d{4})-(\d{2})$/,Z=/^(\d{4})-(\d{2})-(\d{2})$/,G=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:?\d{2})?$/,me=/^(\d{1,2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?Z?$/;function ne(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""&&Number.isFinite(Number(e)))return Number(e)}function He(e){if(e==="currency"||e==="percent"||e==="number")return e;if(e==="duration")return"number"}function Oe(e,s=[],n){const o=He(n);if(o)return o;if(Re.test(e))return"month";if(Pe.test(e))return"year";if(De.test(e))return"date";if(ie.test(e)&&re.test(e))return"currency";if(Le.test(e))return"percent";if(ie.test(e))return"number";if(Ee.test(e))return"integer";if(re.test(e))return"currency";const l=s.filter(i=>i!=null&&i!=="");return l.length===0?"text":l.every(i=>typeof i=="boolean")?"boolean":l.every(i=>ne(i)!==void 0)?"number":l.every(i=>typeof i=="string"&&pe.test(i))?"month":l.every(i=>typeof i=="string"&&(Z.test(i)||G.test(i)||me.test(i)))?"date":l.every(i=>typeof i=="object")?"json":"text"}function Ue(e,s=!1){return e?{notation:"compact",maximumFractionDigits:1}:s?{maximumFractionDigits:0}:{maximumFractionDigits:2}}function oe(e,s,n=[],o={}){if(s==null)return"";const l=Oe(e,n,o.format),i=ne(s);if(l==="year"){const r=typeof s=="string"&&(Z.test(s)||G.test(s))?Number(s.slice(0,4)):i;if(r!==void 0&&Number.isInteger(r))return new Intl.NumberFormat("en-US",{useGrouping:!1,maximumFractionDigits:0}).format(r)}if(l==="month"){const r=Ye(s);if(r)return r}if(l==="date"&&typeof s=="string"){const r=Ze(s);if(r)return r}if(i!==void 0){if(l==="currency")return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",...o.compact?{notation:"compact",maximumFractionDigits:1}:{minimumFractionDigits:2,maximumFractionDigits:2}}).format(i);if(l==="percent"){const r=Math.abs(i)<=1?i:i/100;return new Intl.NumberFormat("en-US",{style:"percent",maximumFractionDigits:2}).format(r)}return new Intl.NumberFormat("en-US",Ue(!!o.compact,l==="integer")).format(i)}return l==="boolean"?s?"Yes":"No":l==="json"||typeof s=="object"?JSON.stringify(s):String(s)}function Ve(e,s,n){return oe(e,s,[s],{compact:!0,format:n})}function Ye(e){const s=ne(e);if(s!==void 0&&Number.isInteger(s)&&s>=1&&s<=12)return new Intl.DateTimeFormat("en-US",{month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(2e3,s-1,1)));if(typeof e!="string")return;const n=pe.exec(e),o=Z.exec(e)??(G.test(e)?Z.exec(e.slice(0,10)):null),l=n??o;if(!l)return;const i=Number(l[1]),r=Number(l[2]);if(!(r<1||r>12))return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",timeZone:"UTC"}).format(new Date(Date.UTC(i,r-1,1)))}function Ze(e){const s=me.exec(e);if(s){const r=Number(s[1]),z=Number(s[2]),j=Number(s[3]??0);return r>23||z>59||j>59?void 0:new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",timeZone:"UTC"}).format(new Date(Date.UTC(2e3,0,1,r,z,j)))}const n=Z.exec(e);if(n)return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric",timeZone:"UTC"}).format(new Date(Date.UTC(Number(n[1]),Number(n[2])-1,Number(n[3]))));if(!G.test(e))return;const o=/(?:Z|[+-]\d{2}:?\d{2})$/.test(e),l=new Date(o?e:`${e}Z`);if(Number.isNaN(l.getTime()))return;const i=l.getUTCHours()===0&&l.getUTCMinutes()===0&&l.getUTCSeconds()===0;return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"short",day:"numeric",...i?{}:{hour:"numeric",minute:"2-digit"},timeZone:"UTC"}).format(l)}const qe=[25,50,100,500];function Q(e){return typeof e=="number"?!0:typeof e=="string"?!isNaN(Number(e))&&e.trim()!=="":!1}function Ge(e){switch(e){case"numeric":return{icon:"#",color:"#79c0ff"};case"date":return{icon:"D",color:"#e3b341"};case"bool":return{icon:"B",color:"#a371f7"};case"json":return{icon:"{}",color:"#ff7b72"};case"string":default:return{icon:"A",color:"#56d364"}}}function Xe(e){return e==null?"":typeof e=="object"?JSON.stringify(e):String(e)}function Ke(e,s){return e==null?1:s==null?-1:Q(e)&&Q(s)?Number(e)-Number(s):String(e).localeCompare(String(s))}function Je(e,s){const n=r=>r.includes(",")||r.includes('"')||r.includes(`
17
- `)?`"${r.replace(/"/g,'""')}"`:r,o=e.columns.map(n).join(","),l=e.rows.map(r=>e.columns.map(z=>n(Xe(r[z]))).join(",")),i=[o,...l].join(`
18
- `);ye(i,"export.csv","text/csv")}function Qe(e,s){const n=JSON.stringify(e.rows,null,2);ye(n,"export.json","application/json")}function ye(e,s,n){const o=new Blob([e],{type:n}),l=URL.createObjectURL(o),i=document.createElement("a");i.href=l,i.download=s,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(l)}function Ce({dir:e,color:s}){return e?t.jsx("svg",{width:"8",height:"10",viewBox:"0 0 8 10",fill:s,style:{marginLeft:3,flexShrink:0},children:e==="asc"?t.jsx("path",{d:"M4 0L7 4H1L4 0Z"}):t.jsx("path",{d:"M4 10L1 6H7L4 10Z"})}):t.jsxs("svg",{width:"8",height:"10",viewBox:"0 0 8 10",fill:s,opacity:.3,style:{marginLeft:3,flexShrink:0},children:[t.jsx("path",{d:"M4 0L7 3.5H1L4 0Z"}),t.jsx("path",{d:"M4 10L1 6.5H7L4 10Z"})]})}function C({result:e,themeMode:s,maxHeight:n=440}){const o=R[s],[l,i]=W.useState(null),[r,z]=W.useState(null),[j,b]=W.useState(null),[u,m]=W.useState(""),[p,S]=W.useState(50),[v,x]=W.useState(0),w=W.useCallback(a=>{r===a?j==="asc"?b("desc"):j==="desc"?(z(null),b(null)):b("asc"):(z(a),b("asc")),x(0)},[r,j]),y=W.useMemo(()=>{if(!u.trim())return e.rows;const a=u.toLowerCase();return e.rows.filter(h=>e.columns.some(g=>{const _=h[g];return _==null?!1:String(_).toLowerCase().includes(a)}))},[e.rows,e.columns,u]),d=W.useMemo(()=>{if(!r||!j)return y;const a=[...y];return a.sort((h,g)=>{const _=Ke(h[r],g[r]);return j==="desc"?-_:_}),a},[y,r,j]),c=W.useMemo(()=>{const a=new Map;for(const h of e.columns)a.set(h,Be(h,e.rows));return a},[e.columns,e.rows]),T=W.useMemo(()=>new Map(e.columns.map(a=>[a,e.rows.map(h=>h[a])])),[e.columns,e.rows]),[F,I]=W.useState(!1),A=Math.max(1,Math.ceil(d.length/p)),$=Math.min(v,A-1),k=d.slice($*p,($+1)*p);return e.columns.length===0?t.jsx("div",{style:{padding:"12px 16px",color:o.textMuted,fontSize:12,fontFamily:o.font,fontStyle:"italic"},children:"Query executed successfully. No columns to display."}):t.jsxs("div",{children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 8px",borderBottom:`1px solid ${o.tableBorder}`,background:`${o.tableHeaderBg}60`,flexWrap:"wrap"},children:[t.jsxs("div",{style:{position:"relative",flex:"0 1 200px",minWidth:120},children:[t.jsx("svg",{width:"11",height:"11",viewBox:"0 0 16 16",fill:o.textMuted,style:{position:"absolute",left:6,top:6},children:t.jsx("path",{d:"M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"})}),t.jsx("input",{value:u,onChange:a=>{m(a.target.value),x(0)},placeholder:"Filter rows...",style:{width:"100%",background:o.inputBg,border:`1px solid ${o.inputBorder}`,borderRadius:4,color:o.textPrimary,fontSize:11,fontFamily:o.font,padding:"3px 8px 3px 22px",outline:"none"}}),u&&t.jsx("button",{onClick:()=>m(""),style:{position:"absolute",right:4,top:3,background:"none",border:"none",color:o.textMuted,cursor:"pointer",fontSize:12,padding:"0 2px"},children:"×"})]}),t.jsxs("span",{style:{fontSize:10,color:o.textMuted,fontFamily:o.font},children:[u?`${d.length} of ${e.rows.length}`:`${e.rows.length}`," ",e.rows.length===1?"row":"rows"]}),t.jsx("div",{style:{flex:1}}),t.jsx(ae,{label:"CSV",onClick:()=>Je(e),t:o}),t.jsx(ae,{label:"JSON",onClick:()=>Qe(e),t:o}),t.jsx("select",{value:p,onChange:a=>{S(Number(a.target.value)),x(0)},style:{background:o.inputBg,border:`1px solid ${o.inputBorder}`,borderRadius:3,color:o.textSecondary,fontSize:10,fontFamily:o.font,padding:"2px 4px",outline:"none"},children:qe.map(a=>t.jsxs("option",{value:a,children:[a," / page"]},a))}),A>1&&t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[t.jsx(Y,{disabled:$===0,onClick:()=>x(0),t:o,children:"«"}),t.jsx(Y,{disabled:$===0,onClick:()=>x($-1),t:o,children:"‹"}),t.jsxs("span",{style:{fontSize:10,color:o.textSecondary,fontFamily:o.font,padding:"0 4px"},children:[$+1,"/",A]}),t.jsx(Y,{disabled:$>=A-1,onClick:()=>x($+1),t:o,children:"›"}),t.jsx(Y,{disabled:$>=A-1,onClick:()=>x(A-1),t:o,children:"»"})]})]}),t.jsx("div",{style:{maxHeight:n,overflow:"auto",position:"relative"},onScroll:a=>I(a.target.scrollTop>0),children:t.jsxs("table",{style:{width:"100%",borderCollapse:"separate",borderSpacing:0,tableLayout:"auto",fontSize:12.5,fontFamily:o.fontMono},children:[t.jsx("thead",{children:t.jsx("tr",{children:e.columns.map(a=>{const h=c.get(a)??"string",g=h==="numeric";return t.jsx("th",{onClick:()=>w(a),style:{background:o.tableHeaderBg,color:o.textSecondary,fontWeight:600,fontSize:11,textAlign:g?"right":"left",padding:"8px 14px",borderBottom:`1px solid ${o.tableBorder}`,minWidth:80,maxWidth:320,whiteSpace:"nowrap",position:"sticky",top:0,zIndex:1,fontFamily:o.font,letterSpacing:"0.03em",overflow:"hidden",textOverflow:"ellipsis",cursor:"pointer",userSelect:"none",boxShadow:F?"0 2px 4px -2px rgba(0,0,0,0.18)":"none",transition:"background 0.1s, box-shadow 0.18s"},children:t.jsxs("span",{style:{display:"flex",alignItems:"center",gap:6,justifyContent:g?"flex-end":"flex-start"},children:[(()=>{const _=Ge(h);return t.jsx("span",{title:h,style:{fontSize:9,fontFamily:o.fontMono,fontWeight:700,color:_.color,background:`${_.color}15`,border:`1px solid ${_.color}40`,borderRadius:3,padding:"0 4px",minWidth:14,textAlign:"center",lineHeight:"14px",flexShrink:0},children:_.icon})})(),t.jsx("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:a}),t.jsx(Ce,{dir:r===a?j:null,color:r===a?o.accent:o.textMuted})]})},a)})})}),t.jsx("tbody",{children:k.map((a,h)=>{const g=l===h,L=h%2===1?o.tableHeaderBg:"transparent";return t.jsx("tr",{onMouseEnter:()=>i(h),onMouseLeave:()=>i(null),style:{transition:"background 0.1s"},children:e.columns.map(B=>{const f=a[B],M=f==null,N=Q(f);return t.jsx("td",{style:{padding:"7px 14px",borderBottom:`1px solid ${o.tableBorder}`,background:g?o.tableRowHover:L,color:M?o.textMuted:o.textPrimary,fontStyle:M?"italic":"normal",fontVariantNumeric:N?"tabular-nums":"normal",textAlign:N?"right":"left",whiteSpace:"nowrap",maxWidth:320,overflow:"hidden",textOverflow:"ellipsis",transition:"background 0.1s"},children:M?"—":oe(B,f,T.get(B)??[])},B)})},h)})})]})}),t.jsxs("div",{style:{padding:"5px 10px",color:o.textMuted,fontSize:10,fontFamily:o.font,borderTop:`1px solid ${o.tableBorder}`,background:`${o.tableHeaderBg}60`,display:"flex",alignItems:"center",gap:4},children:[A>1&&t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:2},children:[t.jsx(Y,{disabled:$===0,onClick:()=>x($-1),t:o,children:"‹"}),et(A,$).map((a,h)=>a==="…"?t.jsx("span",{style:{color:o.textMuted,fontSize:10,padding:"0 2px"},children:"…"},`gap-${h}`):t.jsx("button",{onClick:()=>x(a-1),style:{background:a-1===$?`${o.accent}20`:"transparent",border:"none",color:a-1===$?o.accent:o.textSecondary,fontSize:10,fontFamily:o.font,fontWeight:a-1===$?700:400,padding:"1px 6px",borderRadius:3,cursor:"pointer",minWidth:20},children:a},a)),t.jsx(Y,{disabled:$>=A-1,onClick:()=>x($+1),t:o,children:"›"})]}),t.jsx("div",{style:{flex:1}}),t.jsxs("span",{style:{fontSize:10,color:o.textSecondary,fontFamily:o.font,marginLeft:6,whiteSpace:"nowrap"},children:[d.length.toLocaleString()," ",d.length===1?"row":"rows",u&&e.rows.length!==d.length&&` of ${e.rows.length.toLocaleString()}`]})]})]})}function et(e,s){if(e<=7)return Array.from({length:e},(l,i)=>i+1);const n=s+1,o=[1];n>3&&o.push("…");for(let l=Math.max(2,n-1);l<=Math.min(e-1,n+1);l++)o.push(l);return n<e-2&&o.push("…"),o.push(e),o}function ae({label:e,onClick:s,t:n}){const[o,l]=W.useState(!1);return t.jsxs("button",{onClick:s,onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),style:{background:o?n.btnHover:"transparent",border:`1px solid ${o?n.btnBorder:"transparent"}`,borderRadius:3,cursor:"pointer",color:o?n.textSecondary:n.textMuted,fontSize:10,fontFamily:n.font,fontWeight:600,padding:"2px 6px",transition:"all 0.15s",display:"flex",alignItems:"center",gap:3},children:[t.jsxs("svg",{width:"9",height:"9",viewBox:"0 0 16 16",fill:"currentColor",children:[t.jsx("path",{d:"M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"}),t.jsx("path",{d:"M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.97a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.779a.749.749 0 1 1 1.06-1.06l1.97 1.97Z"})]}),e]})}function Y({disabled:e,onClick:s,children:n,t:o}){return t.jsx("button",{disabled:e,onClick:s,style:{background:"transparent",border:"none",cursor:e?"default":"pointer",color:e?o.textMuted:o.textSecondary,fontSize:12,fontFamily:o.font,padding:"0 3px",opacity:e?.4:1,transition:"opacity 0.1s"},children:n})}const _t=[{value:"bar",label:"Bar"},{value:"grouped-bar",label:"Grouped Bar"},{value:"stacked-bar",label:"Stacked Bar"},{value:"line",label:"Line"},{value:"area",label:"Area"},{value:"scatter",label:"Scatter"},{value:"pie",label:"Pie"},{value:"donut",label:"Donut"},{value:"heatmap",label:"Heatmap"},{value:"histogram",label:"Histogram"},{value:"funnel",label:"Funnel"},{value:"sankey",label:"Sankey"},{value:"waterfall",label:"Waterfall"},{value:"gauge",label:"Gauge"},{value:"kpi",label:"KPI"}],tt=/date|time|at|day|month|year/i,fe=/^(label|name|category|status|type|group)$/i,he=/^(value|count|total|revenue|amount|sum|avg|price|quantity|sales)$/i;function U(e){return typeof e=="number"?!0:typeof e=="string"?e.trim()!==""&&!isNaN(Number(e)):!1}function nt(e){return typeof e=="string"||typeof e=="number"}const ot=new Set(["bar","line","area","pie","donut","scatter","heatmap","funnel","waterfall","histogram","gauge","stacked-bar","grouped-bar","sankey","kpi","table"]);function st(e,s){if(s!=null&&s.chart){const n=s.chart.toLowerCase().replace(/_/g,"-");if(ot.has(n))return n}return lt(e)}function lt(e){const{columns:s,rows:n}=e;if(s.length<2||n.length===0)return"table";const o=s[0],l=s[1],i=n.slice(0,5),r=i.every(m=>U(m[l])),z=i.every(m=>nt(m[o]));if(tt.test(o)&&r&&z)return"line";const j=s.find(m=>fe.test(m)),b=s.find(m=>he.test(m));return j&&b&&i.every(p=>U(p[b]))?"bar":i.every(m=>U(m[o]))&&r&&s.length>=2?"scatter":s.length===2&&z&&r?"bar":"table"}const ee={default:["#388bfd","#56d364","#e3b341","#f78166","#a371f7","#39c5cf","#ffa657","#ff7b72","#89d185","#d2a8ff","#58a6ff","#3fb950"],warm:["#f85149","#f78166","#ffa657","#e3b341","#d29922","#db6d28","#ff7b72","#ffa198","#ffdfb6","#e6c174","#c4a35a","#b08c3e"],cool:["#388bfd","#58a6ff","#79c0ff","#39c5cf","#56d364","#3fb950","#a371f7","#d2a8ff","#bc8cff","#6cb6ff","#2ea043","#1f6feb"],mono:["#c9d1d9","#b1bac4","#8b949e","#6e7681","#484f58","#30363d","#21262d","#161b22","#a0a8b2","#9e9e9e","#757575","#616161"],pastel:["#b8d8f8","#b4e6c8","#f4e6a0","#f8c4a4","#d2b8f0","#a8e0e0","#f8d8a0","#f4b8b4","#c0e8c0","#e0d0f8","#a8d8f8","#b0e8b0"],corporate:["#2563eb","#16a34a","#7c3aed","#0891b2","#f59e0b","#dc2626","#475569","#0f766e","#9333ea","#0284c7","#65a30d","#ea580c"]};function H(e){return ee[e??"default"]??ee.default}function E(e,s="value",n){return Ve(s,e,n)}function ce(e,s=8){if(/^\d{4}-\d{2}(-\d{2})?/.test(e)){const n=/^\d{4}-\d{2}$/.test(e),o=new Date(n?`${e}-01T00:00:00Z`:e);if(!isNaN(o.getTime()))return o.toLocaleDateString("en-US",n?{year:"numeric",month:"short",timeZone:"UTC"}:{month:"short",day:"numeric",timeZone:"UTC"})}return String(e).length>s?String(e).slice(0,s):String(e)}function q(e,s){const n=(s!=null&&s.x&&e.columns.includes(s.x)?s.x:void 0)??e.columns.find(l=>fe.test(l))??e.columns[0],o=(s!=null&&s.y&&e.columns.includes(s.y)?s.y:void 0)??e.columns.find(l=>he.test(l))??e.columns[1];return{labelCol:n,valueCol:o}}const V=20;function se({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),{labelCol:r,valueCol:z}=q(e,n),j=(n==null?void 0:n.maxItems)??V,b=H(n==null?void 0:n.colorPalette),u=e.rows.slice(0,j).map(d=>({label:String(d[r]??""),value:Number(d[z]??0)})),m=e.rows.length>j,p=Math.max(...u.map(d=>d.value),1),S=28,v=120,x=6,w=12,y=u.length*(S+x)+w*2;return t.jsxs("div",{style:{padding:"8px 0"},children:[t.jsx("svg",{width:"100%",height:y,viewBox:`0 0 600 ${y}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:u.map((d,c)=>{const T=w+c*(S+x),F=600-v-84,I=Math.max(d.value/p*F,2),A=l===c,$=b[c%b.length];return t.jsxs("g",{onMouseEnter:()=>i(c),onMouseLeave:()=>i(null),style:{cursor:"default"},children:[t.jsx("text",{x:v-8,y:T+S/2+4,textAnchor:"end",fontSize:11,fontFamily:o.font,fill:o.textSecondary,children:d.label.length>16?d.label.slice(0,15)+"…":d.label}),t.jsx("rect",{x:v,y:T,width:I,height:S,rx:3,fill:$,opacity:A?1:.88,style:{transition:"opacity 0.15s"}}),t.jsx("text",{x:v+I+6,y:T+S/2+4,textAnchor:"start",fontSize:11,fontFamily:o.fontMono,fill:o.textMuted,children:E(d.value,z,n==null?void 0:n.format)})]},c)})}),m&&t.jsxs("div",{style:{fontSize:11,color:o.textMuted,fontFamily:o.font,fontStyle:"italic",padding:"4px 12px"},children:["Showing ",V," of ",e.rows.length," rows"]})]})}function rt({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),r=H(n==null?void 0:n.colorPalette),z=n!=null&&n.x&&e.columns.includes(n.x)?n.x:e.columns[0],j=e.rows.slice(0,5),b=e.columns.filter(d=>d!==z&&j.some(c=>U(c[d])));if(b.length===0)return t.jsx(se,{result:e,themeMode:s,chartConfig:n});const u=e.rows.slice(0,V).map(d=>String(d[z]??"")),m=Math.max(...e.rows.slice(0,V).flatMap(d=>b.map(c=>Math.abs(Number(d[c]??0)))),1),p=24,S=p/b.length,v=120,x=12,w=8,y=u.length*(p+w)+x*2;return t.jsxs("div",{style:{padding:"8px 0"},children:[t.jsx("div",{style:{display:"flex",gap:12,padding:"0 12px 6px",flexWrap:"wrap"},children:b.map((d,c)=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("div",{style:{width:10,height:10,borderRadius:2,background:r[c%r.length]}}),t.jsx("span",{style:{fontSize:10,fontFamily:o.font,color:o.textSecondary},children:d})]},d))}),t.jsx("svg",{width:"100%",height:y,viewBox:`0 0 600 ${y}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:u.map((d,c)=>{const T=x+c*(p+w),F=e.rows[c];return t.jsxs("g",{children:[t.jsx("text",{x:v-8,y:T+p/2+4,textAnchor:"end",fontSize:11,fontFamily:o.font,fill:o.textSecondary,children:d.length>16?d.slice(0,15)+"…":d}),b.map((I,A)=>{const $=Number(F[I]??0),k=600-v-60,a=Math.max(Math.abs($)/m*k,1),h=T+A*S,g=`${c}-${A}`;return t.jsxs("g",{onMouseEnter:()=>i(g),onMouseLeave:()=>i(null),children:[t.jsx("rect",{x:v,y:h,width:a,height:S-1,rx:2,fill:r[A%r.length],opacity:l===g?1:.85,style:{transition:"opacity 0.15s"}}),l===g&&t.jsx("text",{x:v+a+4,y:h+S/2+3,fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:E($,I,n==null?void 0:n.format)})]},A)})]},c)})})]})}function it({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),r=H(n==null?void 0:n.colorPalette),z=n!=null&&n.x&&e.columns.includes(n.x)?n.x:e.columns[0],j=e.rows.slice(0,5),b=e.columns.filter(d=>d!==z&&j.some(c=>U(c[d])));if(b.length===0)return t.jsx(se,{result:e,themeMode:s,chartConfig:n});const u=e.rows.slice(0,V),m=u.map(d=>String(d[z]??"")),p=Math.max(...u.map(d=>b.reduce((c,T)=>c+Math.abs(Number(d[T]??0)),0)),1),S=28,v=120,x=12,w=6,y=m.length*(S+w)+x*2;return t.jsxs("div",{style:{padding:"8px 0"},children:[t.jsx("div",{style:{display:"flex",gap:12,padding:"0 12px 6px",flexWrap:"wrap"},children:b.map((d,c)=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("div",{style:{width:10,height:10,borderRadius:2,background:r[c%r.length]}}),t.jsx("span",{style:{fontSize:10,fontFamily:o.font,color:o.textSecondary},children:d})]},d))}),t.jsx("svg",{width:"100%",height:y,viewBox:`0 0 600 ${y}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:m.map((d,c)=>{const T=x+c*(S+w),F=u[c],I=600-v-60;let A=v;return t.jsxs("g",{children:[t.jsx("text",{x:v-8,y:T+S/2+4,textAnchor:"end",fontSize:11,fontFamily:o.font,fill:o.textSecondary,children:d.length>16?d.slice(0,15)+"…":d}),b.map(($,k)=>{const a=Math.abs(Number(F[$]??0)),h=Math.max(a/p*I,0),g=A;A+=h;const _=`${c}-${k}`;return t.jsxs("g",{onMouseEnter:()=>i(_),onMouseLeave:()=>i(null),children:[t.jsx("rect",{x:g,y:T,width:h,height:S,rx:k===0?3:0,fill:r[k%r.length],opacity:l===_?1:.85,style:{transition:"opacity 0.15s"}}),l===_&&h>30&&t.jsx("text",{x:g+h/2,y:T+S/2+4,textAnchor:"middle",fontSize:10,fontFamily:o.fontMono,fill:"#fff",fontWeight:600,children:E(a,$,n==null?void 0:n.format)})]},k)})]},c)})})]})}function de({result:e,themeMode:s,showArea:n,chartConfig:o}){const l=R[s],[i,r]=W.useState(null),j=H(o==null?void 0:o.colorPalette)[0]??l.accent,{labelCol:b,valueCol:u}=q(e,o),m=e.rows.map(M=>({label:String(M[b]??""),value:Number(M[u]??0)}));if(m.length<2)return null;const p=560,S=212,v=56,x=16,w=16,y=48,d=p-v-x,c=S-w-y,T=Math.min(...m.map(M=>M.value)),I=Math.max(...m.map(M=>M.value))-T||1,A=d/(m.length-1),$=M=>v+M*A,k=M=>w+c-(M-T)/I*c,a=m.map((M,N)=>({x:$(N),y:k(M.value)})),h=a.reduce((M,N,P)=>{if(P===0)return`M ${N.x},${N.y}`;const D=a[P-1],O=D.x+(N.x-D.x)/2;return`${M} C ${O},${D.y} ${O},${N.y} ${N.x},${N.y}`},""),g=`${h} L ${a[a.length-1].x},${w+c} L ${v},${w+c} Z`,_=5,L=Array.from({length:_+1},(M,N)=>{const P=T+I*N/_;return{val:P,y:k(P)}}),B=Math.ceil(m.length/8),f=m.filter((M,N)=>N%B===0||N===m.length-1);return t.jsx("div",{style:{position:"relative",padding:"8px 0"},children:t.jsxs("svg",{width:"100%",height:S,viewBox:`0 0 ${p} ${S}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},onMouseLeave:()=>r(null),children:[L.map((M,N)=>t.jsxs("g",{children:[t.jsx("line",{x1:v,y1:M.y,x2:v+d,y2:M.y,stroke:l.tableBorder,strokeWidth:.5}),t.jsx("text",{x:v-6,y:M.y+4,textAnchor:"end",fontSize:10,fontFamily:l.fontMono,fill:l.textMuted,children:E(M.val,u,o==null?void 0:o.format)})]},N)),t.jsx("path",{d:g,fill:j,opacity:n?.3:.15}),t.jsx("path",{d:h,fill:"none",stroke:j,strokeWidth:2,strokeLinejoin:"round"}),a.map((M,N)=>t.jsx("circle",{cx:M.x,cy:M.y,r:3,fill:j,style:{cursor:"crosshair"},onMouseEnter:()=>r({x:M.x,y:M.y,label:m[N].label,value:m[N].value})},N)),f.map((M,N)=>{const P=m.indexOf(M);return t.jsx("text",{x:$(P),y:w+c+16,textAnchor:"middle",fontSize:10,fontFamily:l.font,fill:l.textMuted,children:ce(M.label)},N)}),t.jsx("line",{x1:v,y1:w,x2:v,y2:w+c,stroke:l.tableBorder,strokeWidth:1}),t.jsx("line",{x1:v,y1:w+c,x2:v+d,y2:w+c,stroke:l.tableBorder,strokeWidth:1}),t.jsx("text",{x:v+d/2,y:S-4,textAnchor:"middle",fontSize:10,fontWeight:600,fontFamily:l.font,fill:l.textMuted,letterSpacing:"0.04em",children:b}),t.jsx("text",{x:12,y:w+c/2,textAnchor:"middle",fontSize:10,fontWeight:600,fontFamily:l.font,fill:l.textMuted,letterSpacing:"0.04em",transform:`rotate(-90, 12, ${w+c/2})`,children:u}),i&&t.jsxs("g",{children:[t.jsx("rect",{x:i.x+8,y:i.y-20,width:90,height:32,rx:4,fill:l.cellBg,stroke:l.cellBorder,strokeWidth:1}),t.jsx("text",{x:i.x+13,y:i.y-8,fontSize:10,fontFamily:l.font,fill:l.textSecondary,children:ce(i.label,12)}),t.jsx("text",{x:i.x+13,y:i.y+6,fontSize:11,fontFamily:l.fontMono,fill:l.textPrimary,fontWeight:600,children:E(i.value,u,o==null?void 0:o.format)})]})]})})}function at({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),r=H(n==null?void 0:n.colorPalette),z=n!=null&&n.x&&e.columns.includes(n.x)?n.x:e.columns[0],j=n!=null&&n.y&&e.columns.includes(n.y)?n.y:e.columns[1],b=n!=null&&n.color&&e.columns.includes(n.color)?n.color:void 0,u=e.rows.slice(0,200).map(g=>({x:Number(g[z]??0),y:Number(g[j]??0),color:b?String(g[b]??""):void 0})),m=560,p=300,S=52,v=16,x=16,w=36,y=m-S-v,d=p-x-w,c=Math.min(...u.map(g=>g.x)),T=Math.max(...u.map(g=>g.x)),F=Math.min(...u.map(g=>g.y)),I=Math.max(...u.map(g=>g.y)),A=T-c||1,$=I-F||1,k=g=>S+(g-c)/A*y,a=g=>x+d-(g-F)/$*d,h=b?[...new Set(u.map(g=>g.color))]:[];return t.jsxs("div",{style:{padding:"8px 0"},children:[b&&h.length>0&&t.jsx("div",{style:{display:"flex",gap:12,padding:"0 12px 6px",flexWrap:"wrap"},children:h.slice(0,12).map((g,_)=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4},children:[t.jsx("div",{style:{width:8,height:8,borderRadius:"50%",background:r[_%r.length]}}),t.jsx("span",{style:{fontSize:10,fontFamily:o.font,color:o.textSecondary},children:g})]},g))}),t.jsxs("svg",{width:"100%",height:p,viewBox:`0 0 ${m} ${p}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:[Array.from({length:6},(g,_)=>{const L=F+$*_/5,B=a(L);return t.jsxs("g",{children:[t.jsx("line",{x1:S,y1:B,x2:S+y,y2:B,stroke:o.tableBorder,strokeWidth:.5}),t.jsx("text",{x:S-6,y:B+4,textAnchor:"end",fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:E(L,j,n==null?void 0:n.format)})]},_)}),Array.from({length:6},(g,_)=>{const L=c+A*_/5,B=k(L);return t.jsx("text",{x:B,y:x+d+16,textAnchor:"middle",fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:E(L,z)},_)}),t.jsx("line",{x1:S,y1:x,x2:S,y2:x+d,stroke:o.tableBorder,strokeWidth:1}),t.jsx("line",{x1:S,y1:x+d,x2:S+y,y2:x+d,stroke:o.tableBorder,strokeWidth:1}),t.jsx("text",{x:S+y/2,y:p-2,textAnchor:"middle",fontSize:10,fontFamily:o.font,fill:o.textMuted,children:z}),t.jsx("text",{x:10,y:x+d/2,textAnchor:"middle",fontSize:10,fontFamily:o.font,fill:o.textMuted,transform:`rotate(-90, 10, ${x+d/2})`,children:j}),u.map((g,_)=>{const L=b?h.indexOf(g.color):0;return t.jsx("circle",{cx:k(g.x),cy:a(g.y),r:l===_?5:3.5,fill:r[L%r.length],opacity:l===_?1:.7,style:{cursor:"crosshair",transition:"r 0.1s, opacity 0.1s"},onMouseEnter:()=>i(_),onMouseLeave:()=>i(null)},_)}),l!==null&&t.jsxs("g",{children:[t.jsx("rect",{x:k(u[l].x)+8,y:a(u[l].y)-24,width:100,height:28,rx:4,fill:o.cellBg,stroke:o.cellBorder,strokeWidth:1}),t.jsxs("text",{x:k(u[l].x)+13,y:a(u[l].y)-8,fontSize:10,fontFamily:o.fontMono,fill:o.textPrimary,children:["(",E(u[l].x,z),", ",E(u[l].y,j,n==null?void 0:n.format),")"]})]})]})]})}const ct=12;function xe({result:e,themeMode:s,chartConfig:n,isDonut:o}){const l=R[s],[i,r]=W.useState(null),{labelCol:z,valueCol:j}=q(e,n),b=H(n==null?void 0:n.colorPalette),u=e.rows.slice(0,ct).map(c=>({label:String(c[z]??""),value:Math.abs(Number(c[j]??0))})),m=u.reduce((c,T)=>c+T.value,0)||1,p=90,S=90,v=70,x=o?40:0,w=[];let y=-Math.PI/2;u.forEach((c,T)=>{const F=c.value/m*2*Math.PI,I=y,A=y+F,$=p+v*Math.cos(I),k=S+v*Math.sin(I),a=p+v*Math.cos(A),h=S+v*Math.sin(A),g=F>Math.PI?1:0;let _;if(x>0){const L=p+x*Math.cos(I),B=S+x*Math.sin(I),f=p+x*Math.cos(A),M=S+x*Math.sin(A);_=`M ${$} ${k} A ${v} ${v} 0 ${g} 1 ${a} ${h} L ${f} ${M} A ${x} ${x} 0 ${g} 0 ${L} ${B} Z`}else _=`M ${p} ${S} L ${$} ${k} A ${v} ${v} 0 ${g} 1 ${a} ${h} Z`;w.push({path:_,color:b[T%b.length],label:c.label,value:c.value,pct:c.value/m*100}),y=A});const d=i!==null?w[i]:null;return t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16,padding:"8px 12px",flexWrap:"wrap"},children:[t.jsxs("svg",{width:180,height:180,style:{flexShrink:0},onMouseLeave:()=>r(null),children:[w.map((c,T)=>t.jsx("path",{d:c.path,fill:c.color,opacity:i===null||i===T?1:.55,style:{cursor:"pointer",transition:"opacity 0.15s"},onMouseEnter:()=>r(T)},T)),o&&t.jsxs(t.Fragment,{children:[t.jsx("text",{x:p,y:S-5,textAnchor:"middle",fontSize:11,fontFamily:l.fontMono,fill:l.textSecondary,children:E(d?d.value:m,j,n==null?void 0:n.format)}),t.jsx("text",{x:p,y:S+9,textAnchor:"middle",fontSize:9,fontFamily:l.font,fill:l.textMuted,children:d?`${d.pct.toFixed(1)}%`:"total"})]})]}),t.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4,maxHeight:180,overflowY:"auto",flex:1},children:w.map((c,T)=>t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,cursor:"default",opacity:i===null||i===T?1:.5},onMouseEnter:()=>r(T),onMouseLeave:()=>r(null),children:[t.jsx("div",{style:{width:10,height:10,borderRadius:2,background:c.color,flexShrink:0}}),t.jsx("span",{style:{fontSize:11,fontFamily:l.font,color:l.textSecondary,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:c.label}),t.jsxs("span",{style:{fontSize:11,fontFamily:l.fontMono,color:l.textMuted,marginLeft:"auto",flexShrink:0},children:[c.pct.toFixed(1),"%"]})]},T))})]})}function dt({result:e,themeMode:s}){const n=R[s],[o,l]=W.useState(null),i=e.columns[0],r=e.columns.slice(1),z=e.rows.slice(0,30),j=z.flatMap(w=>r.map(y=>Number(w[y]??0))),b=Math.min(...j),m=Math.max(...j)-b||1,p=Math.min(50,480/r.length),S=24,v=100;function x(w){const y=(w-b)/m,d=Math.round(56+y*192),c=Math.round(139+y*-58),T=Math.round(253+y*-180);return`rgb(${d},${c},${T})`}return t.jsx("div",{style:{padding:"8px 0",overflowX:"auto"},children:t.jsxs("svg",{width:v+r.length*p+20,height:z.length*S+S+16,style:{display:"block",overflow:"visible"},children:[r.map((w,y)=>t.jsx("text",{x:v+y*p+p/2,y:14,textAnchor:"middle",fontSize:9,fontFamily:n.font,fill:n.textMuted,transform:`rotate(-30, ${v+y*p+p/2}, 14)`,children:w.length>8?w.slice(0,7)+"…":w},y)),z.map((w,y)=>{const d=String(w[i]??""),c=S+y*S;return t.jsxs("g",{children:[t.jsx("text",{x:v-6,y:c+S/2+4,textAnchor:"end",fontSize:10,fontFamily:n.font,fill:n.textSecondary,children:d.length>14?d.slice(0,13)+"…":d}),r.map((T,F)=>{const I=Number(w[T]??0),A=(o==null?void 0:o.r)===y&&(o==null?void 0:o.c)===F;return t.jsxs("g",{onMouseEnter:()=>l({r:y,c:F}),onMouseLeave:()=>l(null),children:[t.jsx("rect",{x:v+F*p,y:c,width:p-1,height:S-1,rx:2,fill:x(I),opacity:A?1:.85,stroke:A?n.accent:"none",strokeWidth:A?1.5:0}),A&&t.jsx("text",{x:v+F*p+p/2,y:c+S/2+4,textAnchor:"middle",fontSize:10,fontFamily:n.fontMono,fill:"#fff",fontWeight:600,children:E(I,T)})]},F)})]},y)})]})})}function xt({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),z=H(n==null?void 0:n.colorPalette)[0]??o.accent,j=(n!=null&&n.x&&e.columns.includes(n.x)?n.x:void 0)??e.columns.find(a=>e.rows.slice(0,5).some(h=>U(h[a])))??e.columns[0],b=e.rows.map(a=>Number(a[j]??0)).filter(a=>!isNaN(a));if(b.length===0)return null;const u=Math.min(20,Math.max(5,Math.ceil(Math.sqrt(b.length)))),m=Math.min(...b),v=(Math.max(...b)-m||1)/u,x=Array.from({length:u},(a,h)=>({low:m+h*v,high:m+(h+1)*v,count:0}));b.forEach(a=>{const h=Math.min(Math.floor((a-m)/v),u-1);x[h].count++});const w=Math.max(...x.map(a=>a.count),1),y=560,d=200,c=52,T=16,F=16,I=36,A=y-c-T,$=d-F-I,k=A/u;return t.jsx("div",{style:{padding:"8px 0"},children:t.jsxs("svg",{width:"100%",height:d,viewBox:`0 0 ${y} ${d}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:[Array.from({length:5},(a,h)=>{const g=w*(h+1)/5,_=F+$-g/w*$;return t.jsxs("g",{children:[t.jsx("line",{x1:c,y1:_,x2:c+A,y2:_,stroke:o.tableBorder,strokeWidth:.5}),t.jsx("text",{x:c-6,y:_+4,textAnchor:"end",fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:Math.round(g)})]},h)}),x.map((a,h)=>{const g=a.count/w*$,_=c+h*k,L=F+$-g,B=l===h;return t.jsxs("g",{onMouseEnter:()=>i(h),onMouseLeave:()=>i(null),children:[t.jsx("rect",{x:_+1,y:L,width:k-2,height:g,rx:1,fill:z,opacity:B?1:.85,style:{transition:"opacity 0.1s"}}),B&&t.jsx("text",{x:_+k/2,y:L-4,textAnchor:"middle",fontSize:10,fontFamily:o.fontMono,fill:o.textPrimary,children:a.count})]},h)}),x.filter((a,h)=>h%Math.ceil(u/6)===0).map((a,h)=>{const g=x.indexOf(a);return t.jsx("text",{x:c+g*k+k/2,y:F+$+16,textAnchor:"middle",fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:E(a.low,j,n==null?void 0:n.format)},h)}),t.jsx("line",{x1:c,y1:F,x2:c,y2:F+$,stroke:o.tableBorder,strokeWidth:1}),t.jsx("line",{x1:c,y1:F+$,x2:c+A,y2:F+$,stroke:o.tableBorder,strokeWidth:1}),t.jsx("text",{x:c+A/2,y:d-2,textAnchor:"middle",fontSize:10,fontFamily:o.font,fill:o.textMuted,children:j})]})})}function ut({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),{labelCol:r,valueCol:z}=q(e,n),j=H(n==null?void 0:n.colorPalette),b=e.rows.slice(0,10).map(y=>({label:String(y[r]??""),value:Math.abs(Number(y[z]??0))}));if(b.length===0)return null;const u=b[0].value||1,m=400,p=36,S=4,v=16,x=b.length*(p+S)+v*2,w=m/2;return t.jsx("div",{style:{padding:"8px 0",display:"flex",justifyContent:"center"},children:t.jsx("svg",{width:m,height:x,style:{display:"block"},children:b.map((y,d)=>{const c=v+d*(p+S),T=y.value/u,F=Math.max(T*(m-80),40),I=l===d,A=d<b.length-1?b[d+1].value/u:T*.8,$=Math.max(A*(m-80),40),k=w-F/2,a=w+F/2,h=w+$/2,g=w-$/2,_=`M ${k} ${c} L ${a} ${c} L ${h} ${c+p} L ${g} ${c+p} Z`;return t.jsxs("g",{onMouseEnter:()=>i(d),onMouseLeave:()=>i(null),style:{cursor:"default"},children:[t.jsx("path",{d:_,fill:j[d%j.length],opacity:I?1:.85,style:{transition:"opacity 0.15s"}}),t.jsx("text",{x:w,y:c+p/2+1,textAnchor:"middle",fontSize:11,fontFamily:o.font,fill:"#fff",fontWeight:500,children:y.label}),t.jsxs("text",{x:w,y:c+p/2+13,textAnchor:"middle",fontSize:9,fontFamily:o.fontMono,fill:"rgba(255,255,255,0.7)",children:[E(y.value,z,n==null?void 0:n.format)," (",(T*100).toFixed(0),"%)"]})]},d)})})})}function pt({result:e,themeMode:s,chartConfig:n}){const o=R[s],l=H(n==null?void 0:n.colorPalette),[i,r]=W.useState(null),z=e.rows.slice(0,20),j=e.columns.filter(f=>z.some(M=>U(M[f]))),b=e.columns.filter(f=>!j.includes(f)),u=n!=null&&n.x&&b.includes(n.x)?n.x:b.find(f=>/(?:^|_)(?:source|from|origin|upstream|supplier|producer|category)(?:_|$)/i.test(f))??b[0],m=n!=null&&n.color&&b.includes(n.color)&&n.color!==u?n.color:b.find(f=>f!==u&&/(?:^|_)(?:target|to|destination|downstream|consumer|customer|product)(?:_|$)/i.test(f))??b.find(f=>f!==u),p=n!=null&&n.y&&j.includes(n.y)?n.y:j[0];if(!u||!m||!p)return t.jsx(C,{result:e,themeMode:s});const S=new Map;for(const f of e.rows){const M=String(f[u]??"").trim(),N=String(f[m]??"").trim(),P=Math.abs(Number(f[p]??0));if(!M||!N||!Number.isFinite(P)||P<=0)continue;const D=`${M}\0${N}`,O=S.get(D);S.set(D,{source:M,target:N,value:((O==null?void 0:O.value)??0)+P})}const v=[...S.values()].sort((f,M)=>M.value-f.value);if(v.length===0)return t.jsx(C,{result:e,themeMode:s});const x=new Map,w=new Map;v.forEach(f=>{x.set(f.source,(x.get(f.source)??0)+f.value),w.set(f.target,(w.get(f.target)??0)+f.value)});const y=[...x].sort((f,M)=>M[1]-f[1]).slice(0,12).map(([f])=>f),d=[...w].sort((f,M)=>M[1]-f[1]).slice(0,12).map(([f])=>f),c=new Set(y),T=new Set(d),F=v.filter(f=>c.has(f.source)&&T.has(f.target)).slice(0,40),I=Math.max(...F.map(f=>f.value),1),A=640,$=Math.max(250,Math.max(y.length,d.length)*34+40),k=132,a=A-144,h=12,g=28,_=(f,M)=>M<=1?$/2:g+f*(($-g*2)/(M-1)),L=new Map(y.map((f,M)=>[f,M])),B=new Map(d.map((f,M)=>[f,M]));return t.jsx("div",{style:{padding:"8px 0",overflowX:"auto"},children:t.jsxs("svg",{role:"img","aria-label":`${u} to ${m} flow by ${p}`,width:"100%",height:$,viewBox:`0 0 ${A} ${$}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",minWidth:520},children:[t.jsx("text",{x:k,y:14,textAnchor:"middle",fontSize:10,fontWeight:700,fontFamily:o.font,fill:o.textMuted,children:u}),t.jsx("text",{x:a,y:14,textAnchor:"middle",fontSize:10,fontWeight:700,fontFamily:o.font,fill:o.textMuted,children:m}),F.map((f,M)=>{const N=_(L.get(f.source)??0,y.length),P=_(B.get(f.target)??0,d.length),D=`${f.source}\0${f.target}`,O=i===D,ve=`M ${k+h},${N} C ${k+150},${N} ${a-150},${P} ${a},${P}`,X=A/2,K=(N+P)/2;return t.jsxs("g",{onMouseEnter:()=>r(D),onMouseLeave:()=>r(null),children:[t.jsx("path",{d:ve,fill:"none",stroke:l[M%l.length],strokeWidth:Math.max(2,f.value/I*18),opacity:i===null||O?.7:.14,strokeLinecap:"round",style:{transition:"opacity 0.15s",cursor:"default"}}),O?t.jsxs("g",{pointerEvents:"none",children:[t.jsx("rect",{x:X-72,y:K-18,width:144,height:36,rx:5,fill:o.cellBg,stroke:o.cellBorder}),t.jsxs("text",{x:X,y:K-3,textAnchor:"middle",fontSize:9.5,fontFamily:o.font,fill:o.textSecondary,children:[f.source," → ",f.target]}),t.jsx("text",{x:X,y:K+11,textAnchor:"middle",fontSize:11,fontWeight:700,fontFamily:o.fontMono,fill:o.textPrimary,children:E(f.value,p,n==null?void 0:n.format)})]}):null]},D)}),y.map((f,M)=>{const N=_(M,y.length);return t.jsxs("g",{children:[t.jsx("rect",{x:k,y:N-9,width:h,height:18,rx:3,fill:l[M%l.length]}),t.jsx("text",{x:k-7,y:N+3,textAnchor:"end",fontSize:10.5,fontFamily:o.font,fill:o.textSecondary,children:f.length>18?`${f.slice(0,17)}…`:f})]},`source-${f}`)}),d.map((f,M)=>{const N=_(M,d.length);return t.jsxs("g",{children:[t.jsx("rect",{x:a,y:N-9,width:h,height:18,rx:3,fill:l[(M+y.length)%l.length]}),t.jsx("text",{x:a+h+7,y:N+3,textAnchor:"start",fontSize:10.5,fontFamily:o.font,fill:o.textSecondary,children:f.length>18?`${f.slice(0,17)}…`:f})]},`target-${f}`)})]})})}function mt({result:e,themeMode:s,chartConfig:n}){const o=R[s],[l,i]=W.useState(null),{labelCol:r,valueCol:z}=q(e,n),j=e.rows.slice(0,15).map(k=>({label:String(k[r]??""),value:Number(k[z]??0)}));if(j.length===0)return null;let b=0;const u=j.map(k=>{const a=b;return b+=k.value,{...k,start:a,end:b}}),m=u.flatMap(k=>[k.start,k.end]),p=Math.min(0,...m),v=Math.max(0,...m)-p||1,x=560,w=240,y=52,d=16,c=16,T=44,F=x-y-d,I=w-c-T,A=F/u.length,$=k=>c+I-(k-p)/v*I;return t.jsx("div",{style:{padding:"8px 0"},children:t.jsxs("svg",{width:"100%",height:w,viewBox:`0 0 ${x} ${w}`,preserveAspectRatio:"xMidYMid meet",style:{display:"block",overflow:"visible"},children:[Array.from({length:6},(k,a)=>{const h=p+v*a/5,g=$(h);return t.jsxs("g",{children:[t.jsx("line",{x1:y,y1:g,x2:y+F,y2:g,stroke:o.tableBorder,strokeWidth:.5}),t.jsx("text",{x:y-6,y:g+4,textAnchor:"end",fontSize:10,fontFamily:o.fontMono,fill:o.textMuted,children:E(h,z,n==null?void 0:n.format)})]},a)}),t.jsx("line",{x1:y,y1:$(0),x2:y+F,y2:$(0),stroke:o.textMuted,strokeWidth:1,strokeDasharray:"3,3"}),u.map((k,a)=>{const h=y+a*A,g=$(Math.max(k.start,k.end)),L=$(Math.min(k.start,k.end))-g,B=k.value>=0,f=l===a;return t.jsxs("g",{onMouseEnter:()=>i(a),onMouseLeave:()=>i(null),children:[a<u.length-1&&t.jsx("line",{x1:h+A-2,y1:$(k.end),x2:h+A+2,y2:$(k.end),stroke:o.textMuted,strokeWidth:1,strokeDasharray:"2,2"}),t.jsx("rect",{x:h+4,y:g,width:A-8,height:Math.max(L,1),rx:2,fill:B?o.success:o.error,opacity:f?1:.8,style:{transition:"opacity 0.1s"}}),f&&t.jsxs("text",{x:h+A/2,y:g-4,textAnchor:"middle",fontSize:10,fontFamily:o.fontMono,fill:o.textPrimary,children:[k.value>=0?"+":"",E(k.value,z,n==null?void 0:n.format)]})]},a)}),u.map((k,a)=>t.jsx("text",{x:y+a*A+A/2,y:w-6,textAnchor:"middle",fontSize:9,fontFamily:o.font,fill:o.textMuted,transform:`rotate(-20, ${y+a*A+A/2}, ${w-6})`,children:k.label.length>8?k.label.slice(0,7)+"…":k.label},a)),t.jsx("line",{x1:y,y1:c,x2:y,y2:c+I,stroke:o.tableBorder,strokeWidth:1}),t.jsx("line",{x1:y,y1:c+I,x2:y+F,y2:c+I,stroke:o.tableBorder,strokeWidth:1})]})})}function yt({result:e,themeMode:s,chartConfig:n}){const o=R[s],l=e.rows[0];if(!l)return null;const i=(n!=null&&n.y&&e.columns.includes(n.y)?n.y:void 0)??e.columns.find($=>U(l[$]))??e.columns[0],r=Number(l[i]??0),z=(n==null?void 0:n.title)??i,j=r>100?r*1.2:100,b=Math.min(Math.max(r/j,0),1),u=120,m=110,p=80,S=Math.PI,v=0,x=S-(S-v)*b,w=u+p*Math.cos(S),y=m+p*Math.sin(S),d=u+p*Math.cos(x),c=m+p*Math.sin(x),T=b>.5?1:0,F=u+p*Math.cos(v),I=m+p*Math.sin(v),A=b<.33?o.error:b<.66?o.warning:o.success;return t.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",padding:"16px 24px"},children:t.jsxs("svg",{width:240,height:140,style:{display:"block",overflow:"visible"},children:[t.jsx("path",{d:`M ${w} ${y} A ${p} ${p} 0 1 1 ${F} ${I}`,fill:"none",stroke:o.tableBorder,strokeWidth:12,strokeLinecap:"round"}),b>0&&t.jsx("path",{d:`M ${w} ${y} A ${p} ${p} 0 ${T} 1 ${d} ${c}`,fill:"none",stroke:A,strokeWidth:12,strokeLinecap:"round"}),t.jsx("text",{x:u,y:m-4,textAnchor:"middle",fontSize:28,fontFamily:o.fontMono,fill:A,fontWeight:700,children:E(r,i,n==null?void 0:n.format)}),t.jsx("text",{x:u,y:m+16,textAnchor:"middle",fontSize:11,fontFamily:o.font,fill:o.textMuted,children:z})]})})}function ft(e,s,n,o){const l=Number(s);return s==null||typeof s!="number"&&isNaN(l)?s==null?"—":String(s):oe(e,s,n,{compact:Math.abs(l)>=1e5,format:o})}function be({result:e,themeMode:s,chartConfig:n}){const o=R[s],l=H(n==null?void 0:n.colorPalette),i=e.rows[0];if(!i)return null;const r=n!=null&&n.y&&e.columns.includes(n.y)?n.y:e.columns.find(j=>U(i[j]))??e.columns[0],z=ft(r,i[r],e.rows.map(j=>j[r]),n==null?void 0:n.format);return t.jsx("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",minHeight:54,padding:"8px 4px",boxSizing:"border-box",minWidth:0},children:t.jsx("span",{title:String(i[r]),style:{fontSize:"clamp(24px, 3.2vw, 40px)",fontWeight:750,fontFamily:o.fontMono,color:l[0]??o.accent,lineHeight:1.1,maxWidth:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:z})})}function ht({config:e,columns:s,onChange:n,onClose:o,t:l}){const i={background:l.inputBg,border:`1px solid ${l.inputBorder}`,borderRadius:4,color:l.textPrimary,fontSize:11,fontFamily:l.font,padding:"4px 8px",outline:"none",width:"100%",boxSizing:"border-box"};return t.jsxs("div",{style:{position:"absolute",top:4,right:4,zIndex:100,background:l.cellBg,border:`1px solid ${l.headerBorder}`,borderRadius:8,padding:12,width:240,boxShadow:"0 4px 16px rgba(0,0,0,0.3)",display:"grid",gap:8},onClick:r=>r.stopPropagation(),children:[t.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[t.jsx("span",{style:{fontSize:11,fontWeight:600,color:l.textPrimary,fontFamily:l.font},children:"Chart Settings"}),t.jsx("button",{onClick:o,style:{background:"none",border:"none",color:l.textMuted,cursor:"pointer",fontSize:14},children:"×"})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["Title",t.jsx("input",{value:e.title??"",onChange:r=>n({title:r.target.value||void 0}),placeholder:"Chart title",style:{...i,marginTop:2}})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["X-axis label",t.jsx("input",{value:e.xLabel??"",onChange:r=>n({xLabel:r.target.value||void 0}),placeholder:"Auto",style:{...i,marginTop:2}})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["Y-axis label",t.jsx("input",{value:e.yLabel??"",onChange:r=>n({yLabel:r.target.value||void 0}),placeholder:"Auto",style:{...i,marginTop:2}})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["Legend",t.jsxs("select",{value:e.legendPosition??"top",onChange:r=>n({legendPosition:r.target.value}),style:{...i,marginTop:2},children:[t.jsx("option",{value:"top",children:"Top"}),t.jsx("option",{value:"bottom",children:"Bottom"}),t.jsx("option",{value:"left",children:"Left"}),t.jsx("option",{value:"right",children:"Right"}),t.jsx("option",{value:"none",children:"Hidden"})]})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["Color palette",t.jsx("select",{value:e.colorPalette??"default",onChange:r=>n({colorPalette:r.target.value}),style:{...i,marginTop:2},children:Object.keys(ee).map(r=>t.jsx("option",{value:r,children:r.charAt(0).toUpperCase()+r.slice(1)},r))})]}),t.jsxs("label",{style:{fontSize:10,color:l.textMuted,fontFamily:l.font},children:["Max items",t.jsx("input",{type:"number",value:e.maxItems??V,min:5,max:200,onChange:r=>n({maxItems:parseInt(r.target.value)||V}),style:{...i,marginTop:2}})]})]})}function Tt({result:e,themeMode:s,chartConfig:n,onConfigChange:o}){const l=R[s],i=st(e,n),[r,z]=W.useState(!1);return i==="kpi"?t.jsx(be,{result:e,themeMode:s,chartConfig:n}):t.jsxs("div",{style:{position:"relative"},children:[(n==null?void 0:n.title)&&t.jsx("div",{style:{padding:"8px 12px 0",fontSize:13,fontWeight:600,color:l.textPrimary,fontFamily:l.font,textAlign:"center"},children:n.title}),o&&t.jsx("button",{onClick:()=>z(!r),title:"Chart settings",style:{position:"absolute",top:4,right:4,zIndex:50,background:r?`${l.accent}18`:"transparent",border:`1px solid ${r?l.accent:"transparent"}`,borderRadius:4,color:r?l.accent:l.textMuted,cursor:"pointer",fontSize:14,padding:"2px 6px",lineHeight:1},children:"⚙"}),r&&o&&t.jsx(ht,{config:n??{},columns:e.columns,onChange:j=>o(j),onClose:()=>z(!1),t:l}),bt(i,e,s,n)]})}function bt(e,s,n,o){const l=o!=null&&o.x&&s.columns.includes(o.x)?o.x:void 0,i=o!=null&&o.y&&s.columns.includes(o.y)?o.y:void 0,r=l||i?gt(s,l,i):s;switch(e){case"line":return t.jsx(de,{result:r,themeMode:n,chartConfig:o});case"area":return t.jsx(de,{result:r,themeMode:n,chartConfig:o,showArea:!0});case"bar":return t.jsx(se,{result:r,themeMode:n,chartConfig:o});case"grouped-bar":return t.jsx(rt,{result:r,themeMode:n,chartConfig:o});case"stacked-bar":return t.jsx(it,{result:r,themeMode:n,chartConfig:o});case"scatter":return t.jsx(at,{result:s,themeMode:n,chartConfig:o});case"pie":return t.jsx(xe,{result:s,themeMode:n,chartConfig:o,isDonut:!1});case"donut":return t.jsx(xe,{result:s,themeMode:n,chartConfig:o,isDonut:!0});case"heatmap":return t.jsx(dt,{result:s,themeMode:n});case"histogram":return t.jsx(xt,{result:s,themeMode:n,chartConfig:o});case"funnel":return t.jsx(ut,{result:s,themeMode:n,chartConfig:o});case"sankey":return t.jsx(pt,{result:s,themeMode:n,chartConfig:o});case"waterfall":return t.jsx(mt,{result:s,themeMode:n,chartConfig:o});case"gauge":return t.jsx(yt,{result:s,themeMode:n,chartConfig:o});case"kpi":return t.jsx(be,{result:s,themeMode:n,chartConfig:o});default:return t.jsx(C,{result:s,themeMode:n})}}function gt(e,s,n){const o=e.columns,l=[];s&&o.includes(s)&&l.push(s),n&&o.includes(n)&&l.push(n);for(const i of o)l.includes(i)||l.push(i);return l.join(",")===o.join(",")?e:{...e,columns:l,rows:e.rows.map(i=>{const r={};for(const z of l)r[z]=i[z];return r})}}function Ft(e){return new Set(e.tiles.filter(s=>!s.error&&s.selectedByDefault).map(s=>s.id))}function Nt({proposal:e,t:s,selected:n,onToggle:o,onCreate:l,busy:i,error:r,compact:z}){const j=e.tiles.filter(x=>!x.error),b=e.tiles.filter(x=>x.error),u=j.filter(x=>n.has(x.id)).length,m=j.filter(x=>n.has(x.id)&&x.certification==="ai_generated").length,p=j.filter(x=>n.has(x.id)&&x.certification==="reviewed_semantic").length,v=j.filter(x=>n.has(x.id)&&x.certification==="certified").length+p>0||e.intent.target==="personal"&&m>0;return t.jsxs("div",{style:{display:"grid",gap:10},children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[t.jsx("span",{style:{fontSize:12.5,fontWeight:800,color:s.textPrimary},children:"Build Brief"}),t.jsxs("span",{style:{fontSize:11,color:s.textMuted},children:[e.coverage.certifiedTiles," certified",e.coverage.semanticTiles>0?` · ${e.coverage.semanticTiles} governed semantic`:"",e.coverage.generatedTiles>0?` · ${e.coverage.generatedTiles} exploratory`:"",e.coverage.gaps>0?` · ${e.coverage.gaps} uncovered`:""]}),t.jsxs("span",{style:{fontSize:10.5,color:s.textMuted},children:[e.intent.target==="personal"?"Personal Draft":"Shared Project target"," · starts private"]})]}),t.jsxs("div",{style:{display:"grid",gap:6},children:[j.map(x=>t.jsx(vt,{tile:x,t:s,checked:n.has(x.id),onToggle:()=>o(x.id),compact:z},x.id)),b.map(x=>t.jsxs("div",{style:{...ge(s),opacity:.75},children:[t.jsx(je,{size:13,color:s.warning,style:{flexShrink:0,marginTop:2}}),t.jsxs("div",{style:{minWidth:0,flex:1},children:[t.jsx("div",{style:{fontSize:12,fontWeight:700,color:s.textSecondary},children:x.title}),t.jsx("div",{style:{fontSize:11,color:s.textMuted,marginTop:1},children:x.error})]})]},x.id))]}),e.gaps.length>0?t.jsxs("div",{style:{display:"grid",gap:4},children:[t.jsx("div",{style:{fontSize:11,fontWeight:800,color:s.textMuted,textTransform:"uppercase",letterSpacing:"0.04em"},children:"Not covered yet"}),e.gaps.map(x=>t.jsxs("div",{style:{display:"flex",gap:7,alignItems:"flex-start",fontSize:11.5,color:s.textMuted},children:[t.jsx(Fe,{size:12,style:{flexShrink:0,marginTop:2}}),t.jsx("span",{style:{lineHeight:1.4},children:x.question})]},x.id))]}):null,r?t.jsx("div",{style:{fontSize:12,color:s.error},children:r}):null,t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:9,flexWrap:"wrap"},children:[t.jsxs("button",{type:"button",className:"dql-hover",onClick:l,disabled:i||!v,style:Mt(s,v&&!i),children:[i?t.jsx(Se,{size:13,style:{animation:"dql-agent-run-spin 0.8s linear infinite"}}):t.jsx(we,{size:13}),t.jsx("span",{children:i?"Building draft…":`Build draft (${u} tile${u===1?"":"s"})`})]}),t.jsx("span",{style:{fontSize:11,color:s.textMuted},children:v?p>0?`${p} semantic tile${p===1?"":"s"} will compile against the governed semantic layer and still require result review.`:m>0?`${m} AI-generated tile${m===1?"":"s"} will stay review-required until certified.`:"No App files are written until you confirm this brief.":e.intent.target==="personal"?"Select a certified, semantic, or explicitly accepted exploratory tile.":"Select at least one certified block or governed semantic tile."})]})]})}function vt({tile:e,t:s,checked:n,onToggle:o,compact:l}){var u,m;const[i,r]=W.useState(!1),z=e.certification==="certified",j=e.certification==="reviewed_semantic",b=!!(e.sql||e.answer||e.preview&&e.preview.rows.length>0);return t.jsxs("div",{style:ge(s),children:[t.jsx("input",{type:"checkbox",checked:n,onChange:o,"aria-label":`Include ${e.title}`,style:{marginTop:2,accentColor:s.accent,cursor:"pointer",flexShrink:0}}),t.jsxs("div",{style:{minWidth:0,flex:1},children:[t.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap"},children:[t.jsx("span",{style:{fontSize:12.5,fontWeight:750,color:s.textPrimary},children:e.title}),z?t.jsxs("span",{style:J(s.success),children:[t.jsx(Me,{size:10})," certified"]}):j?t.jsxs("span",{style:J(s.accent),children:[t.jsx(le,{size:10})," governed semantic · review required"]}):t.jsxs("span",{style:J(s.warning),children:[((u=e.repair)==null?void 0:u.status)==="repaired"?t.jsx(ke,{size:10}):t.jsx(le,{size:10}),((m=e.repair)==null?void 0:m.status)==="repaired"?"auto-repaired · needs review":"AI-generated · needs review"]}),t.jsx("span",{style:{fontSize:10,color:s.textMuted},children:e.viz})]}),e.description&&!l?t.jsx("div",{style:{fontSize:11.5,color:s.textSecondary,marginTop:2,lineHeight:1.4},children:e.description}):null,e.question&&e.question!==e.title?t.jsxs("div",{style:{fontSize:11,color:s.textMuted,marginTop:2},children:["Answers: ",e.question]}):null,l?null:t.jsxs("div",{style:{fontSize:10.5,color:e.preflight.status==="passed"?s.success:e.preflight.status==="blocked"?s.error:s.textMuted,marginTop:2},children:["Preflight: ",e.preflight.status.replace("_"," ")," · ",e.preflight.message]}),e.repair?t.jsxs("div",{style:{fontSize:10.5,color:e.repair.status==="repaired"?s.warning:s.error,marginTop:3,lineHeight:1.4},children:["Repair evidence: ",e.repair.message]}):null,b?t.jsxs("button",{type:"button",onClick:()=>r(p=>!p),style:{border:"none",background:"transparent",color:s.accent,cursor:"pointer",display:"inline-flex",alignItems:"center",gap:3,fontSize:10.5,fontWeight:700,padding:0,marginTop:4,fontFamily:s.font},children:[i?t.jsx($e,{size:11}):t.jsx(Ae,{size:11}),t.jsx(_e,{size:11})," ",i?"Hide details":"Show SQL & preview"]}):null,i&&e.answer?t.jsx("div",{style:{fontSize:11.5,color:s.textSecondary,marginTop:5,lineHeight:1.4},children:e.answer}):null,i&&e.sql?t.jsx("pre",{style:wt(s),children:e.sql}):null,i&&e.preview&&e.preview.rows.length>0?t.jsx(jt,{preview:e.preview,t:s}):null]})]})}function jt({preview:e,t:s}){const n=e.columns.slice(0,5),o=e.rows.slice(0,5);return t.jsxs("div",{style:{marginTop:5,overflow:"auto",border:`1px solid ${s.headerBorder}`,borderRadius:6},children:[t.jsxs("table",{style:{borderCollapse:"collapse",fontSize:10.5,fontFamily:s.fontMono,width:"100%"},children:[t.jsx("thead",{children:t.jsx("tr",{children:n.map(l=>t.jsx("th",{style:{textAlign:"left",padding:"3px 8px",color:s.textMuted,borderBottom:`1px solid ${s.headerBorder}`,fontWeight:700,whiteSpace:"nowrap"},children:l},l))})}),t.jsx("tbody",{children:o.map((l,i)=>t.jsx("tr",{children:n.map(r=>t.jsx("td",{style:{padding:"3px 8px",color:s.textSecondary,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",maxWidth:160},children:St(l[r])},r))},i))})]}),typeof e.rowCount=="number"&&e.rowCount>o.length?t.jsxs("div",{style:{fontSize:10,color:s.textMuted,padding:"3px 8px"},children:[e.rowCount," rows total"]}):null]})}function St(e){return e==null?"":typeof e=="number"?Number.isInteger(e)?String(e):e.toFixed(2):String(e)}function ge(e){return{display:"flex",gap:9,alignItems:"flex-start",border:`1px solid ${e.cellBorder}`,background:e.cellBg,borderRadius:8,padding:"9px 11px"}}function J(e){return{display:"inline-flex",alignItems:"center",gap:3,border:`1px solid ${e}55`,color:e,background:`${e}12`,borderRadius:999,padding:"1px 7px",fontSize:9.5,fontWeight:800}}function wt(e){return{margin:"5px 0 0",maxHeight:140,overflow:"auto",border:`1px solid ${e.headerBorder}`,background:e.editorBg,borderRadius:6,padding:8,fontSize:10.5,fontFamily:e.fontMono,color:e.textSecondary,lineHeight:1.45,whiteSpace:"pre-wrap"}}function Mt(e,s){return{display:"inline-flex",alignItems:"center",gap:6,border:"none",borderRadius:8,padding:"8px 14px",fontSize:12.5,fontWeight:800,fontFamily:e.font,cursor:s?"pointer":"default",background:s?e.accent:`${e.accent}55`,color:"#fff"}}function It(e){const s=`dql.agent.threadId.${e}`,[n,o]=W.useState(()=>ue(s));W.useEffect(()=>{o(ue(s))},[s]);const l=W.useCallback(r=>{o(r);try{window.localStorage.setItem(s,r)}catch{}},[s]),i=W.useCallback(()=>{o(void 0);try{window.localStorage.removeItem(s)}catch{}},[s]);return{threadId:n,onThreadIdChange:l,resetThreadId:i}}function ue(e){try{return window.localStorage.getItem(e)??void 0}catch{return}}export{Nt as A,_t as C,Fe as F,kt as S,C as T,st as a,Tt as b,zt as c,_e as d,Ft as e,oe as f,Be as i,bt as r,It as u};