@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700;800&family=Geist+Mono:wght@400;500;600;700&display=swap");@tailwind base;@tailwind components;@tailwind utilities;:root{--font-geist:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-sans:var(--font-geist);--font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--color-base:#f3f5f9;--color-panel:#eaeef4;--color-surface:#fff;--color-surface-alt:#f8fafc;--color-border:#cdd5e0;--color-border-soft:#e3e8ef;--color-border-strong:#8e9aad;--color-accent:#4338ca;--color-accent-hover:#3730a3;--color-accent-soft:#eef0ff;--color-on-accent:#fff;--color-focus:rgba(67,56,202,.35);--color-navy:#1e293b;--color-navy-soft:#eff4ff;--color-text:#0b1220;--color-text-mid:#1e293b;--color-muted:#475569;--color-text-light:#5b6677;--grad-accent:linear-gradient(135deg,#4338ca,#6d28d9);--grad-hero-warm:linear-gradient(160deg,#f3f5f9,#eef0ff 60%,#f3eeff);--color-success:#15803d;--color-success-bg:#dcfce7;--color-failure:#b91c1c;--color-failure-bg:#fee2e2;--color-warning:#92400e;--color-warning-bg:#fef3c7;--color-running:#1d4ed8;--color-running-soft:rgba(29,78,216,.12);--color-running-faint:rgba(29,78,216,.06);--studio-canvas-bg:#eef1f6;--studio-grid:#b4bfce;--studio-controls-bg:#fff;--studio-controls-edge:#cdd5e0;--shadow-warm:0 1px 2px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.06);--shadow-pop:0 2px 4px rgba(15,23,42,.06),0 12px 32px rgba(15,23,42,.12)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-base);color:var(--color-text);font-family:var(--font-geist);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-accent-soft);color:var(--color-text)}.input-base{width:100%;background:var(--color-panel);border:1px solid var(--color-border-strong);border-radius:.5rem;padding:.5rem .75rem;font-size:.875rem;color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;background:var(--color-surface)}.input-base::placeholder{color:var(--color-text-light)}.input-base:hover{border-color:var(--color-muted)}.input-base:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus)}select.input-base{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}html.dim-mode{filter:brightness(.9)}.app-nav{height:3.5rem;display:flex;align-items:center;padding:0 1.5rem;gap:1.25rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:fixed;top:0;left:0;right:0;z-index:40}.app-nav a{color:var(--color-muted);text-decoration:none;font-size:.875rem}.app-nav a:hover{color:var(--color-text)}.app-nav .nav-brand{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.app-nav .nav-brand .logo-box{width:1.75rem;height:1.75rem;border-radius:.25rem;background:var(--grad-accent);display:flex;align-items:center;justify-content:center;color:var(--color-on-accent);font-weight:800;font-size:.875rem}.app-nav .nav-brand .logo-text{font-family:var(--font-mono);font-weight:700;font-size:.875rem;letter-spacing:.05em;color:var(--color-text)}.app-nav .nav-spacer{margin-left:auto}.app-nav .nav-divider{width:1px;height:1rem;background:var(--color-border);flex-shrink:0}.nav-links{gap:1.25rem}.nav-desktop,.nav-links{display:flex;align-items:center}.nav-mobile-trigger{display:none;align-items:center;justify-content:center;width:2rem;height:2rem;background:none;border:1px solid var(--color-border);border-radius:.375rem;cursor:pointer;color:var(--color-muted);flex-shrink:0}.nav-mobile-trigger:hover{color:var(--color-text);border-color:var(--color-accent)}.nav-mobile-menu{position:fixed;top:3.5rem;left:0;right:0;bottom:0;z-index:999;display:flex;flex-direction:column;background:var(--color-surface);border-bottom:2px solid var(--color-border);box-shadow:0 12px 32px rgba(15,23,42,.18);animation:nav-menu-in .18s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.nav-mobile-links{display:flex;flex-direction:column;flex-shrink:0}.nav-mobile-item{display:flex;align-items:center;padding:.875rem 1.5rem;font-size:.9375rem;color:var(--color-muted);text-decoration:none;border-bottom:1px solid var(--color-border);transition:background .1s,color .1s;gap:.625rem;background:none;font-family:inherit;flex-shrink:0}.nav-mobile-item:active{background:var(--color-panel)}@media (orientation:landscape) and (max-width:1024px){.nav-mobile-links{display:grid;grid-template-columns:1fr 1fr}.nav-mobile-item{padding:.5rem 1rem;font-size:.8125rem}.nav-mobile-links .nav-mobile-item:nth-child(odd){border-right:1px solid var(--color-border)}}@media (orientation:landscape) and (max-height:500px){.nav-desktop{display:none!important}.nav-mobile-trigger{display:flex!important}.app-nav{gap:.625rem;padding:0 .875rem}.nav-mobile-menu{top:3rem;flex-direction:row;flex-wrap:wrap;overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3rem)}.nav-mobile-links{display:grid;grid-template-columns:1fr 1fr;width:60%;flex-shrink:0;overflow-y:auto}.nav-mobile-links,.nav-mobile-links .nav-mobile-item:nth-child(odd){border-right:1px solid var(--color-border)}.nav-mobile-menu>div:last-child{width:40%;overflow-y:auto;display:flex;flex-direction:column}.nav-mobile-item{padding:.5rem .875rem;font-size:.8rem}}@keyframes nav-menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.nav-desktop{display:none!important}.nav-mobile-trigger{display:flex}.app-nav{gap:.75rem;padding:0 1rem}}.dashboard-page{max-width:64rem;margin-left:auto;margin-right:auto;padding:3rem 1.5rem}.dashboard-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2.5rem}.dashboard-title{font-size:1.875rem;font-weight:600;color:var(--color-text)}.dashboard-subtitle{font-size:.875rem;color:var(--color-muted);margin-top:.25rem}.dashboard-label{font-size:.75rem;font-family:var(--font-mono);color:var(--color-accent);letter-spacing:.1em;margin-bottom:.5rem}.btn-primary,.dashboard-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-accent);color:var(--color-on-accent);border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s,background .15s;white-space:nowrap}.btn-primary:hover,.dashboard-btn-primary:hover{opacity:.92;background:var(--color-accent-hover)}.btn-primary:active,.dashboard-btn-primary:active{transform:scale(.98)}.btn-primary:disabled,.dashboard-btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.about-section{padding:1.25rem 0;border-bottom:1px solid var(--color-border)}.about-section:last-of-type{border-bottom:none}.about-section-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--color-text);margin:0 0 .75rem}.about-body{font-size:.9375rem;line-height:1.65;color:var(--color-muted);margin:0}.about-creator .about-body{margin-bottom:1rem}.about-links{display:flex;flex-wrap:wrap;gap:.75rem}.about-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;color:var(--color-accent);background:var(--color-accent-soft);border:1px solid rgba(67,56,202,.28);border-radius:.5rem;text-decoration:none;transition:background .15s,border-color .15s}.about-link:hover{background:rgba(67,56,202,.12);border-color:var(--color-accent);color:var(--color-text)}.dashboard-grid{display:grid;grid-template-columns:repeat(1,1fr);grid-gap:1rem;gap:1rem}@media (min-width:640px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.dashboard-grid{grid-template-columns:repeat(3,1fr)}}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.75rem;padding:1.25rem;cursor:pointer}.dashboard-card:hover{border-color:var(--color-accent);background:var(--color-surface-alt)}.dashboard-card-title{font-weight:500;color:var(--color-text)}.dashboard-card-meta{font-size:.75rem;color:var(--color-muted);margin-top:.5rem}.dashboard-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.dashboard-empty h2{font-size:1.125rem;color:var(--color-text);margin-bottom:.5rem}.dashboard-empty p{font-size:.875rem;color:var(--color-muted);margin-bottom:1.5rem}.dashboard-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:50}.dashboard-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:.875rem;width:36rem;max-width:90vw;max-height:90vh;overflow:auto;padding:1.75rem}.studio-root{display:flex;flex-direction:row;height:calc(100vh - 3.5rem);min-height:0;background:var(--color-base)}.studio-sidebar-wrapper{position:relative;width:15rem;flex-shrink:0;height:100%;overflow:hidden;transition:transform .22s ease,width .22s ease,opacity .22s ease,margin .22s ease}.studio-sidebar-wrapper.collapsed{transform:translateX(-100%);width:0;opacity:0;overflow:hidden;margin-right:0}.studio-sidebar-wrapper.open{transform:translateX(0);width:15rem;opacity:1}.studio-sidebar{width:15rem;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.studio-sidebar-header{padding:1rem 1rem .875rem;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;background:var(--color-surface);z-index:1}.studio-sidebar-header .title{font-size:.9375rem;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.studio-sidebar-header .subtitle{font-size:.8125rem;color:var(--color-muted);margin-top:.125rem}.studio-sidebar-body{padding:.75rem .75rem 1rem;display:flex;flex-direction:column;gap:1rem}.studio-sidebar-footer{margin-top:auto;padding:.875rem 1rem;border-top:1px solid var(--color-border);font-size:.8125rem;color:var(--color-muted);line-height:1.5}.studio-main{flex:1 1;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.studio-toolbar{height:3.5rem;flex-shrink:0;display:flex;align-items:center;padding:0 1rem;gap:.625rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.studio-toolbar-breadcrumb{font-size:.875rem;color:var(--color-muted);background:none;border:none;cursor:pointer;font-weight:500;padding:.25rem .375rem;border-radius:.375rem}.studio-toolbar-breadcrumb:hover{color:var(--color-text);background:var(--color-panel)}.studio-toolbar-title{font-size:.9375rem;font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.01em}.studio-toolbar-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}.studio-toolbar-btn{display:inline-flex;align-items:center;gap:.4375rem;height:2.25rem;padding:0 .875rem;font-size:.875rem;font-weight:500;border-radius:.5rem;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-mid);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.studio-toolbar-btn:hover{color:var(--color-text);background:var(--color-panel);border-color:var(--color-border-strong)}.studio-toolbar-btn.accent{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent);font-weight:600;box-shadow:0 1px 2px rgba(67,56,202,.3)}.studio-toolbar-btn.accent:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);color:var(--color-on-accent)}.studio-toolbar-btn:disabled{opacity:.55;cursor:not-allowed}.studio-canvas-row{flex:1 1;display:flex;flex-direction:row;min-height:0;min-width:0}.studio-canvas-wrap{flex:1 1;min-width:0;min-height:0;position:relative;width:100%;height:100%}.studio-canvas-wrap>div{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:400px}.studio-sidebar-toggle{position:absolute;top:.75rem;left:.75rem;z-index:10;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;border:1px solid var(--color-border);background:hsla(0,0%,100%,.95);color:var(--color-text-mid);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow-warm);transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}.studio-sidebar-toggle:hover{background:var(--color-surface-alt);border-color:var(--color-accent);color:var(--color-text);box-shadow:0 0 0 3px var(--color-focus);transform:translateY(-1px)}@media (min-width:1024px){.studio-sidebar-toggle{left:1rem;top:1rem}}@media (max-width:768px){.studio-root{flex-direction:column;height:calc(100vh - 3.5rem);min-height:0}.studio-sidebar-wrapper{position:absolute;z-index:30;height:100%;overflow:hidden}.studio-sidebar{max-width:80vw;height:100%}.studio-canvas-row{flex:1 1}.studio-canvas-wrap>div{min-height:320px}}.transfer-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem;align-items:start}@media (max-width:768px){.transfer-grid{grid-template-columns:1fr}}.stats-grid-4{grid-template-columns:repeat(4,1fr);grid-gap:1rem}.stats-grid-3,.stats-grid-4{display:grid;gap:1rem;margin-bottom:2rem}.stats-grid-3{grid-template-columns:repeat(3,1fr);grid-gap:1rem}@media (max-width:768px){.stats-grid-3,.stats-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stats-grid-4{grid-template-columns:repeat(2,1fr);gap:.625rem}.stats-grid-3{grid-template-columns:1fr;gap:.625rem}}.dash-fullwidth{max-width:100%!important;margin:0!important;padding:2.5rem 3rem!important}@media (min-width:2000px){.dash-fullwidth{padding:2.5rem 4.5rem!important}}@media (max-width:900px){.dash-fullwidth{padding:2rem 1.5rem!important}}@media (max-width:768px){.dash-fullwidth{padding:1.5rem 1rem!important}}@media (max-width:480px){.dash-fullwidth{padding:1rem .75rem!important}}.dash-gauge-chart{grid-template-columns:320px 1fr;grid-gap:1.5rem}.dash-gauge-chart,.dash-two-col{display:grid;gap:1.5rem;margin-bottom:1.5rem}.dash-two-col{grid-template-columns:1fr 1fr;grid-gap:1.5rem}@media (max-width:900px){.dash-gauge-chart,.dash-two-col{grid-template-columns:1fr}}@media (max-width:768px){.dash-gauge-chart,.dash-two-col{gap:1rem;margin-bottom:1rem}.stats-grid-3,.stats-grid-4{margin-bottom:1rem}.page-wrapper{padding:1.5rem 1rem!important}}@media (max-width:480px){.page-wrapper{padding:1rem .75rem!important}}.dash-page-title{font-size:2rem;font-weight:700;line-height:1.15}@media (max-width:480px){.dash-page-title{font-size:1.4rem}}.kpi-pad{padding:1.25rem 1.5rem;border-radius:1rem}@media (max-width:768px){.kpi-pad{padding:1rem}}@media (max-width:480px){.kpi-pad{padding:.875rem;border-radius:.75rem}}.dash-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:1rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem}@media (max-width:768px){.dash-card{padding:1rem;margin-bottom:1rem}}@media (max-width:480px){.dash-card{padding:.875rem;margin-bottom:.875rem;border-radius:.75rem}}.chart-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.chart-scroll-x::-webkit-scrollbar{height:4px}.chart-scroll-x::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.two-col-panel{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0}@media (max-width:768px){.two-col-panel{grid-template-columns:1fr}.two-col-panel>:first-child{border-right:none!important;border-bottom:1px solid var(--color-border)}}.info-banner-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.5rem;gap:1.5rem}@media (max-width:768px){.info-banner-grid{grid-template-columns:1fr;gap:1rem}}.pulse-card-row{padding:1.375rem 1.75rem;display:flex;align-items:center;gap:1.25rem}.pulses-header{margin-bottom:2.5rem}@media (max-width:640px){.pulse-info-banner{flex-wrap:wrap;padding:.875rem 1rem}.pulse-info-banner code{word-break:break-all;white-space:normal;font-size:.775rem}}@media (max-width:768px){.pulses-page{padding:1.5rem 1rem!important}.pulses-header{margin-bottom:1.5rem}.pulses-header h1{font-size:1.5rem!important}.pulse-card-row{padding:1rem 1.25rem;gap:.875rem}}@media (max-width:600px){.pulses-page{padding:1.25rem .875rem!important}.pulse-card-row{flex-wrap:wrap;padding:.875rem 1rem;gap:.75rem}.pulse-card-row>div:first-child{width:2.5rem!important;height:2.5rem!important}.pulse-card-actions{width:100%;justify-content:flex-end;padding-top:.25rem;border-top:1px solid var(--color-border)}.pulse-endpoint-pill{max-width:100%!important}.pulse-endpoint-url{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}.pulse-test-panel{padding:1rem!important}}.pulse-test-panel{padding:1.75rem}@media (max-width:640px){.app-nav{padding:0 .75rem;gap:.625rem;overflow-x:auto;scrollbar-width:none}.app-nav::-webkit-scrollbar{display:none}.app-nav a{font-size:.8rem;white-space:nowrap}.app-nav .logo-text,.app-nav .nav-divider,.nav-version{display:none}}@media (max-width:480px){.app-nav{gap:.5rem}.page-header-row{flex-direction:column!important;align-items:flex-start!important}}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.25rem;padding:.6rem .9rem;border-radius:9999px;border:1px solid var(--color-border-soft);background:radial-gradient(circle at top left,rgba(67,56,202,.08),transparent 55%),radial-gradient(circle at bottom right,rgba(30,58,95,.07),transparent 55%),var(--color-surface);box-shadow:var(--shadow-warm)}.pagination-summary{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:var(--color-muted)}.pagination-summary strong{font-weight:600;color:var(--color-text)}.pagination-controls{display:flex;align-items:center;gap:.75rem}.pagination-page-size{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--color-muted)}.pagination-page-size .input-base{width:3.25rem;padding-inline:.4rem;font-size:.75rem}.pagination-buttons{display:flex;align-items:center;gap:.4rem}.pagination-btn{min-width:2.3rem;height:2rem;border-radius:9999px;border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);font-size:.75rem;cursor:pointer;padding:0 .75rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s ease,border-color .12s ease,transform .08s ease,box-shadow .12s ease,color .12s ease}.pagination-btn:hover:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 0 1px rgba(67,56,202,.2)}.pagination-btn:active:not(:disabled){transform:scale(.97)}.pagination-btn:disabled{opacity:.4;cursor:default}.pagination-page-indicator{font-size:.75rem;color:var(--color-muted);font-family:var(--font-mono)}.card-menu-wrap{position:relative}.card-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--color-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.card-menu-trigger:hover{background:var(--color-panel);color:var(--color-text)}.card-menu-dropdown{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:10rem;max-width:calc(100vw - 1rem);padding:.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:.5rem;box-shadow:var(--shadow-warm);z-index:20}.card-menu-item{display:block;width:100%;padding:.5rem .75rem;border:none;border-radius:.375rem;background:none;color:var(--color-text);font-size:.8125rem;text-align:left;cursor:pointer;transition:background .1s ease}.card-menu-item:hover{background:var(--color-panel)}.card-menu-item-danger:hover{background:rgba(255,68,68,.1);color:var(--color-failure)}.nexflow-loader-fullscreen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-base);z-index:40}.nexflow-loader{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:2rem}.nexflow-loader-stage{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center}.nexflow-loader-pulse{position:absolute;inset:10px;border-radius:50%;border:1.5px solid rgba(67,56,202,.45);animation:nf-pulse-expand 2.4s cubic-bezier(.2,.6,.4,1) infinite;pointer-events:none}.nexflow-loader-arc-outer{inset:2px;animation:nf-spin 2.2s linear infinite}.nexflow-loader-arc-inner,.nexflow-loader-arc-outer{position:absolute;display:flex;align-items:center;justify-content:center}.nexflow-loader-arc-inner{inset:18px;animation:nf-spin-rev 1.6s linear infinite}.nexflow-loader-glow{position:absolute;width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(67,56,202,.22) 0,transparent 70%);animation:nf-glow-breathe 3s ease-in-out infinite;pointer-events:none}.nexflow-loader-star{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 7px rgba(67,56,202,.55));animation:nf-star-breathe 3s ease-in-out infinite}.nexflow-loader-label{margin:0;display:flex;align-items:baseline;gap:1px;font-size:.8125rem;color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.04em}.nexflow-loader-label-text{opacity:.75}.nexflow-loader-dots span{display:inline-block;animation:nf-dot-fade 1.4s ease-in-out infinite;opacity:0}.nexflow-loader-dots span:first-child{animation-delay:0s}.nexflow-loader-dots span:nth-child(2){animation-delay:.22s}.nexflow-loader-dots span:nth-child(3){animation-delay:.44s}@keyframes nf-pulse-expand{0%{transform:scale(.75);opacity:.75}to{transform:scale(1.9);opacity:0}}@keyframes nf-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nf-spin-rev{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}@keyframes nf-star-breathe{0%,to{transform:scale(1) rotate(0deg)}50%{transform:scale(1.18) rotate(180deg)}}@keyframes nf-glow-breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.35);opacity:1}}@keyframes nf-dot-fade{0%,60%,to{opacity:0}30%{opacity:.8}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:.2}50%{opacity:1}}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.nexus-page input,.nexus-page select,.nexus-page textarea{font-family:DM Mono,Fira Code,monospace;outline:none}.nexus-page input::placeholder,.nexus-page textarea::placeholder{color:var(--color-text-light)}.nexus-page select option{background:var(--color-surface);color:var(--color-text)}.nexus-page ::-webkit-scrollbar{width:4px;height:4px}.nexus-page ::-webkit-scrollbar-track{background:transparent}.nexus-page ::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.node-config-panel{width:100%;max-width:28rem;min-width:22rem;flex-shrink:0;background:var(--color-surface);border-left:1px solid var(--color-border);display:flex;flex-direction:column;overflow:hidden;animation:node-config-slide-in .2s ease-out}@keyframes node-config-slide-in{0%{opacity:0;transform:translateX(.5rem)}to{opacity:1;transform:translateX(0)}}.node-config-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0;gap:.75rem}.config-panel-header-title{font-size:.8125rem;font-weight:600}.node-config-panel-body{flex:1 1;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto;min-height:0}.node-config-panel-section{margin-bottom:.25rem}.config-panel-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.5rem;border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease,box-shadow .15s ease}.config-panel-btn:hover{background:var(--color-surface);border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 0 0 1px rgba(67,56,202,.18)}.config-panel-btn:active{transform:scale(.98)}.config-panel-btn-ghost{min-height:2.25rem;padding:.5rem .75rem;border:none;background:transparent;color:var(--color-muted);border-radius:.5rem;cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.config-panel-btn-ghost:hover{background:var(--color-panel);color:var(--color-text)}.config-panel-btn-ghost:active{transform:scale(.96)}.config-panel-btn-danger{color:var(--color-muted)}.config-panel-btn-danger:hover{background:rgba(255,68,68,.08);color:var(--color-failure);border-color:rgba(255,68,68,.3)}.config-panel-card{padding:1rem 1.25rem;background:var(--color-panel);border:1px solid var(--color-border);border-radius:.625rem;margin-bottom:0}.retry-config__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.retry-config__title{font-size:10px;font-family:var(--font-mono);color:var(--color-muted);letter-spacing:.08em;margin:0;text-transform:uppercase}.retry-config__enable{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--color-muted);cursor:pointer}.retry-config__checkbox{width:14px;height:14px}.retry-config__grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem .75rem;gap:.5rem .75rem;margin-top:.25rem}.retry-config__field{display:flex;flex-direction:column;gap:.25rem}.retry-config__field--full{grid-column:1/span 2}.retry-config__label{display:block;font-size:10px;font-family:var(--font-mono);color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase;margin:0}.retry-config__input{min-height:2.25rem;padding:.5rem .75rem;font-size:.8125rem}.retry-config__summary{grid-column:1/span 2;margin-top:.25rem}.retry-config__summary-text{font-size:10px;color:var(--color-muted);line-height:1.5;margin:0}.retry-config__value{color:var(--color-accent)}.node-config-panel .retry-config .input-base{min-height:2.25rem;padding:.5rem .75rem;font-size:.8125rem}.config-panel-field{margin-bottom:1.25rem}.config-panel-field:last-child{margin-bottom:0}.config-panel-field label{display:block;margin-bottom:.5rem}.config-panel-field label,.config-panel-label{font-size:.6875rem;font-family:var(--font-mono);color:var(--color-muted);letter-spacing:.08em;text-transform:uppercase}.config-panel-description{font-size:.6875rem;color:var(--color-muted);line-height:1.5;margin-bottom:.5rem}.config-panel-add-btn{align-self:flex-start;font-size:.8125rem;padding:.375rem .75rem;color:var(--color-accent);border:1px dashed var(--color-border);border-radius:.5rem;background:transparent;cursor:pointer;transition:border-color .15s,color .15s}.config-panel-add-btn:hover{border-color:var(--color-accent);color:var(--color-text)}.config-panel-code{display:block;width:100%;max-width:100%;min-width:0;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.375rem;line-height:1.5;overflow-wrap:break-word;white-space:pre-wrap;margin:0}.config-panel-code,.config-panel-code-inline{font-size:.6875rem;font-family:var(--font-mono);color:var(--color-accent);background:var(--color-panel);word-break:break-all}.config-panel-code-inline{border:1px solid var(--color-border);border-radius:.25rem;padding:.125rem .375rem}.config-panel-code-block{display:block;width:100%;max-width:100%;min-width:0;margin:0;padding:.75rem 1rem;font-size:.6875rem;font-family:var(--font-mono);color:var(--color-text);background:var(--color-base);border:1px solid var(--color-border);border-radius:.5rem;line-height:1.7;white-space:pre-wrap;word-break:break-all;overflow-wrap:break-word;overflow-x:auto}.node-config-panel .input-base{min-height:2.25rem;padding:.5rem .75rem;font-size:.8125rem;border-radius:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.node-config-panel .input-base:focus{box-shadow:0 0 0 2px rgba(67,56,202,.22)}@media (max-width:768px){.node-config-panel{position:fixed;inset:0;top:3.5rem;z-index:50;max-width:100%;min-width:0;width:100%;height:calc(100dvh - 3.5rem);border-left:none;border-top:2px solid var(--color-border);animation:node-config-slide-up .22s cubic-bezier(.4,0,.2,1)}@keyframes node-config-slide-up{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}.node-config-panel-header{padding:1rem 1.25rem;position:-webkit-sticky;position:sticky;top:0;background:var(--color-surface);z-index:1}.node-config-panel-body{padding:1.25rem;gap:1.25rem}.studio-config{position:fixed;inset:0;top:3.5rem;z-index:50;max-width:100%;min-width:0;width:100%;height:calc(100dvh - 3.5rem);border-left:none;border-top:2px solid var(--color-border);animation:node-config-slide-up .22s cubic-bezier(.4,0,.2,1)}}.studio-config{width:100%;max-width:22rem;min-width:18rem;flex-shrink:0;background:var(--color-surface);border-left:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto;animation:node-config-slide-in .2s ease-out}.studio-config .studio-config-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.studio-config .studio-config-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.studio-config button{min-height:2.25rem;padding:.5rem 1rem;font-size:.875rem;border-radius:.5rem;border:1px solid var(--color-border);background:var(--color-panel);color:var(--color-text);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.studio-config button:hover{background:var(--color-surface);border-color:var(--color-accent);color:var(--color-accent)}.studio-config button:active{transform:scale(.98)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:8px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--color-text-light)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}body,html{overflow-x:hidden;max-width:100vw}@media (max-width:768px){.app-nav{overflow-x:visible}}@media (orientation:landscape) and (max-width:1024px){.nav-mobile-menu>div .nav-mobile-item{padding:.5rem 1rem;font-size:.8125rem}}@media (orientation:landscape) and (max-height:500px){.app-nav{height:3rem}body{padding-top:3rem}.nav-mobile-menu{top:3rem}}@media (max-width:768px){.studio-toolbar{padding:0 .625rem;gap:.375rem;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;height:auto;min-height:3rem}.studio-toolbar::-webkit-scrollbar{display:none}.studio-toolbar-breadcrumb{white-space:nowrap;flex-shrink:0;font-size:.8125rem}.studio-toolbar-title{max-width:5rem;font-size:.8125rem}.studio-toolbar-actions,.studio-toolbar-btn{gap:.25rem;flex-shrink:0}.studio-toolbar-btn{padding:.35rem .5rem;font-size:.8rem;white-space:nowrap}.studio-toolbar>svg{flex-shrink:0}}@media (max-width:540px){.toolbar-label{display:none}.studio-toolbar-btn{padding:.375rem .4375rem}.studio-toolbar-title{max-width:4rem}}@media (max-width:768px) and (orientation:landscape){.studio-root{flex-direction:row!important;height:calc(100dvh - 3.5rem)}.studio-canvas-wrap>div{min-height:0}}@media (max-width:768px){.studio-root{height:calc(100dvh - 3.5rem)}.dashboard-page,.page-wrapper{width:100%;box-sizing:border-box}.nexus-page{overflow:hidden}.transfer-grid{padding:0}}@media (orientation:landscape) and (max-height:500px){.dashboard-page{padding-top:1.25rem!important;padding-bottom:1.25rem!important}.page-wrapper{padding-top:1rem!important;padding-bottom:1rem!important}.stats-grid-3,.stats-grid-4{margin-bottom:.75rem}}@media (max-width:540px){.pagination-bar{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem;border-radius:.75rem}.pagination-page-size{font-size:.7rem}}@media (max-width:480px){.react-flow__minimap{display:none}}@media (max-height:480px){.react-flow__minimap{display:none}}.react-flow__container{width:100%!important;height:100%!important}.react-flow{font-family:var(--font-geist)}.react-flow,.react-flow__background{background-color:var(--studio-canvas-bg)!important}.react-flow__attribution{display:none}.react-flow__minimap{border:1px solid var(--studio-controls-edge);border-radius:10px;box-shadow:var(--shadow-warm)}.react-flow__controls,.react-flow__minimap{background:var(--studio-controls-bg)!important;overflow:hidden}.react-flow__controls{border:1px solid var(--studio-controls-edge)!important;border-radius:10px;box-shadow:var(--shadow-warm)!important}.react-flow__controls-button{width:32px!important;height:32px!important;background:var(--studio-controls-bg)!important;border:none!important;border-bottom:1px solid var(--studio-controls-edge)!important;color:var(--color-text-mid)!important;fill:var(--color-text-mid)!important}.react-flow__controls-button:last-child{border-bottom:none!important}.react-flow__panel.react-flow__controls.bottom.right{margin-bottom:96px}.react-flow__controls-button:hover{background:var(--color-panel)!important}.react-flow__controls-button svg{max-width:14px;max-height:14px}.react-flow__connection-path{stroke:var(--color-accent)!important;stroke-width:2.5;stroke-dasharray:6 4}.react-flow__selection{background:rgba(67,56,202,.06);border:1.5px dashed rgba(67,56,202,.55)}.react-flow__node:focus-visible{outline:none}.react-flow__node:focus-visible>div{box-shadow:0 0 0 3px var(--color-focus)}.nf-node{--nc:#475569;--nt:#eef1f5;position:relative;width:236px;background:var(--color-surface);border:1.5px solid color-mix(in srgb,var(--nc) 38%,var(--color-border));border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.06),0 4px 12px rgba(15,23,42,.06);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.nf-node:before{content:"";position:absolute;inset:-1.5px -1.5px auto -1.5px;height:4px;border-radius:12px 12px 0 0;background:var(--nc)}.nf-node:hover{box-shadow:0 2px 4px rgba(15,23,42,.08),0 10px 24px rgba(15,23,42,.1)}.nf-node.is-selected,.nf-pill.is-selected{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus),0 10px 24px rgba(15,23,42,.12)}.nf-node__head{display:flex;align-items:center;gap:10px;padding:12px 12px 8px}.nf-node__icon{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--nt);color:var(--nc);border:1px solid color-mix(in srgb,var(--nc) 22%,transparent)}.nf-node__titles{min-width:0;flex:1 1}.nf-node__title{font-size:13.5px;font-weight:650;line-height:1.25;color:var(--color-text)}.nf-node__caption,.nf-node__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-node__caption{margin-top:2px;font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--nc)}.nf-node__body{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}.nf-node__preview{display:block;font-family:var(--font-mono);font-size:11.5px;color:var(--color-text-mid);background:var(--color-surface-alt);border:1px solid var(--color-border-soft);border-radius:6px;padding:5px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-node__empty{font-size:11.5px;color:var(--color-text-light);font-style:italic}.nf-node__prompt{margin:0;font-size:12px;line-height:1.45;color:var(--color-text-mid);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nf-node__saveas{font-size:11px;color:var(--color-muted);font-family:var(--font-mono)}.nf-node__saveas b{color:var(--color-text);font-weight:600}.nf-node__chips{display:flex;flex-wrap:wrap;gap:4px}.nf-chip{font-family:var(--font-mono);font-size:10.5px;font-weight:500;padding:2px 6px;border-radius:5px;background:var(--nt);color:var(--nc);border:1px solid color-mix(in srgb,var(--nc) 25%,transparent)}.nf-chip--more{background:var(--color-panel);color:var(--color-muted);border-color:var(--color-border)}.nf-node__outputs{display:flex;justify-content:space-between;padding:7px 12px 9px;border-top:1px dashed var(--color-border);font-size:11px;font-weight:650}.nf-out--success{color:var(--color-success)}.nf-out--failure{color:var(--color-failure)}.nf-out--continue{color:#b45309}.nf-out--exit{color:var(--color-success)}.nf-node__outputs .nf-out:first-child{margin-left:4%}.nf-node__outputs .nf-out:last-child{margin-right:4%}.nf-pill{--nc:#475569;--nt:#eef1f5;position:relative;display:flex;align-items:center;gap:10px;min-width:196px;max-width:260px;padding:8px 12px 8px 8px;background:var(--nt);border:1.5px solid var(--nc);border-radius:999px;box-shadow:0 1px 2px rgba(15,23,42,.06),0 4px 12px rgba(15,23,42,.06);transition:box-shadow .15s ease,border-color .15s ease}.nf-pill__icon{flex-shrink:0;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--nc)}.nf-pill__text{display:flex;flex-direction:column;min-width:0;flex:1 1}.nf-pill__title{font-size:13.5px;font-weight:700;color:var(--color-text);line-height:1.2}.nf-pill__caption,.nf-pill__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-pill__caption{font-size:11px;font-weight:600;color:var(--nc)}.react-flow__handle.nf-handle{width:14px;height:14px;border-radius:50%;border:2.5px solid var(--nc);background:var(--color-surface);box-shadow:0 0 0 3px var(--studio-canvas-bg);transition:transform .12s ease,box-shadow .12s ease;z-index:2}.react-flow__handle.nf-handle:after{content:"";position:absolute;inset:-9px;border-radius:50%}.react-flow__handle.nf-handle.connectingto,.react-flow__handle.nf-handle.valid,.react-flow__handle.nf-handle:hover{box-shadow:0 0 0 5px var(--color-focus)}.react-flow__handle.nf-handle--out{background:var(--nc);border-color:var(--color-surface);box-shadow:0 0 0 1.5px var(--nc),0 0 0 4px var(--studio-canvas-bg)}.react-flow__handle.nf-handle--success{background:#15803d;border-color:var(--color-surface);box-shadow:0 0 0 1.5px #15803d,0 0 0 4px var(--studio-canvas-bg)}.react-flow__handle.nf-handle--failure{background:#b91c1c;border-color:var(--color-surface);box-shadow:0 0 0 1.5px #b91c1c,0 0 0 4px var(--studio-canvas-bg)}.react-flow__handle.nf-handle--branch{background:#a16207;border-color:var(--color-surface);box-shadow:0 0 0 1.5px #a16207,0 0 0 4px var(--studio-canvas-bg)}.react-flow__handle.nf-handle--continue{background:var(--color-surface);border:2.5px dashed #b45309}.nf-node--parallel{border-style:solid}.nf-lanes{display:flex;border-top:1px dashed var(--color-border)}.nf-lane{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 10px;border-right:1px dashed var(--color-border)}.nf-lane:last-child{border-right:none}.nf-lane__name{max-width:100%;font-family:var(--font-mono);font-size:11px;font-weight:600;color:#854d0e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nf-lane__arrow{font-size:11px;color:#a16207;line-height:1}.react-flow__edge-path.nf-edge{stroke-width:2.25;stroke-linecap:round;transition:stroke-width .15s ease,opacity .15s ease}.nf-edge.is-selected,.react-flow__edge:hover .nf-edge{stroke-width:3}.nf-edge__halo{stroke:var(--color-focus);stroke-width:10;stroke-linecap:round}.nf-edge-label{position:absolute;pointer-events:none;font-size:10.5px;font-weight:700;letter-spacing:.01em;padding:2px 7px;border-radius:999px;background:var(--color-surface);color:var(--ec);border:1.5px solid var(--ec);box-shadow:0 1px 3px rgba(15,23,42,.12);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.nf-edge-label[data-kind=branch]{font-family:var(--font-mono)}.nf-legend-panel{margin:12px!important}.nf-legend{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-pop);max-width:min(320px,calc(100vw - 32px));overflow:hidden}.nf-legend__toggle{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;background:none;border:none;cursor:pointer;font:inherit;font-size:12.5px;font-weight:650;color:var(--color-text)}.nf-legend__toggle:hover{background:var(--color-surface-alt)}.nf-legend__chev{margin-left:auto;transition:transform .15s ease;transform:rotate(180deg)}.nf-legend.is-open .nf-legend__chev{transform:rotate(0deg)}.nf-legend__body{max-height:min(56vh,460px);overflow-y:auto;padding:4px 12px 12px;border-top:1px solid var(--color-border-soft);display:flex;flex-direction:column;gap:12px}.nf-legend h4{font-size:11px;font-weight:700;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 6px}.nf-legend ul{list-style:none;display:flex;flex-direction:column;gap:5px}.nf-legend li{display:grid;grid-template-columns:auto auto 1fr;align-items:center;grid-gap:8px;gap:8px;font-size:12px;color:var(--color-muted)}.nf-legend li b{color:var(--color-text);font-weight:650;min-width:58px}.nf-legend li svg{grid-column:span 2}.nf-legend__swatch{width:12px;height:12px;border-radius:4px}.nf-legend__hint{margin-top:8px;font-size:11.5px;color:var(--color-muted)}.nf-palette__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.nf-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-surface);color:var(--color-text-mid);cursor:pointer}.nf-icon-btn:hover{background:var(--color-panel);color:var(--color-text)}.nf-palette__search{margin-top:.75rem;display:flex;align-items:center;gap:.5rem;height:2.25rem;padding:0 .625rem;border:1px solid var(--color-border-strong);border-radius:.5rem;background:var(--color-surface);color:var(--color-muted)}.nf-palette__search:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus)}.nf-palette__search input{flex:1 1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:.875rem;color:var(--color-text)}.nf-palette__search input::placeholder{color:var(--color-text-light)}.nf-palette__group{display:flex;flex-direction:column;gap:.375rem}.nf-palette__head{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-column-gap:.5rem;column-gap:.5rem;padding:0 .25rem .125rem}.nf-palette__chip{width:10px;height:10px;border-radius:3px}.nf-palette__cat{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text)}.nf-palette__meaning{grid-column:2;font-size:.75rem;color:var(--color-muted);line-height:1.35}.nf-palette__item{display:flex;align-items:center;gap:.625rem;padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:.625rem;background:var(--color-surface);cursor:-webkit-grab;cursor:grab;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease,background .12s ease;touch-action:manipulation}.nf-palette__item:hover{border-color:var(--nc);box-shadow:0 2px 8px rgba(15,23,42,.08);transform:translateY(-1px)}.nf-palette__item:active{cursor:-webkit-grabbing;cursor:grabbing;transform:translateY(0)}.nf-palette__item.is-static{cursor:default;border-style:dashed;background:var(--color-surface-alt)}.nf-palette__item.is-static:hover{transform:none;box-shadow:none;border-color:var(--color-border)}.nf-palette__icon{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--nt);color:var(--nc);border:1px solid color-mix(in srgb,var(--nc) 22%,transparent)}.nf-palette__text{display:flex;flex-direction:column;min-width:0}.nf-palette__label{font-size:.875rem;font-weight:600;color:var(--color-text)}.nf-palette__desc{font-size:.75rem;color:var(--color-muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nf-palette__none{font-size:.875rem;color:var(--color-muted);padding:.5rem .25rem}.nf-txt-success{color:var(--color-success)}.nf-txt-failure{color:var(--color-failure)}@media (min-width:769px){.studio-sidebar,.studio-sidebar-wrapper,.studio-sidebar-wrapper.open{width:16.5rem}}@media (max-width:768px){.studio-sidebar{max-width:86vw;box-shadow:var(--shadow-pop)}.studio-sidebar,.studio-sidebar-wrapper.open{width:min(18rem,86vw)}.nf-legend-panel{margin:8px!important}.react-flow__controls{display:none}}@media (prefers-reduced-motion:reduce){.run-toast,.run-toast__spin{animation:none}}.run-toast{--rt:var(--color-running);position:fixed;right:1.25rem;bottom:1.25rem;z-index:9999;display:flex;align-items:flex-start;gap:.75rem;width:min(380px,calc(100vw - 2rem));padding:.875rem .875rem .875rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--rt);border-radius:.75rem;box-shadow:var(--shadow-pop);animation:run-toast-in .22s cubic-bezier(.34,1.56,.64,1)}.run-toast[data-phase=success]{--rt:var(--color-success)}.run-toast[data-phase=error],.run-toast[data-phase=failure]{--rt:var(--color-failure)}.run-toast[data-phase=slow]{--rt:var(--color-warning)}.run-toast__icon{color:var(--rt);flex-shrink:0;margin-top:1px}.run-toast__spin{animation:spin .9s linear infinite}.run-toast__body{flex:1 1;min-width:0}.run-toast__title{font-size:.9375rem;font-weight:700;color:var(--color-text);margin:0}.run-toast__meta{font-weight:500;color:var(--color-muted);font-size:.8125rem}.run-toast__message{margin:.25rem 0 0;font-size:.8125rem;line-height:1.45;color:var(--color-text-mid);word-break:break-word}.run-toast__link{display:inline-flex;align-items:center;gap:.3rem;margin-top:.5rem;font-size:.8125rem;font-weight:600;color:var(--color-accent);text-decoration:none}.run-toast__link:hover{text-decoration:underline}.run-toast__close{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:.375rem;background:transparent;color:var(--color-muted);cursor:pointer}.run-toast__close:hover{background:var(--color-panel);color:var(--color-text)}@keyframes run-toast-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.run-toast{right:1rem;left:1rem;bottom:1rem;width:auto}}.tx-error{background:var(--color-failure-bg);border:1px solid rgba(185,28,28,.25);border-radius:.5rem;padding:.625rem .875rem}.tx-error__label{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-failure);margin:0 0 .25rem}.tx-error__message{font-size:.875rem;line-height:1.5;color:var(--color-text);margin:0;word-break:break-word}.tx-detail{margin-top:.5rem}.tx-detail summary{cursor:pointer;font-size:.75rem;font-weight:600;color:var(--color-muted);list-style:none;display:inline-flex;align-items:center;gap:.25rem}.tx-detail summary::-webkit-details-marker{display:none}.tx-detail summary:before{content:"▸";transition:transform .15s ease;display:inline-block}.tx-detail[open] summary:before{transform:rotate(90deg)}.tx-detail pre{margin:.375rem 0 0;max-height:12rem;overflow:auto;font-family:var(--font-mono);font-size:.75rem;line-height:1.5;color:var(--color-text-mid);background:var(--color-surface-alt);border:1px solid var(--color-border-soft);border-radius:.375rem;padding:.5rem .625rem;white-space:pre-wrap;word-break:break-word}.react-flow{direction:ltr;--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:hsla(0,0%,100%,.5);--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:hsla(0,0%,94%,.6);--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:hsla(0,0%,94%,.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(0,0,0,.08);--xy-node-boxshadow-selected-default:0 0 0 0.5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:rgba(0,89,220,.08);--xy-selection-border-default:1px dotted rgba(0,89,220,.8);--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px rgba(0,0,0,.08);--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:hsla(0,0%,59%,.25);--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:rgba(60,60,60,.6);--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:hsla(0,0%,94%,.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px hsla(0,0%,100%,.08);--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:rgba(200,200,220,.08);--xy-selection-border-default:1px dotted rgba(200,200,220,.8);--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px rgba(0,0,0,.08);--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:-webkit-grab;cursor:grab}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:-webkit-grab;cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{position:absolute;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__minimap{background:var(
    --xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default))
  )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(
      --xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default))
    );stroke:var(
      --xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default))
    );stroke-width:var(
      --xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default))
    )}.react-flow__minimap-node{fill:var(
      --xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default))
    );stroke:var(
      --xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default))
    );stroke-width:var(
      --xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default))
    )}.react-flow__background-pattern.dots{fill:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default))
    )}.react-flow__background-pattern.lines{stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default))
    )}.react-flow__background-pattern.cross{stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border-bottom:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      );color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{padding:10px;border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default))}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(
        --xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default))
      );color:var(
        --xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default))
      )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}