@font-face{font-family:Libre Franklin;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/LibreFranklin[wght].woff2)format("woff2-variations"),url(/fonts/LibreFranklin-Regular.woff2)format("woff2")}@font-face{font-family:Libre Franklin;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/LibreFranklin-Italic[wght].woff2)format("woff2-variations"),url(/fonts/LibreFranklin-Italic.woff2)format("woff2")}:root{--color-transparent:transparent;--color-canvas:#f2f2f2;--color-surface:#fff;--color-surface-muted:#f2f2f2;--color-surface-subtle:#e5e5e5;--color-surface-strong:#bfbfbf;--color-surface-inverse:#121212;--color-surface-agent:#ebf1f0;--color-surface-agent-subtle:#f5f8f7;--color-surface-agent-raised:#dbe2e1;--color-surface-preview:#cfeeea;--color-surface-selection:#e3f7ef;--color-navigation-container:#e5f0e8;--color-navigation-inverse:#004c45;--color-action-primary:#172d2d;--color-action-primary-hover:#004c45;--color-action-primary-disabled:gray;--color-action-outline-hover:#e5f0e8;--color-action-interactive:#0f748b;--color-action-interactive-hover:#0e687d;--color-action-interactive-disabled:#d9f2f7;--color-action-card:#a4dcb4;--color-action-card-hover:#004c45;--color-border-default:gray;--color-border-subdued:#d2d2d2;--color-border-focus:#d9f2f7;--color-border-blue:#17aed0;--color-border-red:#bb363c;--color-border-yellow:#f7c11b;--color-border-green:#316e68;--color-border-agent:#cdd9d7;--color-border-agent-strong:#626d6b;--color-border-green-gray:#c8d1d0;--color-text-default:#121212;--color-text-subdued:#404040;--color-text-placeholder:#666;--color-text-disabled:#bfbfbf;--color-text-inverse:#fff;--color-text-inverse-subdued:#e5e5e5;--color-text-red:#9c1d24;--color-text-display:#004c45;--color-text-agent:#172d2d;--color-text-agent-subdued:#626d6b;--color-text-deep-green:#24302f;--color-text-code-green:#256d28;--color-text-code-key:#844b1f;--color-decorative-blue:#d9f2f7;--color-decorative-red:#edd5d5;--color-decorative-yellow:#f6dfa3;--color-decorative-green:#d5ebdb;--color-decorative-purple:#cfd4e4;--color-decorative-gray:#e5e5e5;--color-icon-default:#121212;--color-icon-yellow:#a4680e;--color-icon-red:#bb363c;--color-icon-purple:#6b7ea6;--color-icon-green:#004c45;--color-icon-blue:#0e687d;--fg1:var(--color-text-default);--fg2:var(--color-text-subdued);--fg3:var(--color-text-placeholder);--fg-inverse:var(--color-text-inverse);--bg-canvas:var(--color-canvas);--bg-surface:var(--color-surface);--bg-surface-hover:var(--color-surface-muted);--primary:var(--color-action-primary);--primary-hover:var(--color-action-primary-hover);--accent-green:var(--color-text-display);--accent-blue:var(--color-action-interactive);--space-none:0px;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:40px;--space-3xl:48px;--space-4xl:64px;--space-5xl:80px;--space-6xl:96px;--space-7xl:160px;--radius-none:0px;--radius-xxs:4px;--radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-guided:18px;--radius-lg:24px;--radius-full:9999px;--elev-none:none;--elev-button:0px 1px 0px rgba(18,18,18,.05),inset 0px -1px 0px rgba(18,18,18,.2);--elev-depth4:0px 4px 10px rgba(18,18,18,.12),0px 1px 3px rgba(18,18,18,.08);--elev-input-raised:0px 1px 3px rgba(18,18,18,.08),0px 4px 10px rgba(18,18,18,.12);--elev-depth16:0px 10px 25px rgba(18,18,18,.15),0px 1px 3px rgba(18,18,18,.08);--elev-guided:0px 28px 60px rgba(36,48,47,.12);--elev-depth64:0px 24px 60px rgba(18,18,18,.2),0px 4px 8px rgba(18,18,18,.18);--motion-fast:.15s;--motion-normal:.25s;--motion-slow:.35s;--ease-standard:cubic-bezier(.4,0,.2,1);--ease-decelerate:cubic-bezier(0,0,.2,1);--ease-accelerate:cubic-bezier(.4,0,1,1);--layout-sidebar-width:200px;--layout-modal-min-width:660px;--layout-field-height:48px;--layout-tab-active-border-width:2px;--layout-table-header-height:44px;--layout-table-row-height:56px;--layout-graph-node-width:136px;--layout-graph-node-height:144px;--layout-card-item-width:192px;--layout-card-item-height:136px;--layout-assistant-panel-min-width:36%;--layout-assistant-rail-collapsed-width:72px;--layout-assistant-input-height:60px;--layout-assistant-input-min-height:52px;--layout-assistant-input-max-width:1009px;--layout-source-chip-width:195px;--layout-source-chip-height:34px;--layout-guided-card-max-width:720px;--layout-guided-card-max-height:640px;--layout-guided-card-min-height:560px;--font-sans:"Libre Franklin",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--type-display-xxl-size:72px;--type-display-xxl-lh:90px;--type-display-xl-size:60px;--type-display-xl-lh:72px;--type-display-lg-size:48px;--type-display-lg-lh:60px;--type-display-md-size:36px;--type-display-md-lh:44px;--type-display-sm-size:30px;--type-display-sm-lh:38px;--type-display-xs-size:24px;--type-display-xs-lh:32px;--type-display-weight:600;--type-text-xxl-size:24px;--type-text-xxl-lh:32px;--type-text-xl-size:20px;--type-text-xl-lh:30px;--type-text-lg-size:18px;--type-text-lg-lh:28px;--type-text-md-size:16px;--type-text-md-lh:24px;--type-text-sm-size:14px;--type-text-sm-lh:20px;--type-text-xs-size:12px;--type-text-xs-lh:18px;--type-button-md-size:16px;--type-button-md-lh:24px;--type-button-md-weight:500;--type-label-sm-size:14px;--type-label-sm-lh:20px;--type-label-sm-weight:500}html,body{background:var(--bg-canvas);color:var(--fg1);font-family:var(--font-sans);font-size:var(--type-text-md-size);line-height:var(--type-text-md-lh);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ff-display-xxl,.ff-display-xl,.ff-display-lg,.ff-display-md,.ff-display-sm,.ff-display-xs{font-family:var(--font-sans);font-weight:var(--type-display-weight);letter-spacing:normal;color:var(--color-text-default);margin:0}.ff-display-xxl{font-size:var(--type-display-xxl-size);line-height:var(--type-display-xxl-lh)}.ff-display-xl{font-size:var(--type-display-xl-size);line-height:var(--type-display-xl-lh)}.ff-display-lg{font-size:var(--type-display-lg-size);line-height:var(--type-display-lg-lh)}.ff-display-md{font-size:var(--type-display-md-size);line-height:var(--type-display-md-lh)}.ff-display-sm{font-size:var(--type-display-sm-size);line-height:var(--type-display-sm-lh)}.ff-display-xs{font-size:var(--type-display-xs-size);line-height:var(--type-display-xs-lh)}.ff-text-xxl,.ff-text-xl,.ff-text-lg,.ff-text-md,.ff-text-sm,.ff-text-xs{font-family:var(--font-sans);letter-spacing:normal;color:var(--color-text-default);margin:0;font-weight:400}.ff-text-xxl{font-size:var(--type-text-xxl-size);line-height:var(--type-text-xxl-lh)}.ff-text-xl{font-size:var(--type-text-xl-size);line-height:var(--type-text-xl-lh)}.ff-text-lg{font-size:var(--type-text-lg-size);line-height:var(--type-text-lg-lh)}.ff-text-md{font-size:var(--type-text-md-size);line-height:var(--type-text-md-lh)}.ff-text-sm{font-size:var(--type-text-sm-size);line-height:var(--type-text-sm-lh)}.ff-text-xs{font-size:var(--type-text-xs-size);line-height:var(--type-text-xs-lh)}.ff-button-md{font-family:var(--font-sans);font-size:var(--type-button-md-size);line-height:var(--type-button-md-lh);font-weight:var(--type-button-md-weight);letter-spacing:normal}.ff-label-sm{font-family:var(--font-sans);font-size:var(--type-label-sm-size);line-height:var(--type-label-sm-lh);font-weight:var(--type-label-sm-weight);letter-spacing:normal}.ff-fg-default{color:var(--color-text-default)}.ff-fg-subdued{color:var(--color-text-subdued)}.ff-fg-placeholder{color:var(--color-text-placeholder)}.ff-fg-disabled{color:var(--color-text-disabled)}.ff-fg-inverse{color:var(--color-text-inverse)}.ff-fg-display{color:var(--color-text-display)}.ff-fg-red{color:var(--color-text-red)}.ff-fg-blue{color:var(--color-action-interactive)}h1{font-size:var(--type-display-md-size);line-height:var(--type-display-md-lh);font-weight:var(--type-display-weight);margin:0}h2{font-size:var(--type-display-sm-size);line-height:var(--type-display-sm-lh);font-weight:var(--type-display-weight);margin:0}h3{font-size:var(--type-display-xs-size);line-height:var(--type-display-xs-lh);font-weight:var(--type-display-weight);margin:0}h4{font-size:var(--type-text-lg-size);line-height:var(--type-text-lg-lh);margin:0;font-weight:600}p,li{font-size:var(--type-text-md-size);line-height:var(--type-text-md-lh);margin:0}small,.ff-caption{font-size:var(--type-text-xs-size);line-height:var(--type-text-xs-lh);color:var(--color-text-subdued)}code,kbd,pre{font-family:var(--font-mono);font-size:13px}.ff-focusable:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}button:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}a:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}input:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}select:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}textarea:focus-visible{outline:2px solid var(--color-action-interactive);outline-offset:2px;border-radius:var(--radius-xxs)}

*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-canvas);height:100%;color:var(--color-text-default);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}.app-shell{grid-template-rows:56px 1fr;grid-template-columns:240px 1fr;width:100vw;height:100vh;display:grid;overflow:hidden}.app-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border-subdued);padding:var(--space-md)var(--space-xs);z-index:10;flex-direction:column;grid-area:1/1/3;height:100%;display:flex}.app-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border-subdued);height:56px;padding:0 var(--space-lg);align-items:center;gap:var(--space-md);z-index:9;grid-area:1/2;display:flex}.app-canvas{background:var(--color-canvas);padding:var(--space-lg)var(--space-xl);grid-area:2/2;height:100%;overflow-y:auto}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ff-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}
