.container{max-width:1440px;margin:0 auto;padding:18px}.card{background:color-mix(in srgb,var(--surface-1) 86%,transparent);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);position:relative;overflow:hidden;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),border-color .22s cubic-bezier(.2,.8,.2,1)}.card:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:var(--card-shine);opacity:.5;transition:opacity .22s cubic-bezier(.2,.8,.2,1)}.card:hover:before{opacity:1}.muted{color:var(--text-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:9px 14px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 78%,var(--bg) 22%);transition:transform .16s cubic-bezier(.2,.8,.2,1),background .16s cubic-bezier(.2,.8,.2,1),border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1),color .16s cubic-bezier(.2,.8,.2,1);font-weight:550;cursor:pointer;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 50%,hsla(0,0%,100%,.1),transparent 60%);opacity:0;transition:opacity .2s cubic-bezier(.2,.8,.2,1);pointer-events:none}.btn:hover:after{opacity:1}.btn:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.08)}.btn:active{transform:scale(.97) translateY(0)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent));color:#fff;border-color:hsla(0,0%,100%,.15);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 20%,transparent)}.btn-primary:hover{box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 30%,transparent);filter:brightness(1.08)}.input{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 82%,var(--bg) 18%);color:var(--text);transition:border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1),background .16s cubic-bezier(.2,.8,.2,1)}.input:hover{border-color:var(--border-hover)}.input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 65%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.input:focus,.textarea{background:var(--surface-1)}.textarea{width:100%;min-height:160px;padding:10px 12px;border-radius:14px;border:1px solid var(--border);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;transition:border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1),background .16s cubic-bezier(.2,.8,.2,1)}.textarea:hover{border-color:var(--border-hover)}.textarea:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 65%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.btn-sm{padding:6px 10px;font-size:.8rem;border-radius:10px}.app-shell{display:grid;grid-gap:12px;gap:12px}.app-frame{display:grid;grid-template-columns:280px minmax(0,1fr);grid-gap:12px;gap:12px;min-height:calc(100dvh - 36px)}.app-sidebar{position:-webkit-sticky;position:sticky;top:12px;align-self:start;padding:12px;max-height:calc(100dvh - 24px);overflow:auto}.app-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.app-sidebar-nav{display:grid;grid-gap:8px;gap:8px}.app-title{font-size:1.05rem;font-weight:700;letter-spacing:.02em}.app-subtitle{color:var(--text-2);font-size:.78rem}.app-nav-section{border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--surface-1) 84%,var(--bg) 16%);padding:6px}.app-nav-section-title{color:var(--text-2);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;padding:4px 6px;cursor:pointer;list-style:none}.app-nav-section-title::-webkit-details-marker{display:none}.app-submenu{display:grid;grid-gap:6px;gap:6px;padding-top:4px}.app-nav-link{display:block;text-decoration:none;color:var(--text);border:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 80%,var(--bg) 20%);border-radius:11px;padding:8px 11px;font-size:.8rem;font-weight:560;position:relative;overflow:hidden;transition:border-color .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1),background .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1)}.app-nav-link:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);border-radius:0 2px 2px 0;transform:scaleY(0);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.app-nav-link:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.08)}.app-nav-link:hover:before{transform:scaleY(1)}.app-nav-link-accent{border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.app-main{min-width:0}.app-content{display:grid;grid-gap:12px;gap:12px}.page-hero{padding:20px}.dashboard-hero{padding:20px;position:relative;overflow:hidden}.dashboard-hero:after{content:"";position:absolute;inset:-40% -30% auto auto;width:360px;height:260px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent) 0,transparent 68%);pointer-events:none}.dash-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.dash-hero-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.dash-greeting{display:flex;align-items:center;gap:6px;margin-bottom:2px}.dash-greeting-emoji{font-size:1.15rem}.dash-greeting-text{font-size:.82rem;font-weight:600;color:var(--text-2);letter-spacing:.01em}.dash-cmd-trigger{display:flex;align-items:center;gap:8px;padding:7px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-1);color:var(--text-3);font-size:.78rem;cursor:pointer;transition:all .16s var(--ease-premium);white-space:nowrap}.dash-cmd-trigger:hover{border-color:var(--border-hover);color:var(--text);background:var(--surface-2)}.dash-cmd-trigger-kbd{display:inline-flex;align-items:center;gap:2px;padding:1px 5px;border:1px solid var(--border);border-radius:4px;font-size:.62rem;background:var(--surface-2);color:var(--text-3);font-family:inherit}.dash-cmd-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:min(20vh,160px);animation:dash-cmd-fade .15s ease}@keyframes dash-cmd-fade{0%{opacity:0}to{opacity:1}}.dash-cmd-dialog{width:90%;max-width:520px;background:var(--surface-1);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.4),0 0 0 1px hsla(0,0%,100%,.04);overflow:hidden;animation:dash-cmd-slide .18s cubic-bezier(.2,.8,.2,1)}@keyframes dash-cmd-slide{0%{transform:translateY(-8px);opacity:.8}}.dash-cmd-input-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.dash-cmd-input{flex:1 1;background:none;border:none;color:var(--text);font-size:.9rem;outline:none;font-family:inherit}.dash-cmd-input::placeholder{color:var(--text-3)}.dash-cmd-esc{padding:2px 8px;border:1px solid var(--border);border-radius:4px;font-size:.6rem;color:var(--text-3);font-family:inherit;background:var(--surface-2)}.dash-cmd-list{padding:8px;max-height:320px;overflow-y:auto}.dash-cmd-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text-2);font-size:.82rem;text-decoration:none;transition:background .1s,color .1s}.dash-cmd-item-active,.dash-cmd-item:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}.dash-cmd-item-icon{color:var(--text-3);flex-shrink:0}.dash-cmd-empty{padding:20px;text-align:center;color:var(--text-3);font-size:.82rem}.dash-kpi-top{justify-content:space-between;margin-bottom:6px}.dash-kpi-top,.dash-kpi-trend{display:flex;align-items:center}.dash-kpi-trend{gap:4px;margin-top:4px;font-size:.68rem;font-weight:600}.dash-kpi-trend-up{color:#6fcf97}.dash-kpi-trend-down{color:#eb5757}.dash-kpi-trend-neutral{color:#f2994a}.dash-status-dot{display:inline-flex;align-items:center;justify-content:center;width:8px;height:8px;border-radius:50%;flex-shrink:0;position:relative}.dash-status-pulse{position:absolute;inset:-3px;border-radius:50%;opacity:.35;animation:dash-pulse 2s ease-in-out infinite}@keyframes dash-pulse{0%,to{transform:scale(1);opacity:.35}50%{transform:scale(1.6);opacity:0}}.dash-quick-actions-list{display:grid;grid-gap:4px;gap:4px;margin-top:10px}.dash-quick-action{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text-2);font-size:.82rem;text-decoration:none;transition:all .14s var(--ease-premium);border:1px solid transparent}.dash-quick-action:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text);border-color:color-mix(in srgb,var(--accent) 15%,transparent)}.dash-quick-action-accent{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}.dash-qa-icon{color:var(--text-3);flex-shrink:0}.dash-quick-action:hover .dash-qa-icon{color:var(--accent)}.dash-qa-label{flex:1 1;font-weight:500}.dash-qa-kbd{padding:1px 6px;border:1px solid var(--border);border-radius:4px;font-size:.6rem;font-family:inherit;background:var(--surface-2);color:var(--text-3);line-height:1.5}.dash-qa-arrow{opacity:0;transition:opacity .14s,transform .14s;color:var(--text-3)}.dash-quick-action:hover .dash-qa-arrow{opacity:1;transform:translateX(2px)}.dash-health-grid{display:grid;grid-gap:6px;gap:6px;margin-top:10px}.dash-health-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;background:var(--surface-2);transition:background .14s}.dash-health-item:hover{background:var(--surface-3)}.dash-health-icon{color:var(--text-3);flex-shrink:0}.dash-health-label{flex:1 1;font-size:.78rem;font-weight:500;color:var(--text-2)}.dash-health-status{font-size:.68rem;font-weight:700;letter-spacing:.02em}.dash-link-small{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;color:var(--text-3);text-decoration:none;transition:color .14s}.dash-link-small:hover{color:var(--accent)}@media (max-width:900px){.dash-hero-top{flex-direction:column;gap:10px}.dash-hero-actions{width:100%}.dash-cmd-trigger{flex:1 1}.dashboard-kpi-grid{grid-template-columns:1fr 1fr}}@media (max-width:560px){.dashboard-kpi-grid{grid-template-columns:1fr}}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.dashboard-kpi-card{border:1px solid var(--border);border-radius:14px;padding:12px;background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 10%,transparent),color-mix(in srgb,var(--surface-1) 92%,transparent));transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),border-color .22s cubic-bezier(.2,.8,.2,1)}.dashboard-kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-1),0 0 24px color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.dashboard-kpi-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);margin-bottom:6px;transition:transform .22s cubic-bezier(.34,1.56,.64,1),background .22s cubic-bezier(.2,.8,.2,1)}.dashboard-kpi-card:hover .dashboard-kpi-icon{transform:scale(1.1);background:color-mix(in srgb,var(--accent) 24%,transparent)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.dashboard-panel{padding:18px}.dashboard-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.dashboard-link-grid{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.dg-root{position:relative}.dg-reset-btn{position:absolute;top:-36px;right:0;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:.72rem;font-weight:600;cursor:pointer;transition:background .16s var(--ease-premium),color .16s var(--ease-premium),border-color .16s var(--ease-premium)}.dg-reset-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-hover)}.dg-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.dg-panel{position:relative;transition:transform .22s var(--ease-premium),box-shadow .22s var(--ease-premium),opacity .22s var(--ease-premium)}.dg-panel.dg-full{grid-column:1/-1}.dg-handle{position:absolute;top:10px;right:10px;z-index:5;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:var(--text-3,hsla(0,0%,100%,.25));cursor:-webkit-grab;cursor:grab;transition:color .16s var(--ease-premium),background .16s var(--ease-premium),transform .16s var(--ease-premium);-moz-user-select:none;user-select:none;-webkit-user-select:none}.dg-handle:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);transform:scale(1.08)}.dg-handle:active{cursor:-webkit-grabbing;cursor:grabbing;transform:scale(.95)}.dg-panel.dg-dragging{opacity:.35;transform:scale(.97)}.dg-panel.dg-over{transform:scale(1.01)}.dg-panel.dg-over:before{content:"";position:absolute;inset:-3px;border:2px dashed var(--accent);border-radius:18px;pointer-events:none;z-index:3;animation:dg-pulse 1s var(--ease-premium) infinite alternate}@keyframes dg-pulse{0%{opacity:.5;border-color:var(--accent)}to{opacity:1;border-color:color-mix(in srgb,var(--accent) 80%,#fff)}}.dg-touch-clone{position:fixed;z-index:9999;pointer-events:none;opacity:.85;box-shadow:0 12px 40px rgba(0,0,0,.4);border-radius:16px;transition:none}@media (max-width:900px){.dg-grid{grid-template-columns:1fr}.dg-reset-btn{position:static;margin-bottom:8px;width:-moz-fit-content;width:fit-content;margin-left:auto}}.catalog-item-card{text-align:left;cursor:pointer;width:100%;transition:border-color .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1),background .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1)}.catalog-item-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.08),0 0 24px color-mix(in srgb,var(--accent) 10%,transparent)}.catalog-item-card-active{border-color:color-mix(in srgb,var(--accent) 70%,transparent);background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 12%,transparent),color-mix(in srgb,var(--surface-1) 95%,transparent));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}.catalog-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.catalog-detail{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.provider-flows-shell{display:grid;grid-gap:12px;gap:12px}.provider-flows-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.provider-flows-title{min-width:0}.provider-flows-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.provider-flows-toolbar{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center}.provider-flows-search{display:flex;align-items:center;gap:8px}.provider-flows-filter{display:inline-flex;align-items:center;gap:6px}.provider-flows-list{display:grid;grid-gap:8px;gap:8px}.provider-flow-item{padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:background .16s cubic-bezier(.2,.8,.2,1),border-color .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-item:hover{background:color-mix(in srgb,var(--accent) 3%,transparent)}.provider-flow-main{min-width:0}.provider-flow-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.provider-flow-code{font-size:.92rem;font-weight:700}.provider-flow-env,.provider-flow-state,.provider-flow-version{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:2px 8px;font-size:.66rem;font-weight:700;border:1px solid var(--border)}.provider-flow-env-sandbox{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border-color:color-mix(in srgb,var(--success) 20%,transparent);transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-env-sandbox:hover{transform:scale(1.05)}.provider-flow-env-prod{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:color-mix(in srgb,var(--danger) 20%,transparent);transition:transform .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-env-prod:hover{transform:scale(1.05)}.provider-flow-version{color:var(--text-2);background:color-mix(in srgb,var(--text) 5%,transparent);transition:transform .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-state-published{color:var(--success);background:color-mix(in srgb,var(--success) 13%,transparent);border-color:color-mix(in srgb,var(--success) 18%,transparent);transition:transform .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-state-published:hover{transform:scale(1.05)}.provider-flow-state-draft{color:var(--warning);background:color-mix(in srgb,var(--warning) 14%,transparent);border-color:color-mix(in srgb,var(--warning) 18%,transparent);transition:transform .16s cubic-bezier(.2,.8,.2,1)}.provider-flow-state-draft:hover{transform:scale(1.05)}.provider-flow-meta{margin-top:5px;color:var(--text-2);font-size:.74rem}.provider-flow-actions{flex-shrink:0;display:inline-flex;align-items:center;gap:6px}.page-header{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px}.page-title{font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.1;font-weight:800;letter-spacing:-.02em}.page-subtitle{color:var(--text-2);max-width:80ch;font-size:.93rem}.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.kpi-card{border:1px solid var(--border);border-radius:13px;padding:12px;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 8%,transparent),color-mix(in srgb,var(--surface-1) 90%,transparent))}.kpi-label{font-size:.72rem;color:var(--text-2);text-transform:uppercase;letter-spacing:.08em}.kpi-value{font-size:1rem;font-weight:700;margin-top:3px}.card table{width:100%;border-collapse:collapse;font-size:.82rem}.card table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--surface-1) 84%,var(--bg) 16%);color:var(--text-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.card table td,.card table th{padding:9px 8px!important;border-bottom:1px solid var(--border)}.card table tbody tr{transition:background .12s cubic-bezier(.2,.8,.2,1)}.card table tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.portal-live-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1fr) 360px}@media (max-width:900px){.dashboard-hero-head{flex-direction:column}.provider-flows-toolbar{grid-template-columns:1fr}.provider-flows-filter{width:100%}.provider-flows-filter .btn{flex:1 1}.provider-flow-item{flex-direction:column;align-items:stretch}.provider-flow-actions{width:100%}.provider-flow-actions .btn{width:100%;min-height:40px}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-frame,.dashboard-grid,.dashboard-link-grid,.kpi-grid{grid-template-columns:1fr}.app-frame{min-height:auto}.app-sidebar{position:static;max-height:none;overflow:visible}.portal-live-grid{grid-template-columns:1fr}}.flow-editor-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;min-width:var(--flow-app-vw,100vw);z-index:50;margin:0!important;padding:0!important}.flow-editor-fullscreen,.flow-layout{height:var(--flow-app-vh,100dvh);min-height:var(--flow-app-vh,100dvh);max-height:var(--flow-app-vh,100dvh);width:var(--flow-app-vw,100vw);max-width:var(--flow-app-vw,100vw);background:var(--bg);overflow:hidden}.flow-layout{display:flex;flex-direction:column}body.flow-editor-active{overflow:hidden}body.flow-editor-active .container{max-width:100%;margin:0;padding:0}body.flow-editor-active .container>*{margin-top:0!important;margin-bottom:0!important}body.flow-editor-active .container>.card:first-child{display:none}.flow-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;border-bottom:1px solid var(--border);background:var(--surface-1);flex-shrink:0;gap:16px}.flow-header-left{min-width:0;flex:1 1}.flow-breadcrumb,.flow-header-left{display:flex;align-items:center;gap:8px}.flow-breadcrumb{font-size:.85rem}.flow-workflow-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-header-center{flex-shrink:0}.flow-tabs{display:flex;background:color-mix(in srgb,var(--text) 5%,transparent);border-radius:8px;padding:3px}.flow-tab{display:inline-flex;align-items:center;gap:6px;justify-content:center;min-width:74px;padding:6px 16px;font-size:.8rem;font-weight:500;border:none;border-radius:6px;background:none;cursor:pointer;color:var(--text-2);transition:background .12s ease,color .12s ease}.flow-tab-icon{min-width:38px;padding-left:10px;padding-right:10px}.flow-tab-active,.flow-tab:hover{color:var(--text)}.flow-tab-active{background:var(--surface-1);box-shadow:0 1px 3px rgba(0,0,0,.1)}.flow-header-right{display:flex;align-items:center;gap:8px;flex:1 1;justify-content:flex-end;min-width:0}.flow-editor{display:flex;flex:1 1;min-height:0;overflow:hidden}.flow-left-sidebar{width:48px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px;border-right:1px solid var(--border);background:var(--surface-1)}.flow-sidebar-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:none;background:none;cursor:pointer;color:var(--text-2);transition:background .16s cubic-bezier(.2,.8,.2,1),color .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1)}.flow-sidebar-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);transform:scale(1.08)}.flow-sidebar-btn:active{transform:scale(.95)}.flow-sidebar-divider{width:24px;height:1px;background:var(--border);margin:4px 0}.flow-canvas-wrapper{flex:1 1;min-width:0;position:relative;overflow:hidden;display:flex;flex-direction:column}.flow-canvas-add-handle{position:absolute;top:14px;left:10px;z-index:31;width:30px;height:36px;border:1px solid color-mix(in srgb,var(--border) 55%,transparent);border-left:none;border-radius:0 10px 10px 0;background:transparent;color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transform:translateX(0);transition:left .18s ease,color .12s ease,background .12s ease;pointer-events:auto;touch-action:manipulation}.flow-canvas-add-handle:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent)}.flow-canvas-add-handle-open{left:min(360px,42vw)}.flow-components-drawer{position:absolute;top:12px;bottom:56px;left:0;width:min(360px,42vw);max-width:86vw;z-index:30;border:1px solid var(--border);border-left:none;border-radius:0 14px 14px 0;overflow:hidden;background:var(--surface-1);box-shadow:10px 0 24px rgba(0,0,0,.22);transition:transform .2s ease,opacity .2s ease;pointer-events:auto;touch-action:manipulation}.flow-components-drawer-closed{transform:translateX(calc(-100% - 16px));opacity:0;pointer-events:none}.flow-components-drawer-open{transform:translateX(0);opacity:1}.flow-meta-overlay{position:absolute;top:0;left:0;z-index:20;width:380px;max-height:100%;overflow-y:auto;background:var(--surface-1);border-right:1px solid var(--border);box-shadow:4px 0 20px rgba(0,0,0,.1);padding:16px}.flow-right-sidebar{flex-shrink:0;border-left:1px solid var(--border);background:var(--surface-1);display:flex;flex-direction:column}.flow-right-sidebar-collapsed{width:48px;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:8px}.flow-executions-tab,.flow-settings-tab{flex:1 1;overflow-y:auto;padding:24px}.flow-runs-shell{display:grid;grid-template-columns:280px 1fr;grid-gap:12px;gap:12px;min-height:calc(var(--flow-app-vh, 100dvh) - 140px)}.flow-runs-left{border:1px solid var(--border);border-radius:10px;background:var(--surface-1);display:flex;flex-direction:column;min-height:0}.flow-runs-left-header{height:42px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;font-size:.82rem;font-weight:600;border-bottom:1px solid var(--border)}.flow-runs-left-list{flex:1 1;overflow:auto;padding:6px}.flow-runs-item{width:100%;text-align:left;border:1px solid transparent;background:transparent;color:inherit;border-radius:8px;padding:8px;margin-bottom:6px;cursor:pointer}.flow-runs-item:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.flow-runs-item-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.flow-runs-item-top{display:flex;align-items:center;gap:6px}.flow-runs-dot{width:8px;height:8px;border-radius:999px}.flow-runs-status{font-size:.72rem;font-weight:700}.flow-runs-trigger{margin-left:auto;font-size:.68rem;color:var(--text-2)}.flow-runs-item-sub{margin-top:4px;display:flex;justify-content:space-between;font-size:.67rem;color:var(--text-2)}.flow-runs-main{border:1px solid var(--border);border-radius:10px;background:var(--surface-1);display:flex;flex-direction:column;min-height:0}.flow-runs-main-header{height:42px;padding:0 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.flow-runs-main-title{font-size:.82rem;font-weight:600}.flow-runs-main-meta{display:flex;gap:10px;align-items:center;font-size:.7rem;color:var(--text-2)}.flow-runs-main-meta span{display:inline-flex;align-items:center;gap:4px}.flow-runs-main-body{flex:1 1;min-height:0;display:grid;grid-template-columns:320px 1fr}.flow-runs-steps{border-right:1px solid var(--border);min-height:0;display:flex;flex-direction:column}.flow-runs-steps-header{height:36px;padding:0 10px;font-size:.72rem;font-weight:700;color:var(--text-2);border-bottom:1px solid var(--border);display:flex;align-items:center}.flow-runs-steps-list{flex:1 1;overflow:auto;padding:6px}.flow-runs-step{width:100%;text-align:left;border:1px solid transparent;background:transparent;color:inherit;border-radius:8px;padding:8px;margin-bottom:6px;cursor:pointer}.flow-runs-step:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.flow-runs-step-active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.flow-runs-step-name{display:block;font-size:.74rem;font-weight:600}.flow-runs-step-meta{display:block;margin-top:3px;font-size:.68rem}.flow-runs-output{min-height:0;display:flex;flex-direction:column}.flow-runs-output-header{height:36px;border-bottom:1px solid var(--border);padding:0 10px;display:flex;align-items:center;justify-content:space-between;font-size:.72rem;font-weight:700;color:var(--text-2)}.flow-runs-json{flex:1 1;min-height:0;margin:0;border:none;border-radius:0}.flow-runs-empty{color:var(--text-2);font-size:.78rem;padding:16px}.flow-runs-error{margin:8px;padding:8px;border-radius:6px;border:1px solid rgba(239,68,68,.35);color:#ef4444;font-size:.72rem}.flow-mobile-layout{height:var(--flow-app-vh,100dvh);min-height:var(--flow-app-vh,100dvh);max-height:var(--flow-app-vh,100dvh);width:var(--flow-app-vw,100vw);min-width:var(--flow-app-vw,100vw);max-width:var(--flow-app-vw,100vw);overflow:hidden;padding-bottom:0;--flow-mobile-bottom-inset:max(env(safe-area-inset-bottom),0px)}.flow-mobile-topbar{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--border);background:var(--surface-1)}.flow-mobile-title{flex:1 1;min-width:0;font-size:.85rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-mobile-actions{display:flex;align-items:center;gap:6px}.flow-mobile-actions-row{align-items:center;gap:8px;overflow-x:auto;padding:8px}.flow-mobile-actions-row,.flow-mobile-toolbar{display:flex;border-bottom:1px solid var(--border);background:var(--surface-1)}.flow-mobile-toolbar{overflow:visible;padding:0;flex-direction:column}.flow-mobile-nodes-row{display:flex;align-items:center;gap:8px;padding:8px;border-bottom:1px solid var(--border);background:var(--surface-1)}.flow-mobile-toolbar-row{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px}.flow-mobile-toolbar-row:not(:last-child){border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.flow-mobile-toolbar-group{display:inline-flex;align-items:center;gap:8px;padding:2px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 3%,transparent)}.flow-mobile-toolbar-actions{margin-left:auto}.flow-mobile-actions-row-v2{gap:6px;justify-content:flex-start}.flow-mobile-actions-row .btn{display:inline-flex;align-items:center;white-space:nowrap}.flow-mobile-actions-row .btn,.flow-toolbar-btn{gap:6px;min-height:34px;min-width:78px;justify-content:center}.flow-icon-btn{min-width:36px!important;width:36px;padding-left:0;padding-right:0}.flow-toolbar-root{display:inline-flex;align-items:center;gap:8px}.flow-toolbar-anchor{margin-left:auto;display:inline-flex}.flow-toolbar-group{gap:8px}.flow-env-chip,.flow-toolbar-group{display:inline-flex;align-items:center}.flow-env-chip{justify-content:center;height:22px;padding:0 8px;border-radius:999px;font-size:.68rem;font-weight:700;border:1px solid var(--border);white-space:nowrap}.flow-env-chip-sandbox{color:var(--success);background:color-mix(in srgb,var(--success) 12%,transparent);border-color:color-mix(in srgb,var(--success) 20%,transparent)}.flow-env-chip-prod{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);border-color:color-mix(in srgb,var(--danger) 20%,transparent)}.flow-toolbar-btn-primary{background:#facc15;color:#1f2937;border-color:#eab308}.flow-toolbar-btn-primary:disabled{opacity:.5}.flow-mobile-nav-active{border-color:color-mix(in srgb,var(--accent) 60%,transparent)!important;background:color-mix(in srgb,var(--accent) 16%,transparent)!important;color:var(--accent)!important}.flow-mobile-error{color:#ef4444;font-size:.75rem;padding:6px 10px;background:rgba(239,68,68,.08);border-bottom:1px solid rgba(239,68,68,.25)}.flow-mobile-body{padding-bottom:0}.flow-mobile-body,.flow-mobile-editor{flex:1 1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.flow-mobile-editor{width:100%;position:relative;touch-action:manipulation}.flow-mobile-tabbar{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);background:var(--surface-1);padding-bottom:var(--flow-mobile-bottom-inset);position:fixed;left:0;right:0;bottom:0;z-index:60}.flow-mobile-tab{border:none;background:transparent;color:var(--text-2);font-size:.8rem;padding:10px 8px}.flow-mobile-tab-active{color:var(--text);font-weight:700}.flow-mobile-sheet-backdrop{position:fixed;inset:0;z-index:140;background:rgba(0,0,0,.45);display:flex;align-items:flex-end}.flow-mobile-sheet{width:100%;max-height:calc(100dvh - var(--flow-mobile-bottom-inset) - 10px);background:var(--surface-1);border-top-left-radius:14px;border-top-right-radius:14px;border:1px solid var(--border);border-bottom:none;overflow:auto;padding-bottom:env(safe-area-inset-bottom)}@media (max-width:980px){.execution-bar{min-height:50px;height:auto;padding:6px 8px calc(2px + var(--flow-mobile-bottom-inset));gap:6px}.execution-logs-panel{max-height:46dvh}.execution-bar-left,.execution-bar-right{flex:0 0 auto;gap:6px}.execution-bar-right{margin-left:auto}.execution-bar-btn,.execution-bar-clear-btn,.execution-bar-debug-btn,.execution-bar-logs-btn{padding:7px 9px}.execution-bar-btn span,.execution-bar-clear-btn span,.execution-bar-debug-btn span,.execution-bar-logs-btn span{font-size:.76rem}.flow-layout:not(.flow-mobile-layout){display:none}.flow-header{height:auto;min-height:52px;padding:8px 10px;gap:8px;flex-wrap:wrap}.flow-header-center,.flow-header-left,.flow-header-right{flex:1 1 100%;min-width:0}.flow-header-center{order:3}.flow-tabs{width:100%;overflow-x:auto}.flow-tab{padding:6px 10px;white-space:nowrap}.flow-breadcrumb{font-size:.75rem}.flow-editor{position:relative}.flow-left-sidebar{width:44px;padding:8px 0;gap:6px}.flow-sidebar-btn{width:32px;height:32px}.flow-meta-overlay{width:min(95vw,420px);max-height:calc(100dvh - 140px)}.flow-right-sidebar{position:absolute;right:0;top:0;bottom:48px;width:min(88vw,360px);z-index:25;box-shadow:-10px 0 24px rgba(0,0,0,.22)}.flow-right-sidebar-collapsed{width:44px;padding:8px 0}.flow-executions-tab,.flow-settings-tab{padding:12px}.flow-runs-shell{min-height:auto}.flow-runs-main-body,.flow-runs-shell{grid-template-columns:1fr}.flow-runs-steps{border-right:none;border-bottom:1px solid var(--border);max-height:42dvh}.execution-logs-body-grid{grid-template-columns:1fr}.execution-log-detail{min-height:0}}.flow-builder-canvas-area{flex:1 1;min-width:0;min-height:0;background:var(--surface-1);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-1);overflow:hidden;position:relative;display:flex;flex-direction:column;z-index:1}.flow-builder-sidebar{width:360px;flex-shrink:0;overflow-y:auto;max-height:80vh;position:-webkit-sticky;position:sticky;top:24px}.flow-canvas-container{position:relative;width:100%;flex:1 1;min-height:0}.flow-canvas{position:relative;width:100%;height:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flow-canvas-empty{top:50%;left:50%;transform:translate(-50%,-50%);flex-direction:column;justify-content:center;text-align:center}.flow-canvas-controls,.flow-canvas-empty{position:absolute;display:flex;align-items:center}.flow-canvas-controls{bottom:16px;left:16px;gap:4px;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:4px;box-shadow:0 4px 16px rgba(0,0,0,.08);z-index:20;touch-action:manipulation}.flow-canvas-ctrl-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:none;border-radius:8px;cursor:pointer;color:var(--text-2);transition:background .16s cubic-bezier(.2,.8,.2,1),color .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1)}.flow-canvas-ctrl-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);transform:scale(1.08)}.flow-canvas-ctrl-btn:active{transform:scale(.92)}.flow-canvas-zoom-label{font-size:.7rem;font-weight:600;color:var(--text-2);min-width:36px;text-align:center}.flow-minimap{position:absolute;bottom:16px;right:16px;background:color-mix(in srgb,var(--surface-1) 85%,transparent);border:1px solid var(--border);border-radius:10px;padding:6px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20}.flow-node{position:absolute;width:250px;min-height:112px;background:linear-gradient(180deg,hsla(0,0%,100%,.03) 0,var(--surface-1) 34%);border:2px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:visible;font-size:14px}.flow-node:hover{border-color:color-mix(in srgb,var(--accent) 50%,transparent);transform:translateY(-2px);box-shadow:var(--shadow-1),0 0 24px color-mix(in srgb,var(--accent) 10%,transparent)}.flow-node-selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent),0 0 24px color-mix(in srgb,var(--accent) 10%,transparent)}.flow-node-running{border-color:var(--accent);animation:flow-pulse 1.5s infinite}.flow-node-success{border-color:var(--success);box-shadow:0 0 12px color-mix(in srgb,var(--success) 15%,transparent)}.flow-node-error{border-color:var(--danger);box-shadow:0 0 12px color-mix(in srgb,var(--danger) 15%,transparent)}@keyframes flow-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 30%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 5%,transparent)}}.flow-node-stripe{position:absolute;left:-2px;top:-2px;bottom:-2px;width:6px;border-radius:6px 0 0 6px}.flow-port{position:absolute;top:50%;width:30px;height:30px;border-radius:50%;border:2px solid var(--border);background:var(--surface-1);transform:translateY(-50%);z-index:5;cursor:crosshair;display:flex;align-items:center;justify-content:center;transition:transform .1s ease,border-color .1s ease;touch-action:none}.flow-port:hover{transform:translateY(-50%) scale(1.3)}.flow-port-inner{width:12px;height:12px;border-radius:50%;opacity:0;transition:opacity .1s ease}.flow-port:hover .flow-port-inner{opacity:1}.flow-port-input{left:-17px}.flow-port-output{right:-17px}.flow-node-header{display:flex;align-items:center;gap:8px;padding:10px 14px 5px 18px;touch-action:none}.flow-node-type-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:color-mix(in srgb,var(--text) 6%,transparent);flex-shrink:0}.flow-node-id{font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1;min-width:0}.flow-node-status{display:flex;align-items:center;flex-shrink:0;margin-left:auto}.flow-node-body{display:flex;align-items:center;gap:8px;padding:0 14px 6px 18px}.flow-node-method{font-size:.68rem;font-weight:800;flex-shrink:0}.flow-node-path{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.69rem;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-node-result-mini{display:flex;align-items:center;gap:6px;font-size:.67rem;font-family:ui-monospace,monospace;padding:6px 14px 8px 18px;border-top:1px solid var(--border)}.flow-node-hover-io{position:absolute;left:0;top:calc(100% + 8px);width:min(340px,92vw);display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px;padding:10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--border) 95%,transparent);background:color-mix(in srgb,var(--surface-1) 95%,var(--bg) 5%);box-shadow:0 14px 38px rgba(0,0,0,.28);opacity:0;transform:translateY(4px);pointer-events:none;transition:opacity .13s ease,transform .13s ease;z-index:30}.flow-node-selected .flow-node-hover-io,.flow-node:hover .flow-node-hover-io{opacity:1;transform:translateY(0);pointer-events:auto}.flow-node-hover-io-block{min-width:0}.flow-node-hover-io-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.flow-node-hover-io-label{font-size:.63rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2);margin-bottom:4px;font-weight:700}.flow-node-hover-io-meta{font-size:.62rem;color:var(--text-2);margin-bottom:4px}.flow-node-hover-copy-btn{border:1px solid color-mix(in srgb,var(--border) 95%,transparent);background:color-mix(in srgb,var(--bg) 45%,transparent);color:var(--text-2);border-radius:5px;padding:2px 6px;font-size:.6rem;line-height:1.2;cursor:pointer}.flow-node-hover-copy-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.flow-node-hover-io-pre{margin:0;padding:7px 8px;border-radius:6px;border:1px solid color-mix(in srgb,var(--border) 90%,transparent);background:color-mix(in srgb,var(--bg) 36%,transparent);color:var(--text);font-size:.66rem;line-height:1.35;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;max-height:110px;overflow:auto;white-space:pre-wrap;word-break:break-word}.flow-node-meta{display:flex;align-items:center;gap:6px;padding:0 14px 7px 18px;flex-wrap:wrap}.flow-node-chip{justify-content:center;height:18px;padding:0 6px;border:1px solid color-mix(in srgb,var(--text) 12%,transparent);border-radius:4px;background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text-2);font-size:.61rem;font-weight:700;letter-spacing:.01em;text-transform:uppercase}.flow-node-actions,.flow-node-chip{display:inline-flex;align-items:center}.flow-node-actions{position:absolute;top:-13px;right:10px;gap:4px;opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.flow-node-selected .flow-node-actions,.flow-node:hover .flow-node-actions{opacity:1;transform:translateY(0);pointer-events:auto}.flow-node-action-btn{width:24px;height:24px;border:1px solid color-mix(in srgb,var(--border) 70%,color-mix(in srgb,var(--accent) 35%,transparent));background:color-mix(in srgb,var(--surface-1) 86%,var(--bg) 14%);color:var(--text-2);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease,transform .12s ease}.flow-node-action-btn:hover{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);transform:translateY(-1px)}.flow-node-action-btn-active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 65%,transparent);background:color-mix(in srgb,var(--accent) 16%,transparent);transform:scale(.96)}@media (hover:none) and (pointer:coarse){.flow-node-actions{opacity:1;transform:translateY(0);pointer-events:auto;top:-15px;right:8px;padding:3px;border-radius:10px;background:color-mix(in srgb,var(--surface-1) 72%,transparent);border:1px solid color-mix(in srgb,var(--border) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.flow-node-action-btn{width:30px;height:30px;border-radius:8px}.flow-node-hover-io{display:none}}.flow-node-action-btn-danger:hover{color:#ef4444;border-color:rgba(239,68,68,.55);background:rgba(239,68,68,.1)}.flow-node-type-auth,.flow-node-type-http,.flow-node-type-webhook{background:linear-gradient(180deg,rgba(59,130,246,.12) 0,rgba(59,130,246,.04) 26%,var(--surface-1) 52%)}.flow-node-type-ai-transform{background:linear-gradient(180deg,rgba(168,85,247,.14) 0,rgba(168,85,247,.05) 28%,var(--surface-1) 54%)}.flow-node-type-external-data,.flow-node-type-set,.flow-node-type-sql{background:linear-gradient(180deg,rgba(6,182,212,.14) 0,rgba(6,182,212,.05) 28%,var(--surface-1) 54%)}.flow-node-type-code,.flow-node-type-regex{background:linear-gradient(180deg,rgba(16,185,129,.14) 0,rgba(16,185,129,.05) 28%,var(--surface-1) 54%)}.flow-node-type-delay,.flow-node-type-if,.flow-node-type-loop,.flow-node-type-pause,.flow-node-type-switch{background:linear-gradient(180deg,rgba(245,158,11,.14) 0,rgba(245,158,11,.05) 28%,var(--surface-1) 54%)}.flow-node-type-manual-trigger,.flow-node-type-schedule-trigger,.flow-node-type-webhook-trigger{background:linear-gradient(180deg,rgba(34,197,94,.16) 0,rgba(34,197,94,.06) 30%,var(--surface-1) 58%)}.flow-node-type-noop{background:linear-gradient(180deg,rgba(100,116,139,.14) 0,rgba(100,116,139,.05) 28%,var(--surface-1) 54%)}.flow-spin{animation:flow-spin-anim 1s linear infinite}@keyframes flow-spin-anim{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.flow-edge-animated{animation:flow-dash 1s linear infinite}@keyframes flow-dash{to{stroke-dashoffset:-18}}.flow-edge-svg{pointer-events:none}.ndv-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;animation:ndv-fade-in .15s ease}@keyframes ndv-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ndv-slide-up{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ndv-dialog-3panel{position:relative;width:calc(100vw - 16px);height:calc(100vh - 16px);max-width:none;max-height:95vh;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 25px 80px rgba(0,0,0,.35);display:flex;flex-direction:column;overflow:hidden;animation:ndv-slide-up .2s ease}.ndv-topbar{justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface-1);gap:12px;flex-shrink:0}.ndv-topbar,.ndv-topbar-left{display:flex;align-items:center}.ndv-topbar-left{gap:10px;min-width:0}.ndv-topbar-right{display:flex;align-items:center;gap:6px}.ndv-type-badge{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;color:#fff;flex-shrink:0}.ndv-step-name{font-size:.95rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ndv-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--text-2);transition:background .12s ease,color .12s ease}.ndv-icon-btn:hover{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.ndv-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--text-2);transition:background .12s ease,color .12s ease}.ndv-close-btn:hover{background:rgba(239,68,68,.1);color:#ef4444}.ndv-body{flex:1 1;overflow:hidden}.ndv-body,.ndv-panel{display:flex;min-height:0}.ndv-panel{flex-direction:column}.ndv-panel-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--text-2);padding:12px 16px 8px;flex-shrink:0}.ndv-panel-content{flex:1 1;overflow-y:auto;display:flex;flex-direction:column}.ndv-panel-input{border-right:1px solid var(--border)}.ndv-panel-input,.ndv-panel-output{width:clamp(320px,24vw,460px);flex-shrink:0;background:var(--surface-1)}.ndv-panel-output{border-left:1px solid var(--border)}.ndv-panel-center{flex:1 1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}.ndv-center-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:var(--surface-1);flex-shrink:0;gap:8px}.ndv-center-tabs{display:flex;gap:0}.ndv-center-tab{padding:10px 18px;font-size:.85rem;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--text-2);transition:color .12s ease,border-color .12s ease}.ndv-center-tab:hover{color:var(--text)}.ndv-center-tab-active{color:var(--text);border-bottom-color:var(--accent)}.ndv-execute-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;font-size:.8rem;font-weight:600;border:none;border-radius:20px;background:#ef4444;color:#fff;cursor:pointer;transition:background .12s ease,transform .1s ease;white-space:nowrap}.ndv-execute-btn:hover{background:#dc2626;transform:translateY(-1px)}.ndv-execute-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.ndv-center-content{flex:1 1;overflow-y:auto;padding:20px}.ndv-center-footer{border-top:1px solid var(--border);padding:10px 16px;flex-shrink:0;background:var(--surface-1)}.ndv-center-footer-hint{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-2);opacity:.6;cursor:text}.ndv-io-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1 1;padding:24px 16px;gap:8px}.ndv-io-empty-label{font-size:.85rem;font-weight:600;color:var(--text);margin:0}.ndv-io-empty-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 16px;font-size:.8rem;font-weight:500;border:1px solid var(--border);border-radius:8px;background:var(--surface-1);color:var(--text);cursor:pointer;transition:background .12s ease;margin-top:4px}.ndv-io-empty-btn:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.ndv-io-empty-btn:disabled{opacity:.5;cursor:not-allowed}.ndv-io-empty-sub{font-size:.75rem;color:var(--text-2);margin:0}.ndv-io-mock-btn{font-size:.8rem;color:var(--text-2);background:none;border:none;cursor:pointer;padding:0;margin-top:2px}.ndv-io-data{padding:12px 16px}.ndv-io-data-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.ndv-io-data-status{font-size:.85rem;font-weight:700}.ndv-io-data-duration{font-size:.7rem;color:var(--text-2)}.ndv-io-json{background:color-mix(in srgb,var(--text) 3%,transparent);padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;color:var(--text)}.ndv-io-json,.ndv-io-view-switch{border:1px solid var(--border);border-radius:8px}.ndv-io-view-switch{margin-left:auto;display:inline-flex;align-items:center;overflow:hidden}.ndv-io-view-btn{border:none;background:transparent;color:var(--text-2);padding:4px 10px;font-size:.72rem;cursor:pointer}.ndv-io-view-btn-active{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}.jsoneditor-menu{list-style:none;display:flex;align-items:center;gap:6px;margin:0 0 8px;padding:0;flex-wrap:wrap}.jsoneditor-type-modes{border:1px solid var(--border);background:var(--bg);color:var(--text-2);border-radius:8px;padding:4px 8px;cursor:pointer;font-size:.72rem;line-height:1}.jsoneditor-type-modes .jsoneditor-text{white-space:nowrap}.jsoneditor-type-modes.jsoneditor-selected{color:var(--text);background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.ndv-io-copy-hint{font-size:.7rem;color:var(--text-2);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ndv-io-kv-list{border:1px solid var(--border);border-radius:8px;overflow:hidden}.ndv-io-kv-row{display:grid;grid-template-columns:minmax(120px,34%) minmax(0,1fr);grid-gap:8px;gap:8px;padding:8px 10px;border-bottom:1px solid color-mix(in srgb,var(--border) 90%,transparent);font-size:.78rem}.ndv-io-kv-row:last-child{border-bottom:none}.ndv-io-kv-key{color:var(--text-2)}.ndv-io-kv-key,.ndv-io-kv-val{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.ndv-io-kv-val{color:var(--text);word-break:break-word}.ndv-io-table-wrap{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:color-mix(in srgb,var(--text) 2%,transparent)}.ndv-io-table{width:100%;border-collapse:collapse;font-size:.75rem}.ndv-io-table td,.ndv-io-table th{padding:7px 9px;border-bottom:1px solid color-mix(in srgb,var(--border) 85%,transparent);text-align:left;vertical-align:top}.ndv-io-table th{background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text-2);font-weight:600}.ndv-io-table td{color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;word-break:break-word}.ndv-io-table-more{padding:6px 9px;font-size:.7rem;color:var(--text-2)}.ndv-io-tree{border:1px solid var(--border);border-radius:8px;padding:6px 8px;background:color-mix(in srgb,var(--text) 2%,transparent)}.ndv-io-tree details{margin:4px 0}.ndv-io-tree summary{cursor:pointer;font-size:.76rem;color:var(--text-2)}.ndv-io-tree-child{margin-left:10px;margin-top:4px}.ndv-value-menu{position:fixed;z-index:220;min-width:220px;background:var(--surface-1);border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 30px rgba(0,0,0,.28);padding:6px}.ndv-value-menu-item{width:100%;text-align:left;border:none;background:transparent;color:var(--text);font-size:.8rem;padding:8px 10px;border-radius:8px;cursor:pointer}.ndv-value-menu-item:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.ndv-io-extracted{margin-bottom:10px;padding:8px;background:color-mix(in srgb,var(--accent) 4%,transparent);border-radius:8px}.ndv-io-extracted-row{display:flex;align-items:flex-start;gap:6px;font-size:.7rem;padding:2px 0}.ndv-io-extracted-key{color:var(--accent);font-weight:600;font-family:ui-monospace,monospace;flex-shrink:0}.ndv-io-extracted-val{color:var(--text-2);font-family:ui-monospace,monospace;word-break:break-all}.ndv-bottombar{display:flex;align-items:center;gap:12px;padding:8px 16px;border-top:1px solid var(--border);background:var(--surface-1);flex-shrink:0;font-size:.75rem}.ndv-bottombar-label{font-weight:600;color:var(--text-2)}.ndv-bottombar-detail{color:var(--text-2);opacity:.6;font-family:ui-monospace,monospace;font-size:.65rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.ndv-dialog-3panel{width:calc(100% - 8px);height:calc(100% - 8px);border-radius:8px}.ndv-body{flex-direction:column}.ndv-panel-input,.ndv-panel-output{width:100%;height:220px;border-right:none;border-left:none;border-bottom:1px solid var(--border)}.ndv-panel-output{border-bottom:none;border-top:1px solid var(--border)}}.flow-json-pre{background:color-mix(in srgb,var(--text) 3%,transparent);border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;overflow-x:auto;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.flow-chain-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid var(--border);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);cursor:pointer;transition:background .12s ease}.flow-chain-btn:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.flow-chain-dropdown{position:absolute;top:100%;left:0;z-index:50;min-width:300px;max-height:380px;overflow-y:auto;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.15);padding:6px;margin-top:4px}.flow-chain-group{padding:2px 0}.flow-chain-group-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);padding:4px 8px 2px}.flow-chain-item{display:flex;flex-direction:column;gap:1px;width:100%;padding:5px 8px;border:none;background:none;border-radius:8px;cursor:pointer;text-align:left;transition:background .1s ease}.flow-chain-item:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.flow-chain-token{font-size:.75rem;font-family:ui-monospace,monospace;color:var(--accent);font-weight:500}.flow-chain-desc{font-size:.65rem;color:var(--text-2)}.flow-chain-empty{padding:12px;text-align:center;font-size:.8rem;color:var(--text-2)}.flow-test-panel{overflow:hidden}.flow-test-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;width:100%;background:none;border:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--border)}.flow-test-panel-body{padding:12px 16px}.flow-test-timeline{display:flex;flex-direction:column;gap:8px}.flow-test-timeline-item{display:flex;align-items:flex-start;gap:10px}.flow-test-timeline-icon{flex-shrink:0;padding-top:2px}.flow-test-timeline-content{flex:1 1;min-width:0}.flow-components-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;height:100%;overflow:hidden}.flow-panel-collapsed{display:flex;align-items:flex-start;justify-content:center;padding-top:12px}.flow-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--border)}.flow-panel-title{font-size:.85rem;font-weight:700}.flow-panel-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:8px;background:none;cursor:pointer;color:var(--text-2);transition:background .1s ease}.flow-panel-toggle:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.flow-panel-search{position:relative;padding:8px 12px}.flow-panel-search-icon{position:absolute;top:50%;left:22px;transform:translateY(-50%);color:var(--text-2);pointer-events:none}.flow-panel-search-input{width:100%;padding:8px 10px 8px 30px;font-size:.8rem;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--text) 2%,transparent);color:var(--text)}.flow-panel-search-input::placeholder{color:var(--text-2)}.flow-panel-categories{flex:1 1;overflow-y:auto;padding:4px 12px 12px;display:flex;flex-direction:column;align-items:center}.flow-panel-category{margin-bottom:8px;width:100%;max-width:320px}.flow-panel-subcategory{margin-bottom:6px}.flow-panel-subcategory-label{font-size:.62rem;letter-spacing:.04em;padding:2px 2px 4px}.flow-panel-category-label,.flow-panel-subcategory-label{font-weight:700;text-transform:uppercase;color:var(--text-2)}.flow-panel-category-label{font-size:.65rem;letter-spacing:.05em;padding:6px 0 4px}.flow-panel-empty{padding:20px;text-align:center;font-size:.8rem;color:var(--text-2)}.flow-component-card{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:none;cursor:-webkit-grab;cursor:grab;text-align:left;transition:background .12s ease,border-color .12s ease;width:100%;max-width:320px;margin-bottom:6px;margin-left:auto;margin-right:auto}.flow-component-card:active{cursor:-webkit-grabbing;cursor:grabbing}.flow-component-card:hover{background:color-mix(in srgb,var(--accent) 5%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.flow-component-card:disabled{opacity:.4;cursor:not-allowed}.flow-component-icon{flex-shrink:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in srgb,var(--text) 4%,transparent)}.flow-component-info{flex:1 1;min-width:0}.flow-component-label{font-size:.8rem;font-weight:600;line-height:1.2}.flow-component-desc{font-size:.66rem;color:var(--text-2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flow-component-add-btn{flex-shrink:0;border:1px solid var(--border);background:var(--surface-1);color:var(--text);border-radius:8px;padding:4px 7px;font-size:.66rem;font-weight:600;cursor:pointer;transition:background .1s ease,border-color .1s ease;display:none}.flow-component-add-btn:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.flow-publish-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 18px;font-size:.8rem;font-weight:600;border:none;border-radius:20px;background:#facc15;color:#1f2937;cursor:pointer;transition:background .12s ease,transform .1s ease;white-space:nowrap}.flow-publish-btn:hover{transform:translateY(-1px);background:#eab308}.flow-publish-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.node-context-menu{position:fixed;z-index:200;min-width:220px;background:color-mix(in srgb,var(--surface-1) 92%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:6px;animation:ndv-fade-in .1s ease}.node-context-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:none;border-radius:8px;cursor:pointer;font-size:.82rem;color:var(--text);transition:background 80ms ease;text-align:left}.node-context-item:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}.node-context-item-danger:hover{background:rgba(239,68,68,.1);color:#ef4444}.node-context-item-icon{display:flex;align-items:center;color:var(--text-2);flex-shrink:0}.node-context-item-label{flex:1 1}.node-context-shortcut{font-size:.7rem;color:var(--text-2);background:color-mix(in srgb,var(--text) 6%,transparent);padding:2px 6px;border-radius:4px;font-family:ui-monospace,monospace;flex-shrink:0}.node-context-divider{height:1px;background:var(--border);margin:4px 8px}.sticky-note{border-radius:10px;padding:0;overflow:hidden;box-shadow:0 4px 16px rgba(0,0,0,.1);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-width:120px;min-height:60px}[data-theme=dark] .sticky-note{box-shadow:0 4px 16px rgba(0,0,0,.35)}.sticky-note-header{display:flex;justify-content:flex-end;padding:4px 6px 0;opacity:0;transition:opacity .15s ease}.sticky-note:hover .sticky-note-header{opacity:1}.sticky-note-delete{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:rgba(0,0,0,.1);border-radius:4px;cursor:pointer;color:rgba(0,0,0,.5);transition:background .1s ease}.sticky-note-delete:hover{background:rgba(239,68,68,.2);color:#ef4444}.sticky-note-text{padding:8px 14px 12px;font-size:.85rem;font-weight:600;color:rgba(0,0,0,.75);outline:none;min-height:30px;word-break:break-word}.sticky-note-hint{padding:0 14px 10px;font-size:.75rem;font-weight:500;color:rgba(0,0,0,.4)}.sticky-note-resize{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:transparent}.sticky-note-resize:after{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;border-right:2px solid rgba(0,0,0,.15);border-bottom:2px solid rgba(0,0,0,.15)}.execution-bar{display:flex;align-items:center;justify-content:space-between;min-height:50px;padding:6px 12px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 86%,var(--bg) 14%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;z-index:15;position:relative;touch-action:manipulation}.execution-bar-left,.execution-bar-right{display:flex;align-items:center;gap:8px;flex:1 1}.execution-bar-right{justify-content:flex-end;flex-wrap:nowrap;min-width:0}.execution-bar-center{flex-shrink:0;display:flex;align-items:center;gap:6px}.execution-bar-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;border:none;border-radius:999px;background:linear-gradient(135deg,#fb7185,#ef4444);color:#fff;cursor:pointer;transition:filter .12s ease,transform .1s ease;white-space:nowrap;min-width:84px;justify-content:center}.execution-bar-btn:hover{filter:brightness(.95);transform:translateY(-1px)}.execution-bar-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.execution-bar-debug-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:600;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--bg) 88%,var(--surface-1) 12%);color:var(--text);cursor:pointer;min-width:84px;justify-content:center}.execution-bar-debug-btn:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.execution-bar-debug-btn:disabled{opacity:.6;cursor:not-allowed}.execution-bar-logs-btn{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:.8rem;font-weight:600;border:1px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,var(--surface-1) 12%);cursor:pointer;color:var(--text-2);border-radius:999px;transition:background .1s ease;min-width:84px;justify-content:center}.execution-bar-logs-btn:hover{background:color-mix(in srgb,var(--text) 5%,transparent);color:var(--text)}.execution-bar-logs-btn:disabled{opacity:.4;cursor:not-allowed}.execution-bar-clear-btn{display:flex;align-items:center;gap:4px;font-size:.78rem;font-weight:600;color:var(--text-2);background:color-mix(in srgb,var(--bg) 88%,var(--surface-1) 12%);border:1px solid var(--border);cursor:pointer;padding:7px 10px;border-radius:999px;transition:background .1s ease,color .1s ease;min-width:84px;justify-content:center}.execution-bar-clear-btn:hover{background:rgba(239,68,68,.1);color:#ef4444}.execution-bar-icon-only{min-width:34px;width:34px;height:34px;padding:0;justify-content:center;border-radius:10px}.execution-pill-count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.execution-logs-panel{border-top:1px solid var(--border);background:var(--surface-1);max-height:240px;overflow-y:auto;animation:ndv-slide-up .15s ease}.execution-logs-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--surface-1)}.execution-logs-body{padding:8px 16px}.execution-logs-body-grid{display:grid;grid-template-columns:minmax(300px,48%) minmax(0,1fr);grid-gap:10px;gap:10px}.execution-logs-list{border:1px solid var(--border);border-radius:8px;overflow:auto;max-height:220px}.execution-log-entry{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:.8rem;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer}.execution-log-entry:last-child{border-bottom:none}.execution-log-entry:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.execution-log-entry-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.execution-log-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.execution-log-id{font-family:ui-monospace,monospace;font-weight:600;flex:1 1}.execution-log-duration,.execution-log-status{color:var(--text-2);font-size:.75rem}.execution-log-duration{font-family:ui-monospace,monospace}.execution-log-detail{border:1px solid var(--border);border-radius:8px;padding:10px;min-height:220px}.execution-log-detail-title{font-size:.82rem;font-weight:600;margin-bottom:4px}.execution-log-detail-meta{font-size:.72rem;color:var(--text-2);margin-bottom:8px}.execution-log-empty{font-size:.78rem;color:var(--text-2);padding:10px}.flow-node-deactivated{opacity:.45;filter:grayscale(.7);border-style:dashed}.flow-node-pinned-badge{top:-8px;right:-8px;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;align-items:center;font-size:10px;z-index:6;box-shadow:0 2px 6px rgba(0,0,0,.2)}.flow-node-pinned-badge,.sub-node-ports{position:absolute;display:flex;justify-content:center}.sub-node-ports{bottom:-28px;left:0;right:0;pointer-events:none}.sub-node-port{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;pointer-events:all;transition:transform .1s ease}.sub-node-port:hover{transform:scale(1.15)}.sub-node-port-icon{width:24px;height:24px;border-radius:6px;border:2px solid var(--border);background:var(--surface-1);display:flex;align-items:center;justify-content:center}.sub-node-port-attached .sub-node-port-icon{border-color:currentColor}.sub-node-port-label{font-size:.55rem;font-weight:600;color:var(--text-2);white-space:nowrap}.sub-node-port-dot{width:6px;height:6px;border-radius:50%;position:absolute;top:-2px;right:-2px}.db-connection-panel{gap:16px}.db-connection-panel,.db-section{display:flex;flex-direction:column}.db-section{gap:6px}.db-mode-toggle{display:flex;background:color-mix(in srgb,var(--text) 4%,transparent);border-radius:10px;padding:3px;gap:2px}.db-mode-btn{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:500;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--text-2);flex:1 1;justify-content:center;transition:background .1s ease,color .1s ease}.db-mode-btn:hover{color:var(--text)}.db-mode-btn-active{background:var(--surface-1);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.08)}.db-form-fields{display:flex;flex-direction:column;gap:12px}.db-form-row{display:flex;gap:10px}.db-ssl-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 0}.db-ssl-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.db-cs-preview{display:flex;flex-direction:column;gap:4px}.db-cs-code{display:block;padding:8px 10px;background:color-mix(in srgb,var(--text) 3%,transparent);border:1px solid var(--border);border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.7rem;word-break:break-all;color:var(--accent)}.db-test-row{gap:12px}.db-test-result,.db-test-row{display:flex;align-items:center}.db-test-result{gap:4px;font-size:.8rem;font-weight:500}.db-test-success{color:var(--success)}.db-test-error{color:var(--danger)}.db-type-selector{position:relative}.db-type-selected{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface-1);cursor:pointer;transition:border-color .1s ease;color:var(--text);font-size:.85rem;font-weight:500}.db-type-selected:hover{border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.db-type-icon{display:flex;align-items:center;flex-shrink:0}.db-type-label{flex:1 1;text-align:left}.db-type-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;background:color-mix(in srgb,var(--surface-1) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.2);padding:6px;max-height:320px;overflow-y:auto}.db-type-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:none;border-radius:8px;cursor:pointer;text-align:left;transition:background 80ms ease;color:var(--text)}.db-type-option:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.db-type-option-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.db-type-option-info{display:flex;flex-direction:column}.db-type-option-name{font-size:.82rem;font-weight:500}.db-type-option-port{font-size:.7rem;color:var(--text-2)}.query-builder{display:flex;flex-direction:column;gap:16px}.qb-mode-toggle{display:flex;background:color-mix(in srgb,var(--text) 4%,transparent);border-radius:10px;padding:3px;gap:2px}.qb-visual{gap:14px}.qb-section,.qb-visual{display:flex;flex-direction:column}.qb-section{gap:6px}.qb-section-header{display:flex;align-items:center;justify-content:space-between}.qb-condition-row,.qb-inline-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.qb-condition-row{flex-wrap:wrap}.qb-connector-select{width:70px;padding:6px 8px;font-size:.75rem}.qb-op-select{width:110px;padding:6px 8px;font-size:.75rem}.qb-join-row{display:flex;align-items:center;gap:6px;margin-bottom:4px;flex-wrap:wrap}.qb-join-type-select{width:90px;padding:6px 8px;font-size:.75rem}.qb-limit-row{display:flex;gap:10px}.qb-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:none;border-radius:6px;cursor:pointer;color:var(--text-2);transition:background .1s ease,color .1s ease;flex-shrink:0}.qb-remove-btn:hover{background:rgba(239,68,68,.1);color:#ef4444}.qb-preview{display:flex;flex-direction:column;gap:6px}.qb-preview-code{background:color-mix(in srgb,var(--text) 3%,transparent);border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all;color:var(--accent);max-height:200px;overflow-y:auto}.qb-raw{display:flex;flex-direction:column;gap:6px}.sql-form-tabs{display:flex;background:color-mix(in srgb,var(--text) 4%,transparent);border-radius:10px;padding:3px;gap:2px;margin-bottom:16px}.sql-form-tab{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:.8rem;font-weight:500;border:none;border-radius:8px;background:none;cursor:pointer;color:var(--text-2);flex:1 1;justify-content:center;transition:background .1s ease,color .1s ease}.sql-form-tab:hover{color:var(--text)}.sql-form-tab-active{background:var(--surface-1);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.08)}.process-block-canvas{background:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:24px 24px;cursor:default}.process-block-node{position:absolute;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 92%,transparent);box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;flex-direction:column;overflow:visible;transition:box-shadow .15s ease,border-color .15s ease;z-index:2}.process-block-node:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);z-index:3}.process-block-node-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent),0 4px 16px rgba(0,0,0,.1);z-index:4}.process-block-number{position:absolute;bottom:8px;right:12px;font-size:2.5rem;font-weight:900;opacity:.12;line-height:1;pointer-events:none;z-index:0}.process-block-header{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;flex-shrink:0;z-index:1}.process-block-title{font-size:.8rem;font-weight:700;color:var(--text);line-height:1.3}.process-block-body{flex:1 1;padding:4px 12px;font-size:.68rem;color:var(--text-2);overflow:hidden;z-index:1}.flow-slide-over-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:50;animation:fadeIn .2s ease}.flow-slide-over{position:fixed;top:0;right:0;bottom:0;width:70vw;max-width:1200px;background:var(--bg);border-left:1px solid var(--border);box-shadow:-12px 0 40px rgba(0,0,0,.15);z-index:51;display:flex;flex-direction:column;animation:slideInRight .3s cubic-bezier(.16,1,.3,1)}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.display-mode-toggle{display:flex;background:color-mix(in srgb,var(--text) 4%,transparent);border-radius:8px;padding:2px;gap:2px}.display-mode-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;font-size:.7rem;font-weight:500;border:none;border-radius:6px;background:none;cursor:pointer;color:var(--text-2);transition:background .1s ease,color .1s ease}.display-mode-btn:hover{color:var(--text)}.display-mode-btn-active{background:var(--surface-1);color:var(--text);box-shadow:0 2px 8px rgba(0,0,0,.08)}.notation-container{border:2px dashed color-mix(in srgb,var(--border) 60%,transparent);border-radius:8px;background:color-mix(in srgb,var(--surface-1) 15%,transparent);pointer-events:auto}.notation-container-header{display:flex;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;border-radius:6px 6px 0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:move}.notation-container-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 30%,transparent)}.notation-container-resize{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;opacity:.4;transition:opacity .15s}.notation-container-resize:hover{opacity:.8}.notation-shape-diamond{-webkit-clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.notation-shape-hexagon{-webkit-clip-path:polygon(15% 0,85% 0,100% 50%,85% 100%,15% 100%,0 50%);clip-path:polygon(15% 0,85% 0,100% 50%,85% 100%,15% 100%,0 50%)}.notation-shape-octagon{-webkit-clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%)}.notation-shape-parallelogram{-webkit-clip-path:polygon(15% 0,100% 0,85% 100%,0 100%);clip-path:polygon(15% 0,100% 0,85% 100%,0 100%)}.notation-shape-trapezoid{-webkit-clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);clip-path:polygon(12% 0,88% 0,100% 100%,0 100%)}.es-domain-event{background:#ff8c00;color:#fff}.es-command{background:#4169e1;color:#fff}.es-aggregate{background:gold;color:#1a1a2e}.es-read-model{background:#32cd32;color:#fff}.es-policy{background:#9370db;color:#fff}.es-external-system{background:#ff69b4;color:#fff}.es-actor{background:#fffacd;color:#1a1a2e}.es-hotspot{background:red;color:#fff}.es-saga{background:plum;color:#1a1a2e}.decision-table{border-collapse:collapse;width:100%;font-size:12px}.decision-table td,.decision-table th{border:1px solid color-mix(in srgb,var(--border) 50%,transparent);padding:4px 6px;text-align:left}.decision-table th{background:color-mix(in srgb,var(--surface-1) 60%,transparent);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.02em}.decision-table td input,.decision-table td select{width:100%;background:transparent;border:none;outline:none;padding:2px;font-size:12px;color:var(--text)}.decision-table td select{cursor:pointer}.boundary-event-circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-1);border:2px solid;font-size:10px;cursor:pointer;transition:transform .15s}.boundary-event-circle:hover{transform:scale(1.15)}.boundary-event-noninterrupting{border-style:dashed}.notation-toolbar-trigger{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid color-mix(in srgb,var(--border) 50%,transparent);background:color-mix(in srgb,var(--surface-1) 60%,transparent);color:var(--text);font-size:12px;cursor:pointer;transition:background .15s,border-color .15s}.notation-toolbar-trigger:hover{background:color-mix(in srgb,var(--surface-1) 90%,transparent);border-color:color-mix(in srgb,var(--accent) 50%,transparent)}.vsm-metrics{display:grid;grid-template-columns:1fr 1fr;grid-gap:2px;gap:2px;font-size:10px;padding:4px 6px;background:rgba(0,0,0,.05);border-radius:0 0 4px 4px}.vsm-metrics dt{font-weight:500;color:var(--text-2)}.vsm-metrics dd{font-weight:700;text-align:right}.bpmn-gateway-marker{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.archimate-layer-band{position:absolute;left:0;right:0;border-top:2px solid;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;opacity:.7}.notation-selection-ring{position:absolute;inset:-3px;border:2px dashed var(--accent);border-radius:inherit;pointer-events:none;animation:notation-pulse 1.5s ease-in-out infinite}@keyframes notation-pulse{0%,to{opacity:.6}50%{opacity:1}}.flow-notation-sidebar{width:260px;flex-shrink:0;border-right:1px solid var(--border);background:var(--surface-1);transition:width .2s ease}.flow-notation-sidebar,.flow-sidebar-panel{display:flex;flex-direction:column;overflow:hidden}.flow-sidebar-panel{height:100%}.flow-sidebar-header{justify-content:space-between;padding:10px 14px}.flow-sidebar-header,.flow-sidebar-search{display:flex;align-items:center;border-bottom:1px solid var(--border);flex-shrink:0}.flow-sidebar-search{gap:8px;padding:8px 12px}.flow-sidebar-search input{flex:1 1;background:transparent;border:none;outline:none;color:var(--text);font-size:12px}.flow-sidebar-categories{flex:1 1;overflow-y:auto;padding:6px 8px 12px}.flow-sidebar-category{margin-bottom:4px}.flow-sidebar-category-header{display:flex;align-items:center;gap:6px;padding:6px 8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:6px;transition:background .12s ease}.flow-sidebar-category-header:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.flow-notation-badge{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);border-left:3px solid;flex-shrink:0}.flow-notation-badge-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:color-mix(in srgb,var(--accent) 10%,transparent);flex-shrink:0}.flow-notation-badge-label{font-size:12px;font-weight:600;color:var(--text);line-height:1.2}.flow-notation-badge-desc{font-size:10px;color:var(--text-2);line-height:1.3;margin-top:1px}.flow-sidebar-component-card{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:none;cursor:-webkit-grab;cursor:grab;text-align:left;transition:background .12s ease,border-color .12s ease;width:100%;margin-bottom:4px}.flow-sidebar-component-card:active{cursor:-webkit-grabbing;cursor:grabbing}.flow-sidebar-component-card:hover{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.flow-sidebar-container-card{display:flex;align-items:center;gap:8px;padding:7px 10px;border:2px dashed color-mix(in srgb,var(--border) 60%,transparent);border-radius:8px;cursor:pointer;transition:background .12s ease,border-color .12s ease;width:100%;margin-bottom:4px}.flow-sidebar-container-card:hover{background:color-mix(in srgb,var(--accent) 6%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.flow-node-notation-noncompact{cursor:pointer;transition:transform .18s cubic-bezier(.22,1,.36,1),filter .18s ease,box-shadow .18s ease}.flow-node-notation-noncompact:hover{transform:scale(var(--canvas-zoom,1)) translateY(-2px);filter:brightness(1.08)}.flow-node-notation-noncompact.flow-node-running{animation:nn-pulse 1.8s cubic-bezier(.4,0,.6,1) infinite}.flow-node-notation-noncompact.flow-node-success{outline:2px solid #22c55e;outline-offset:2px}.flow-node-notation-noncompact.flow-node-error{outline:2px solid #ef4444;outline-offset:2px}@keyframes nn-pulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.15) saturate(1.2)}}.flow-node.flow-node-notation-inner{position:relative;left:auto;top:auto;transform:none;width:100%;min-height:auto;background:transparent;border:none;border-radius:0;box-shadow:none;overflow:visible}.flow-node.flow-node-notation-inner:hover{border-color:transparent;transform:none}.flow-node-notation-noncompact .notation-node-content{overflow:visible}.nn-category-badge{display:inline-flex;align-items:center;padding:1px 7px;border-radius:10px;font-size:.58rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.nn-concept-label{font-weight:600;font-size:.68rem;letter-spacing:.02em;margin-bottom:1px}.nn-step-detail{display:flex;align-items:center;gap:6px;font-size:.7rem;opacity:.85}.nn-step-detail .flow-node-method{font-size:.62rem}.nn-step-detail .flow-node-path{font-size:.65rem}.nn-body{flex-direction:column;align-items:flex-start;gap:2px;padding:0 14px 8px 18px}.flow-node-notation-noncompact .flow-node-actions{opacity:0;transform:translateY(-2px);pointer-events:none;transition:opacity .12s ease,transform .12s ease}.flow-node-notation-noncompact:hover .flow-node-actions{opacity:1;transform:translateY(0);pointer-events:auto}.flow-node-notation-compact{display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .18s cubic-bezier(.22,1,.36,1),filter .18s ease}.flow-node-notation-compact:hover{transform:scale(var(--canvas-zoom,1)) translateY(-2px);filter:brightness(1.15) drop-shadow(0 4px 8px rgba(0,0,0,.2))}.flow-node-notation-compact.flow-node-running{animation:nn-pulse 1.8s cubic-bezier(.4,0,.6,1) infinite}.flow-node-notation-compact.flow-node-success .notation-node-shell{outline:2px solid #22c55e;outline-offset:1px;border-radius:50%}.flow-node-notation-compact.flow-node-error .notation-node-shell{outline:2px solid #ef4444;outline-offset:1px;border-radius:50%}.flow-node-notation-label{text-align:center;font-size:10px;font-weight:600;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px;color:var(--text-2);text-shadow:0 1px 3px rgba(0,0,0,.3)}.flow-port-compact{width:16px!important;height:16px!important}.flow-port-compact .flow-port-inner{width:6px!important;height:6px!important}.flow-canvas-notation{background-image:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--accent) 4%,transparent) 1px,transparent 0);background-size:20px 20px}@media (max-width:980px){.flow-notation-sidebar{display:none}.flow-mobile-toolbar .btn{min-height:44px;min-width:44px}.flow-mobile-toolbar .flow-icon-btn{min-width:44px;width:44px}}.flow-notation-sheet{max-height:60dvh}.flow-notation-sheet .flow-sidebar-panel{max-height:100%;height:100%}.select,select.input{-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='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' fill='none' stroke='%23999' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.checkbox-wrap{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:500}.checkbox-wrap input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:6px;border:2px solid var(--border);background:color-mix(in srgb,var(--surface-1) 80%,var(--bg) 20%);cursor:pointer;position:relative;flex-shrink:0;transition:background .16s cubic-bezier(.2,.8,.2,1),border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.34,1.56,.64,1)}.checkbox-wrap input[type=checkbox]:hover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.checkbox-wrap input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent);animation:checkbox-pop .22s cubic-bezier(.34,1.56,.64,1)}.checkbox-wrap input[type=checkbox]:checked:after{content:"";position:absolute;top:3px;left:6px;width:5px;height:9px;border:2px solid #fff;border-top:0;border-left:0;transform:rotate(45deg)}@keyframes checkbox-pop{0%{transform:scale(1)}40%{transform:scale(1.15)}to{transform:scale(1)}}.radio-wrap{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:500}.radio-wrap input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:999px;border:2px solid var(--border);background:color-mix(in srgb,var(--surface-1) 80%,var(--bg) 20%);cursor:pointer;position:relative;flex-shrink:0;transition:background .16s cubic-bezier(.2,.8,.2,1),border-color .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s cubic-bezier(.2,.8,.2,1)}.radio-wrap input[type=radio]:hover{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.radio-wrap input[type=radio]:checked{border-color:var(--accent);background:var(--surface-1);animation:checkbox-pop .22s cubic-bezier(.34,1.56,.64,1)}.radio-wrap input[type=radio]:checked:after{content:"";position:absolute;top:4px;left:4px;width:8px;height:8px;border-radius:999px;background:var(--accent)}.toggle-wrap{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:500}.toggle-wrap input{display:none}.toggle-track{width:40px;height:22px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent);border:1px solid var(--border);position:relative;cursor:pointer;transition:background .2s cubic-bezier(.2,.8,.2,1),border-color .2s cubic-bezier(.2,.8,.2,1)}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.toggle-wrap input:checked+.toggle-track{background:var(--accent);border-color:var(--accent)}.toggle-wrap input:checked+.toggle-track:after{transform:translateX(18px)}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-in{animation:fade-in .26s cubic-bezier(.2,.8,.2,1) both}.animate-slide-up{animation:slide-up .36s cubic-bezier(.2,.8,.2,1) both}.skeleton{background:linear-gradient(90deg,var(--surface-1) 25%,var(--surface-2) 50%,var(--surface-1) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:10px}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-info{color:var(--info)}:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}[data-tooltip]{position:relative}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(4px);padding:5px 10px;border-radius:8px;font-size:12px;font-weight:500;background:var(--surface-2);color:var(--text);white-space:nowrap;pointer-events:none;opacity:0;z-index:50;transition:opacity .16s cubic-bezier(.2,.8,.2,1),transform .16s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-1)}[data-tooltip]:hover:before{opacity:1;transform:translateX(-50%) translateY(0)}.console-shell{--sidebar-w:280px;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100dvh;transition:grid-template-columns var(--dur-3) var(--ease-premium)}.console-shell[data-sidebar=collapsed]{--sidebar-w:56px}.console-main{display:flex;flex-direction:column;min-height:0;overflow:hidden}.console-content{flex:1 1;padding:var(--sp-5);overflow-y:auto;overflow-x:hidden}.console-sidebar{position:-webkit-sticky;position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface-1) 92%,transparent);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;transition:width var(--dur-3) var(--ease-premium)}.console-sidebar::-webkit-scrollbar{display:none}.console-sidebar-head{padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden;white-space:nowrap}.console-sidebar-brand{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.console-sidebar-subtitle{font-size:.72rem;color:var(--text-3);margin-top:2px}.console-sidebar-nav{flex:1 1;padding:var(--sp-2) var(--sp-2)}.console-nav-section{margin-bottom:var(--sp-2)}.console-nav-section-title{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:var(--sp-2) var(--sp-2) var(--sp-1);white-space:nowrap;overflow:hidden;transition:opacity var(--dur-2) var(--ease-premium)}.console-nav-section-divider{height:1px;background:var(--border);margin:var(--sp-2) var(--sp-2);display:none}.console-nav-link{display:flex;align-items:center;gap:var(--sp-2);padding:6px var(--sp-2);border-radius:var(--r-1);font-size:.82rem;font-weight:500;color:var(--text-2);text-decoration:none;white-space:nowrap;overflow:hidden;position:relative;transition:color var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium)}.console-nav-link:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 6%,transparent)}.console-nav-link-active{color:var(--accent)!important;background:var(--accent-soft)!important}.console-nav-link-active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.console-nav-link-accent{color:var(--accent);font-weight:600}.console-nav-link-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:.7}.console-nav-link-active .console-nav-link-icon{opacity:1}.console-nav-link-label{overflow:hidden;text-overflow:ellipsis;transition:opacity var(--dur-2) var(--ease-premium),width var(--dur-2) var(--ease-premium)}.console-sidebar-footer{padding:var(--sp-2);border-top:1px solid var(--border);flex-shrink:0}.console-sidebar-back{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px var(--sp-2);border-radius:var(--r-1);font-size:.78rem;font-weight:500;color:var(--text-3);background:none;border:1px solid var(--border);cursor:pointer;white-space:nowrap;overflow:hidden;transition:color var(--dur-1) var(--ease-premium),border-color var(--dur-1) var(--ease-premium)}.console-sidebar-back:hover{color:var(--text-2);border-color:var(--border-2)}.console-sidebar-collapse{display:flex;align-items:center;justify-content:center;width:100%;padding:6px;margin-top:var(--sp-1);border-radius:var(--r-1);background:none;border:none;color:var(--text-3);cursor:pointer;transition:color var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium)}.console-sidebar-collapse:hover{color:var(--text-2);background:color-mix(in srgb,var(--accent) 6%,transparent)}.console-shell[data-sidebar=collapsed] .console-sidebar-head{padding:var(--sp-3) var(--sp-2);text-align:center}.console-shell[data-sidebar=collapsed] .console-sidebar-brand{font-size:.7rem;letter-spacing:0}.console-shell[data-sidebar=collapsed] .console-sidebar-subtitle{display:none}.console-shell[data-sidebar=collapsed] .console-nav-section-title{opacity:0;height:0;padding:0;margin:0;overflow:hidden}.console-shell[data-sidebar=collapsed] .console-nav-section-divider{display:block}.console-shell[data-sidebar=collapsed] .console-nav-link{justify-content:center;padding:8px}.console-shell[data-sidebar=collapsed] .console-nav-link-label{display:none}.console-shell[data-sidebar=collapsed] .console-nav-link-active:before{top:6px;bottom:6px}.console-shell[data-sidebar=collapsed] .console-sidebar-back span{display:none}.console-shell[data-sidebar=collapsed] .console-sidebar-back{justify-content:center;padding:8px}.console-topbar{gap:var(--sp-3);height:52px;padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface-1) 86%,transparent);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);position:-webkit-sticky;position:sticky;top:0;z-index:20}.console-topbar,.console-topbar-collapse-btn{display:flex;align-items:center;flex-shrink:0}.console-topbar-collapse-btn{justify-content:center;width:28px;height:28px;border-radius:6px;background:none;border:none;color:var(--text-3);cursor:pointer;transition:color var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium)}.console-topbar-collapse-btn:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 8%,transparent)}.console-topbar-spacer{flex:1 1}.console-topbar-search{display:flex;align-items:center;gap:var(--sp-2);padding:6px 12px;min-width:220px;border-radius:var(--r-1);background:color-mix(in srgb,var(--surface-2) 60%,transparent);border:1px solid var(--border);color:var(--text-3);font-size:.8rem;cursor:pointer;transition:border-color var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium)}.console-topbar-search:hover{border-color:var(--border-2);background:color-mix(in srgb,var(--surface-2) 80%,transparent)}.console-topbar-search kbd{margin-left:auto;padding:2px 6px;border-radius:5px;font-size:.68rem;font-family:var(--font-sans);font-weight:600;background:color-mix(in srgb,var(--surface-3) 60%,transparent);border:1px solid var(--border);color:var(--text-3);line-height:1}.console-breadcrumbs{display:flex;align-items:center;gap:6px;font-size:.8rem;min-width:0;overflow:hidden}.console-breadcrumb-link{color:var(--text-3);text-decoration:none;white-space:nowrap;transition:color var(--dur-1) var(--ease-premium)}.console-breadcrumb-link:hover{color:var(--accent)}.console-breadcrumb-sep{color:var(--text-3);font-size:.72rem;flex-shrink:0;opacity:.5}.console-breadcrumb-current{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:20vh;animation:cmdk-overlay-enter var(--dur-1) var(--ease-premium)}@keyframes cmdk-overlay-enter{0%{opacity:0}to{opacity:1}}.cmdk-dialog{width:100%;max-width:560px;max-height:420px;display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface-1) 96%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border-2);border-radius:16px;box-shadow:var(--shadow-2),0 0 0 1px var(--border);overflow:hidden;animation:cmdk-enter var(--dur-2) var(--ease-premium)}@keyframes cmdk-enter{0%{transform:scale(.96) translateY(-8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.cmdk-input-wrapper{display:flex;align-items:center;gap:var(--sp-2);padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.cmdk-input-wrapper svg{flex-shrink:0;color:var(--text-3)}.cmdk-input{flex:1 1;border:none;background:none;color:var(--text);font-size:.92rem;font-family:var(--font-sans);outline:none}.cmdk-input::placeholder{color:var(--text-3)}.cmdk-list{flex:1 1;overflow-y:auto;padding:var(--sp-2);scrollbar-width:thin}.cmdk-section{margin-bottom:var(--sp-1)}.cmdk-section-title{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:var(--sp-1) var(--sp-2)}.cmdk-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:8px 12px;border-radius:var(--r-1);border:none;background:none;color:var(--text-2);font-size:.84rem;font-family:var(--font-sans);cursor:pointer;text-align:left;transition:color 80ms,background 80ms}.cmdk-item-active,.cmdk-item:hover{background:var(--accent-soft);color:var(--text)}.cmdk-item-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;opacity:.6}.cmdk-item-active .cmdk-item-icon{opacity:1}.cmdk-item-label{flex:1 1}.cmdk-item-shortcut{padding:2px 6px;border-radius:5px;font-size:.68rem;font-family:var(--font-sans);font-weight:600;background:color-mix(in srgb,var(--surface-3) 60%,transparent);border:1px solid var(--border);color:var(--text-3);line-height:1}.cmdk-empty{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-3);font-size:.84rem}.shortcuts-overlay{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:cmdk-overlay-enter var(--dur-1) var(--ease-premium)}.shortcuts-dialog{width:100%;max-width:600px;max-height:80vh;background:color-mix(in srgb,var(--surface-1) 96%,transparent);-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border-2);border-radius:16px;box-shadow:var(--shadow-2);overflow:hidden;animation:cmdk-enter var(--dur-2) var(--ease-premium)}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border)}.shortcuts-header h2{font-size:1rem;font-weight:700;margin:0}.shortcuts-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;background:none;border:none;color:var(--text-3);cursor:pointer;transition:color var(--dur-1),background var(--dur-1)}.shortcuts-close:hover{color:var(--text);background:color-mix(in srgb,var(--accent) 8%,transparent)}.shortcuts-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-5);gap:var(--sp-5);padding:var(--sp-4) var(--sp-5);overflow-y:auto;max-height:calc(80vh - 60px)}.shortcuts-section h3{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:0 0 var(--sp-2)}.shortcuts-list{display:grid;grid-gap:4px;gap:4px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:.82rem;color:var(--text-2)}.shortcut-row-keys{display:flex;gap:4px}.shortcut-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:5px;font-size:.68rem;font-family:var(--font-sans);font-weight:600;background:color-mix(in srgb,var(--surface-3) 60%,transparent);border:1px solid var(--border);color:var(--text-3);line-height:1}.skeleton-block{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-1)}.skeleton-text{display:grid;grid-gap:8px;gap:8px}.skeleton-text-line{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--sp-3);gap:var(--sp-3)}.skeleton-kpi-card{height:90px;border-radius:var(--r-2);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-table{width:100%;display:grid;grid-gap:0;gap:0}.skeleton-table-header{height:36px;border-radius:var(--r-1) var(--r-1) 0 0}.skeleton-table-header,.skeleton-table-row{border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-table-row{height:44px}.skeleton-list{display:grid;grid-gap:8px;gap:8px}.skeleton-list-item{height:48px;border-radius:var(--r-1);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.toast-container{position:fixed;bottom:20px;right:20px;z-index:200;display:grid;grid-gap:8px;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;min-width:280px;max-width:420px;-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);border:1px solid var(--border);font-size:.84rem;font-weight:500;pointer-events:auto;animation:toast-enter .2s var(--ease-premium);box-shadow:var(--shadow-1)}.toast-success{background:color-mix(in srgb,var(--success) 12%,var(--surface-1));border-color:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.toast-error{background:color-mix(in srgb,var(--danger) 12%,var(--surface-1));border-color:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.toast-info{background:color-mix(in srgb,var(--info) 12%,var(--surface-1));border-color:color-mix(in srgb,var(--info) 20%,transparent);color:var(--info)}.toast-warning{background:color-mix(in srgb,var(--warning) 12%,var(--surface-1));border-color:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.toast-icon{flex-shrink:0}.toast-message{flex:1 1;color:var(--text)}.toast-dismiss{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:none;border:none;color:var(--text-3);cursor:pointer;transition:color 80ms,background 80ms}.toast-dismiss:hover{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.toast-exit{animation:toast-exit .16s var(--ease-premium) forwards}@keyframes toast-enter{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes toast-exit{0%{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@media (max-width:900px){.console-shell{--sidebar-w:0px;grid-template-columns:minmax(0,1fr)}.console-sidebar{position:fixed;left:0;top:0;width:280px;z-index:30;transform:translateX(-100%);transition:transform var(--dur-3) var(--ease-premium)}.console-shell[data-sidebar=expanded] .console-sidebar{transform:translateX(0);box-shadow:var(--shadow-2)}.console-topbar-search{min-width:0}.console-topbar-search span{display:none}.cmdk-dialog{max-width:calc(100vw - 32px);margin:0 16px}.shortcuts-grid{grid-template-columns:1fr}.skeleton-kpi-grid{grid-template-columns:repeat(2,1fr)}}.console-tab-bar{display:flex;align-items:stretch;height:36px;border-bottom:1px solid var(--border);background:var(--surface-1);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;flex-shrink:0;padding-left:var(--sp-2)}.console-tab-bar::-webkit-scrollbar{display:none}.console-tab{display:inline-flex;align-items:center;gap:6px;padding:0 12px;height:100%;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-3);font-size:.78rem;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;flex-shrink:0;position:relative;transition:color var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium),border-color var(--dur-1) var(--ease-premium)}.console-tab:hover{color:var(--text-2);background:color-mix(in srgb,var(--surface-2) 50%,transparent)}.console-tab-active{color:var(--text);border-bottom-color:var(--accent);background:color-mix(in srgb,var(--accent) 4%,transparent)}.console-tab-active:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}.console-tab-icon{display:flex;align-items:center;flex-shrink:0;color:inherit;opacity:.7}.console-tab-active .console-tab-icon{opacity:1;color:var(--accent)}.console-tab-label{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.console-tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;opacity:0;color:var(--text-3);transition:opacity var(--dur-1) var(--ease-premium),background var(--dur-1) var(--ease-premium),color var(--dur-1) var(--ease-premium)}.console-tab:hover .console-tab-close{opacity:.6}.console-tab-active .console-tab-close{opacity:.5}.console-tab-close:hover{opacity:1!important;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--text)}.console-tab-pinned .console-tab-close{display:none}.console-tab-pinned{padding:0 10px}.console-tab-add{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin:auto 4px auto 2px;border-radius:6px;border:none;background:none;color:var(--text-3);cursor:pointer;flex-shrink:0;transition:background var(--dur-1) var(--ease-premium),color var(--dur-1) var(--ease-premium)}.console-tab-add:hover{background:color-mix(in srgb,var(--surface-2) 70%,transparent);color:var(--text)}.console-tab-ctx-backdrop{position:fixed;inset:0;z-index:99}.console-tab-ctx-menu{position:fixed;z-index:100;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--r-2);padding:4px;box-shadow:0 8px 24px rgba(0,0,0,.15);min-width:160px}.console-tab-ctx-menu button{display:block;width:100%;padding:6px 12px;border:none;background:none;color:var(--text-2);font-size:.78rem;font-family:var(--font-sans);text-align:left;border-radius:4px;cursor:pointer;transition:background var(--dur-1) var(--ease-premium),color var(--dur-1) var(--ease-premium)}.console-tab-ctx-menu button:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--text)}.locale-switcher{position:relative}.locale-switcher-btn{font-size:.8rem!important;font-weight:600!important;letter-spacing:.04em;min-width:36px;padding:4px 8px!important}.locale-switcher-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-2);box-shadow:var(--shadow-2);z-index:200;padding:4px;display:flex;flex-direction:column;gap:2px;animation:locale-dropdown-in .15s var(--ease-premium)}@keyframes locale-dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.locale-switcher-option{display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;background:transparent;border-radius:var(--radius-1);cursor:pointer;font-size:.82rem;color:var(--text-2);transition:background var(--dur-1) var(--ease-premium),color var(--dur-1) var(--ease-premium);text-align:left;width:100%}.locale-switcher-option:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text)}.locale-switcher-option-active{color:var(--accent);font-weight:600;background:color-mix(in srgb,var(--accent) 6%,transparent)}.locale-switcher-option-code{font-weight:700;font-size:.78rem;letter-spacing:.04em;min-width:24px}.locale-switcher-option-name{flex:1 1}.admin-portal{min-height:100vh;background:var(--bg);color:var(--text)}.admin-portal-header{border-bottom:1px solid var(--border);background:var(--surface-1);padding:0 24px;height:56px;display:flex;align-items:center;gap:16px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.admin-portal-brand{font-weight:700;font-size:.95rem;color:var(--text);letter-spacing:-.01em}.admin-portal-brand span{color:var(--accent)}.admin-portal-header-spacer{flex:1 1}.admin-portal-user{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--text-2)}.admin-portal-user-avatar{width:28px;height:28px;border-radius:50%;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.72rem;letter-spacing:.02em}.admin-portal-body{max-width:960px;margin:0 auto;padding:32px 24px;display:grid;grid-gap:24px;gap:24px}.admin-portal-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-portal-hero h1{font-size:1.5rem;font-weight:700;margin:0;letter-spacing:-.02em}.admin-portal-hero-sub{margin-top:6px;color:var(--text-2);font-size:.88rem;max-width:520px;line-height:1.5}.admin-portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.admin-portal-card{display:flex;align-items:flex-start;gap:14px;padding:18px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-2);text-decoration:none;color:var(--text);transition:border-color var(--dur-1) var(--ease-premium),box-shadow var(--dur-1) var(--ease-premium);cursor:pointer}.admin-portal-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent)}.admin-portal-card-icon{width:36px;height:36px;border-radius:var(--radius-1);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-portal-card-body{flex:1 1;min-width:0}.admin-portal-card-title{font-weight:600;font-size:.88rem}.admin-portal-card-desc{font-size:.78rem;color:var(--text-2);margin-top:4px;line-height:1.4}.admin-portal-section-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:4px}@media (max-width:640px){.admin-portal-body{padding:20px 16px}.admin-portal-grid{grid-template-columns:1fr}}@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500;600;700&display=swap");.auth-page{min-height:100vh;display:grid;grid-template-columns:.45fr .55fr;background:var(--bg);font-family:"Geist",var(--font-sans);overflow:hidden}.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px;overflow:hidden;background:#060810}.auth-brand:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 600px 500px at 20% 30%,rgba(139,108,255,.18),transparent),radial-gradient(ellipse 500px 400px at 80% 70%,rgba(67,97,238,.12),transparent),radial-gradient(ellipse 300px 300px at 50% 50%,rgba(100,170,255,.08),transparent);animation:auth-glow-drift 12s ease-in-out infinite alternate}.auth-brand:after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");opacity:.5;pointer-events:none}@keyframes auth-glow-drift{0%{transform:translate(0) scale(1)}50%{transform:translate(-3%,2%) scale(1.05)}to{transform:translate(2%,-1%) scale(.98)}}.auth-brand-content{z-index:2;text-align:center;flex-direction:column;gap:32px;animation:auth-fade-up .8s var(--ease-premium) both}.auth-brand-content,.auth-brand-mark{position:relative;display:flex;align-items:center}.auth-brand-mark{width:80px;height:80px;justify-content:center}.auth-brand-mark:before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px solid rgba(139,108,255,.2);animation:auth-pulse-ring 3s ease-in-out infinite}.auth-brand-mark:after{content:"";position:absolute;inset:-24px;border-radius:50%;border:1px solid rgba(139,108,255,.08);animation:auth-pulse-ring 3s ease-in-out .5s infinite}@keyframes auth-pulse-ring{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.5}}.auth-brand-icon{width:80px;height:80px;border-radius:20px;background:linear-gradient(135deg,rgba(139,108,255,.15),rgba(67,97,238,.1));border:1px solid rgba(139,108,255,.2);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:1}.auth-brand-icon svg{color:hsla(0,0%,100%,.9)}.auth-brand-name{font-family:"Instrument Serif",Georgia,serif;font-size:2.4rem;font-weight:400;color:hsla(0,0%,100%,.95);letter-spacing:-.02em;line-height:1}.auth-brand-name em{font-style:italic;color:var(--accent)}.auth-brand-tagline{font-size:.85rem;color:hsla(0,0%,100%,.4);font-weight:400;letter-spacing:.12em;text-transform:uppercase;line-height:1.6}.auth-brand-decorline{width:48px;height:1px;background:linear-gradient(90deg,transparent,rgba(139,108,255,.4),transparent)}.auth-form-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px 56px;position:relative;background:var(--surface-1);border-left:1px solid var(--border)}.auth-form-panel:before{content:"";position:absolute;top:0;left:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,var(--accent-soft),transparent)}.auth-form-wrap{width:100%;max-width:400px;display:grid;grid-gap:32px;gap:32px;animation:auth-fade-up .6s var(--ease-premium) .15s both}.auth-form-header{display:grid;grid-gap:8px;gap:8px}.auth-form-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.75rem;font-weight:400;color:var(--text);letter-spacing:-.01em;margin:0;line-height:1.2}.auth-form-subtitle{font-size:.88rem;color:var(--text-3);font-weight:400;line-height:1.5}.auth-social-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:10px;gap:10px}.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 8px;border-radius:var(--r-1);border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-size:.82rem;font-weight:500;font-family:inherit;transition:border-color var(--dur-2) var(--ease-premium),background var(--dur-2) var(--ease-premium),color var(--dur-2) var(--ease-premium),transform var(--dur-1) var(--ease-premium),box-shadow var(--dur-2) var(--ease-premium)}.auth-social-btn:hover{border-color:var(--border-hover);background:var(--surface-2);color:var(--text);transform:translateY(-1px)}.auth-social-btn:active{transform:scale(.97)}.auth-social-btn svg{width:18px;height:18px;flex-shrink:0}.auth-divider{display:flex;align-items:center;gap:16px;color:var(--text-3);font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.auth-tab-bar{display:flex;background:var(--surface-2);border-radius:var(--r-1);padding:3px;gap:2px}.auth-tab{flex:1 1;padding:10px 16px;border-radius:calc(var(--r-1) - 2px);border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:.82rem;font-weight:600;font-family:inherit;letter-spacing:.01em;transition:background var(--dur-2) var(--ease-premium),color var(--dur-2) var(--ease-premium),box-shadow var(--dur-2) var(--ease-premium)}.auth-tab[data-active=true]{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-sm)}.auth-tab:hover:not([data-active=true]){color:var(--text-2)}.auth-fields{display:grid;grid-gap:14px;gap:14px}.auth-field{position:relative;animation:auth-field-enter .4s var(--ease-premium) both}.auth-field:first-child{animation-delay:.05s}.auth-field:nth-child(2){animation-delay:.1s}.auth-field:nth-child(3){animation-delay:.15s}@keyframes auth-field-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.auth-field-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-2);margin-bottom:6px;letter-spacing:.02em}.auth-input{width:100%;padding:13px 14px;border-radius:var(--r-1);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem;font-family:inherit;font-weight:400;transition:box-shadow var(--dur-2) var(--ease-premium),border-color var(--dur-2) var(--ease-premium),background var(--dur-2) var(--ease-premium)}.auth-input::placeholder{color:var(--text-3);font-weight:400}.auth-input:hover{border-color:var(--border-hover)}.auth-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring);background:var(--surface-1)}.auth-submit{width:100%;padding:14px 24px;border:none;border-radius:var(--r-1);background:var(--accent-gradient);color:#fff;font-size:.9rem;font-weight:600;font-family:inherit;cursor:pointer;position:relative;overflow:hidden;letter-spacing:.01em;box-shadow:0 4px 16px var(--accent-soft);transition:box-shadow var(--dur-2) var(--ease-premium),transform var(--dur-1) var(--ease-premium),filter var(--dur-2) var(--ease-premium)}.auth-submit:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(0,0%,100%,.12),transparent 50%);opacity:0;transition:opacity var(--dur-2) var(--ease-premium)}.auth-submit:hover{box-shadow:0 6px 24px var(--accent-glow);transform:translateY(-1px);filter:brightness(1.08)}.auth-submit:hover:after{opacity:1}.auth-submit:active{transform:scale(.98)}.auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;filter:none}.auth-loader{display:inline-flex;gap:4px;align-items:center;justify-content:center}.auth-loader-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:auth-dot-bounce 1.2s ease-in-out infinite}.auth-loader-dot:nth-child(2){animation-delay:.15s}.auth-loader-dot:nth-child(3){animation-delay:.3s}@keyframes auth-dot-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.auth-msg{padding:12px 14px;border-radius:var(--r-1);font-size:.82rem;font-weight:500;line-height:1.4;animation:auth-field-enter .3s var(--ease-premium) both}.auth-msg.success{background:var(--success-soft);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 20%,transparent)}.auth-msg.error{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 20%,transparent)}.auth-footer{position:absolute;bottom:24px;left:56px;right:56px;display:flex;justify-content:center;gap:24px}.auth-footer-link{font-size:.75rem;color:var(--text-3);text-decoration:none;transition:color var(--dur-1) var(--ease-premium)}.auth-footer-link:hover{color:var(--text-2)}@keyframes auth-fade-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}html[data-theme=light] .auth-brand{background:linear-gradient(160deg,#e8e4f8,#f0eeff 40%,#e6eaff)}html[data-theme=light] .auth-brand:before{background:radial-gradient(ellipse 600px 500px at 20% 30%,rgba(67,97,238,.18),transparent),radial-gradient(ellipse 500px 400px at 80% 70%,rgba(139,108,255,.14),transparent),radial-gradient(ellipse 300px 300px at 50% 50%,rgba(100,170,255,.1),transparent)}html[data-theme=light] .auth-brand-name{color:rgba(10,15,25,.92)}html[data-theme=light] .auth-brand-tagline{color:rgba(10,15,25,.38)}html[data-theme=light] .auth-brand-icon{background:linear-gradient(135deg,rgba(67,97,238,.12),rgba(139,108,255,.1));border-color:rgba(67,97,238,.2)}html[data-theme=light] .auth-brand-icon svg{color:rgba(67,97,238,.8)}html[data-theme=light] .auth-brand-mark:before{border-color:rgba(67,97,238,.2)}html[data-theme=light] .auth-brand-mark:after{border-color:rgba(67,97,238,.08)}html[data-theme=light] .auth-brand-decorline{background:linear-gradient(90deg,transparent,rgba(67,97,238,.3),transparent)}html[data-theme=light] .auth-form-panel{background:#fff}html[data-theme=light] .auth-input{background:var(--surface-2)}@media (max-width:900px){.auth-page{grid-template-columns:1fr;grid-template-rows:auto 1fr}.auth-brand{padding:40px 24px 32px;min-height:auto}.auth-brand-name{font-size:1.8rem}.auth-brand-tagline{font-size:.75rem}.auth-brand-icon,.auth-brand-mark{width:56px;height:56px}.auth-brand-icon{border-radius:14px}.auth-brand-content{gap:20px}.auth-form-panel{padding:32px 24px 80px;border-left:none;border-top:1px solid var(--border)}.auth-form-panel:before{top:0;left:0;right:0;bottom:auto;width:auto;height:1px;background:linear-gradient(90deg,transparent,var(--accent-soft),transparent)}.auth-footer{left:24px;right:24px;bottom:16px}.auth-social-grid{grid-template-columns:1fr 1fr 1fr}}@media (max-width:480px){.auth-social-grid{grid-template-columns:1fr}}.platform-cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.platform-entry-card{display:flex;align-items:center;gap:14px;padding:18px;cursor:pointer;text-decoration:none;color:inherit;transition:transform .22s var(--ease-premium),box-shadow .22s var(--ease-premium),border-color .22s var(--ease-premium)}.platform-entry-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-2),var(--shadow-glow);border-color:var(--border-hover)}.platform-entry-icon{width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 14px rgba(0,0,0,.2);transition:transform .22s var(--ease-bounce)}.platform-entry-card:hover .platform-entry-icon{transform:scale(1.06)}.platform-entry-body{flex:1 1;min-width:0;display:grid;grid-gap:4px;gap:4px}.platform-entry-title{font-size:1rem;font-weight:700;margin:0;letter-spacing:-.01em}.platform-entry-tagline{font-size:.78rem;margin:0}.platform-entry-meta{display:flex;gap:6px;margin-top:2px}.platform-entry-arrow{color:var(--text-3);transition:transform .16s var(--ease-premium),color .16s var(--ease-premium)}.platform-entry-card:hover .platform-entry-arrow{transform:translateX(3px);color:var(--accent)}.platform-detail-hero{position:relative;overflow:hidden;padding:0}.platform-detail-hero-bg{position:absolute;inset:0;opacity:.08;pointer-events:none}.platform-detail-hero-content{position:relative;z-index:1;padding:20px;display:grid;grid-gap:12px;gap:12px}.platform-detail-back{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--text-2);transition:color .16s var(--ease-premium)}.platform-detail-back:hover{color:var(--accent)}.platform-detail-hero-row{display:flex;align-items:center;gap:14px}.platform-detail-hero-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 20px rgba(0,0,0,.25)}.platform-detail-tagline{font-size:.85rem;color:var(--text-2);margin:0}.platform-detail-desc{font-size:.88rem;color:var(--text-2);line-height:1.5;margin:0;max-width:640px}.platform-detail-stats{display:flex;gap:20px;margin-top:4px}.platform-stat{display:flex;flex-direction:column;align-items:center;gap:1px}.platform-stat-val{font-size:1.4rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}.platform-stat-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:600}.platform-modules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.platform-module-card{display:flex;align-items:flex-start;gap:12px;padding:16px;transition:transform .22s var(--ease-premium),box-shadow .22s var(--ease-premium),border-color .22s var(--ease-premium)}.platform-module-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-1);border-color:var(--border-hover)}.platform-module-disabled{opacity:.5;pointer-events:none}.platform-module-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,.15)}.platform-module-body{flex:1 1;min-width:0;display:grid;grid-gap:3px;gap:3px}.platform-module-head{display:flex;align-items:center;gap:6px}.platform-module-name{font-size:.88rem;font-weight:700;margin:0}.platform-module-desc{font-size:.76rem;margin:0;line-height:1.4}.platform-module-launch{align-self:center;flex-shrink:0;gap:4px}@media (max-width:900px){.platform-cards-grid,.platform-modules-grid{grid-template-columns:1fr}.platform-detail-stats{flex-wrap:wrap;gap:14px}}