@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/7b19b489dc6743ba-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/28793f5c5e3d822d-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c9c3823090ec8b55-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/b3bf17a9041d9433-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2801417b65625cf5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/_next/static/media/26d4368bf94c0ec4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Sans Fallback;src:local("Arial");ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.00%;size-adjust:101.17%}.__className_c8daab{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.__variable_c8daab{--font-sans:"IBM Plex Sans","IBM Plex Sans Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg0:#04070e;--bg1:#080d18;--bg2:#0b1220;--panel:rgba(12,18,32,0.72);--panel-solid:#0e1626;--panel-elevated:rgba(16,24,42,0.88);--border:rgba(148,163,184,0.12);--border-strong:rgba(148,163,184,0.26);--text:#edf2ff;--muted:#8b9bb8;--accent:#6b93ff;--accent-2:#22d3ee;--accent-hot:#a78bfa;--ok:#34d399;--fail:#f87171;--run:#fbbf24;--shadow:0 20px 60px rgba(0,0,0,0.45);--shadow-glow:0 0 0 1px rgba(107,147,255,0.12),0 18px 50px rgba(0,0,0,0.4);--radius:16px;--radius-sm:11px;--radius-xs:8px;--font:var(--font-sans),"Segoe UI",ui-sans-serif,system-ui,sans-serif;--mono:var(--font-mono),ui-monospace,"SF Mono",Menlo,Consolas,monospace;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--ease-out:cubic-bezier(0.22,1,0.36,1);--dur-fast:140ms;--dur-med:280ms;--z-header:40;--z-noise:1;--header-h:4.25rem}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;color:var(--text);font-family:var(--font);line-height:1.5;background:var(--bg0);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body.app-body{position:relative;min-height:100dvh;background:radial-gradient(1100px 560px at 8% -12%,rgba(107,147,255,.2),transparent 55%),radial-gradient(900px 480px at 92% 0,rgba(34,211,238,.12),transparent 48%),radial-gradient(700px 400px at 50% 100%,rgba(167,139,250,.06),transparent 50%),linear-gradient(180deg,var(--bg0),var(--bg1) 42%,var(--bg2))}body.app-body:before{z-index:var(--z-noise);opacity:.035;background-image: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.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:overlay}body.app-body:after,body.app-body:before{content:"";position:fixed;inset:0;pointer-events:none}body.app-body:after{z-index:0;opacity:.04;background-image:linear-gradient(rgba(148,163,184,.35) 1px,transparent 0),linear-gradient(90deg,rgba(148,163,184,.35) 1px,transparent 0);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 20%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 50% 20%,#000 20%,transparent 75%)}:focus-visible{outline:2px solid rgba(107,147,255,.75);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}a{color:var(--accent);text-decoration:none}a:hover{color:#93b4ff}.mono,code{font-family:var(--mono);font-size:.84em}.family-badge{display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--border);background:rgba(148,163,184,.08);color:var(--muted);white-space:nowrap;vertical-align:middle}.family-badge.family-wms{color:#93b4ff;border-color:rgba(91,140,255,.35);background:rgba(91,140,255,.12)}.family-badge.family-arcgis{color:#fcd34d;border-color:rgba(251,191,36,.35);background:rgba(251,191,36,.1)}.family-badge.family-wfs{color:#c4b5fd;border-color:rgba(167,139,250,.35);background:rgba(167,139,250,.12)}.family-badge.family-mirror{color:#f9a8d4;border-color:rgba(244,114,182,.35);background:rgba(244,114,182,.1)}.family-badge.family-overture{color:#67e8f9;border-color:rgba(34,211,238,.4);background:rgba(34,211,238,.1)}.family-badge.family-process{color:#6ee7b7;border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.1)}.family-badge.family-muted{color:var(--muted)}.process-source-fields .field-stack{display:flex;flex-direction:column;gap:.65rem}.http-extras-templates{margin-bottom:.85rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px dashed rgba(107,147,255,.28);background:rgba(107,147,255,.05)}.http-template-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.http-template-row select{flex:1 1 220px;min-width:180px;background:rgba(7,11,18,.65);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.88rem}.run-config-summary .source-kv{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.app-shell{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-header);min-height:var(--header-h);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);background:rgba(4,7,14,.72);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.35rem;transition:transform var(--dur-med) var(--ease-out),background var(--dur-med) var(--ease-out),box-shadow var(--dur-med) var(--ease-out),border-color var(--dur-fast) ease}.app-header.is-scrolled{background:rgba(4,7,14,.88);box-shadow:0 12px 40px rgba(0,0,0,.35);border-bottom-color:rgba(107,147,255,.12)}.app-header.is-hidden{transform:translateY(-110%)}.brand{display:flex;align-items:center;gap:.75rem;min-width:0}.brand-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,rgba(255,255,255,.18),transparent 40%),linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 10px 28px rgba(107,147,255,.35);flex-shrink:0}.brand h1{margin:0;font-size:1.05rem;font-weight:650;letter-spacing:-.03em}.brand h1 a{color:var(--text)}.brand .sub{color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-transform:lowercase}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.03);cursor:pointer;padding:10px}.nav-toggle span{display:block;height:2px;border-radius:2px;background:var(--text);transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast)}.nav-links{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.nav-links a{color:var(--muted);font-size:.86rem;font-weight:500;padding:.42rem .78rem;border-radius:999px;border:1px solid transparent;transition:color var(--dur-fast) ease,background var(--dur-fast) ease,border-color var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out)}@media (hover:hover) and (pointer:fine){.nav-links a:hover{color:var(--text);border-color:var(--border);background:rgba(255,255,255,.04)}.nav-links a:not(.nav-cta):hover{transform:translateY(-1px)}}.nav-links a.is-active:not(.nav-cta){color:var(--text);border-color:rgba(107,147,255,.35);background:rgba(107,147,255,.12)}.nav-links a.nav-cta{color:white;background:linear-gradient(135deg,var(--accent),#3b6ef5 55%,#1f8fff);border:none;font-weight:600;box-shadow:0 8px 22px rgba(59,110,245,.28)}.nav-links a.nav-cta.is-active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.15),0 8px 24px rgba(34,211,238,.25)}main.app-main{position:relative;z-index:2;width:min(1320px,calc(100% - 2rem));margin:0 auto;padding:1.65rem 0 3.5rem;flex:1 1}.page-enter{animation:page-enter var(--dur-med) var(--ease-out) both}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page-hero{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1.35rem;align-items:flex-end}.page-eyebrow{display:inline-flex;align-items:center;gap:.4rem;color:var(--accent-2);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.45rem;opacity:.9}.page-hero h2,.page-title{margin:0 0 .35rem;font-size:clamp(1.55rem,2.4vw,2.05rem);font-weight:650;letter-spacing:-.04em;line-height:1.15}.page-hero p,.page-subtitle{margin:0;color:var(--muted);max-width:58ch;font-size:.95rem}.page-hero-actions{margin-top:0}@media (max-width:820px){.nav-toggle{display:flex}.nav-links{display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;flex-direction:column;align-items:stretch;padding:.75rem;background:rgba(6,10,18,.96);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.nav-links.is-open{display:flex}.nav-links .user-menu,.nav-links a{width:100%;justify-content:flex-start}.app-header{position:-webkit-sticky;position:sticky}}.muted{color:var(--muted)}.muted.tight{margin:.2rem 0 0;font-size:.9rem}.stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.05rem 1.1rem;box-shadow:var(--shadow-glow);position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) ease,box-shadow var(--dur-med) var(--ease-out)}@media (hover:hover) and (pointer:fine){.stat-card:hover{transform:translateY(-2px);border-color:rgba(107,147,255,.28)}}.stat-card:after{content:"";position:absolute;inset:auto -20% -40% auto;width:100px;height:100px;border-radius:50%;opacity:.22;background:currentColor;filter:blur(12px);pointer-events:none}.stat-card.tone-run.is-live .stat-value{animation:pulse-soft 2.2s var(--ease-out) infinite}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.72}}.stat-card.tone-ok{color:var(--ok)}.stat-card.tone-fail{color:var(--fail)}.stat-card.tone-run{color:var(--run)}.stat-card.tone-accent{color:var(--accent)}.stat-card.tone-neutral{color:var(--accent-2)}.stat-value{font-size:1.65rem;font-weight:700;letter-spacing:-.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text);font-family:var(--mono)}.stat-label{margin-top:.2rem;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem 1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-glow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.card-accent{border-color:rgba(91,140,255,.35);background:linear-gradient(180deg,rgba(91,140,255,.08),rgba(18,26,42,.9))}.card h2,.card-head h2{margin:0 0 .65rem;font-size:1rem;font-weight:650}.card-head{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.filters-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-bottom:1rem;padding:.95rem 1.05rem;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-glow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.view-chips{display:inline-flex;gap:.35rem;padding:.2rem;border-radius:999px;border:1px solid var(--border);background:rgba(0,0,0,.25)}.view-chip{border:none;background:transparent;color:var(--muted);font-size:.8rem;font-weight:600;padding:.4rem .75rem;border-radius:999px;cursor:pointer;font-family:inherit;transition:color var(--dur-fast) ease,background var(--dur-fast) ease}.view-chip.is-active{color:var(--text);background:rgba(107,147,255,.18);box-shadow:0 0 0 1px rgba(107,147,255,.25)}.field-inline{display:flex;flex-direction:column;gap:.3rem;font-size:.75rem;color:var(--muted);min-width:160px}.field input,.field select,.field textarea,.field-inline input,.field-inline select{background:rgba(7,11,18,.65);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:.55rem .7rem;font-size:.9rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--muted);margin-bottom:.9rem}.field.row{flex-direction:row;align-items:center;gap:.55rem;color:var(--text);font-size:.9rem}.filter-actions{display:flex;gap:.5rem;margin-left:auto}.btn{border:1px solid var(--border-strong);background:rgba(255,255,255,.03);padding:.5rem .95rem;font-family:inherit;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) ease,background var(--dur-fast) ease,box-shadow var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.btn:hover{border-color:rgba(107,147,255,.5);transform:translateY(-1px)}}.btn:disabled{opacity:.55}.btn-primary{box-shadow:0 8px 22px rgba(59,110,245,.35)}.btn-ghost{background:transparent}.primary-btn{composes:btn}.primary-btn,button.primary-btn{border:none;color:white;background:linear-gradient(135deg,var(--accent),#3b6ef5);border-radius:999px;padding:.6rem 1.15rem;font-weight:650;cursor:pointer;font-size:.92rem}button.primary-btn:disabled{opacity:.55;cursor:not-allowed}.actions-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.75rem}.table-wrap{overflow:auto;border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-glow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}table.runs{width:100%;border-collapse:collapse;font-size:.9rem;min-width:720px}table.runs thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:rgba(8,12,22,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}table.runs tbody tr{transition:background var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){table.runs tbody tr:hover{background:rgba(107,147,255,.06)}}table.runs td,table.runs th{text-align:left;padding:.8rem .9rem;border-bottom:1px solid var(--border);vertical-align:middle}table.runs th{color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;background:rgba(255,255,255,.02);position:-webkit-sticky;position:sticky;top:0}table.runs tbody tr{transition:background .15s ease}table.runs tbody tr:hover{background:rgba(91,140,255,.06)}table.runs tr:last-child td{border-bottom:none}.job-pill{gap:.35rem;padding:.2rem .55rem;border-radius:999px;background:rgba(91,140,255,.12);border:1px solid rgba(91,140,255,.22);font-size:.82rem;font-weight:600}.badge,.job-pill{display:inline-flex;align-items:center}.badge{padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge-success{background:rgba(52,211,153,.14);color:var(--ok);border:1px solid rgba(52,211,153,.28)}.badge-failed{background:rgba(248,113,113,.14);color:var(--fail);border:1px solid rgba(248,113,113,.28)}.badge-running{background:rgba(251,191,36,.14);color:var(--run);border:1px solid rgba(251,191,36,.28)}.badge-paused{background:rgba(167,139,250,.14);color:#c4b5fd;border:1px solid rgba(167,139,250,.3)}.badge-pending{background:rgba(56,189,248,.12);color:#7dd3fc;border:1px solid rgba(56,189,248,.28)}.badge-cancelled,.badge-unknown{background:rgba(139,155,184,.12);color:var(--muted);border:1px solid rgba(139,155,184,.25)}.detail-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1.15rem;padding:1rem 1.15rem;border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(135deg,rgba(107,147,255,.08),rgba(12,18,32,.55));box-shadow:var(--shadow-glow)}.detail-title{margin:.35rem 0 .25rem;font-size:clamp(1.15rem,2vw,1.45rem);word-break:break-all;font-family:var(--font);font-weight:650;letter-spacing:-.03em}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem 1.25rem;gap:.85rem 1.25rem}@media (max-width:720px){.grid2{grid-template-columns:1fr}}.kv dt{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;margin:0}.kv dd{margin:.15rem 0 .65rem;word-break:break-all;font-family:var(--mono);font-size:.84rem}.stage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:.55rem;gap:.55rem;margin:.5rem 0 .75rem}.stage-chip{display:flex;gap:.65rem;align-items:flex-start;text-align:left;padding:.7rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:rgba(7,11,18,.45);color:var(--text);cursor:pointer;font-family:inherit;transition:border-color var(--dur-fast) ease,background var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.stage-chip:hover{border-color:rgba(107,147,255,.45);transform:translateY(-1px)}}.stage-chip.on{border-color:rgba(107,147,255,.65);background:rgba(107,147,255,.12);box-shadow:inset 0 0 0 1px rgba(107,147,255,.15),0 8px 20px rgba(59,110,245,.12)}.stage-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.06);font-size:.9rem;flex-shrink:0}.stage-meta{display:flex;flex-direction:column;gap:.1rem;font-size:.78rem}.stage-meta strong{font-size:.88rem}.pipeline-preview{padding:.55rem .7rem;border-radius:var(--radius-sm);background:rgba(0,0,0,.25);border:1px dashed var(--border);margin:0 0 .75rem}.timeline{list-style:none;padding:0;margin:0}.timeline li{border-left:2px solid rgba(91,140,255,.35);padding:.15rem 0 .9rem 1rem;margin-left:.35rem;font-size:.9rem}.error-banner{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.35);color:#fecaca;border-radius:var(--radius-sm)}.error-banner,.success-banner{padding:.75rem 1rem;margin-bottom:.85rem;font-size:.9rem}.success-banner{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.35);color:#a7f3d0;border-radius:var(--radius-sm)}.empty{padding:2.2rem 1.25rem;text-align:center;color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:rgba(255,255,255,.02)}.empty pre{display:inline-block;text-align:left;background:rgba(0,0,0,.3);padding:.85rem 1rem;border-radius:var(--radius-sm)}.empty pre,fieldset.stage-box{border:1px solid var(--border)}fieldset.stage-box{border-radius:var(--radius);padding:.85rem 1rem .35rem;margin:0 0 1rem}fieldset.stage-box legend{padding:0 .4rem;color:var(--muted);font-size:.78rem}.link-back{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted);font-size:.9rem;margin-bottom:.75rem}.link-back:hover{color:var(--text)}.dest-fieldset{border:1px solid var(--border,#2a3344);border-radius:12px;padding:1rem 1.1rem 1.15rem;margin:1rem 0 1.25rem;background:rgba(0,0,0,.12)}.dest-fieldset legend{padding:0 .4rem;font-weight:600;font-size:.95rem}.dest-row{margin-top:.85rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06)}.dest-enable{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.45rem;cursor:pointer}.dest-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;opacity:.9}.dest-hint{font-size:.8rem;font-weight:400;text-transform:none;letter-spacing:0}.dest-row.dest-off{opacity:.65}.progress-wrap{margin-bottom:.85rem}.progress-meta{display:flex;flex-wrap:wrap;gap:.55rem .85rem;align-items:center;margin-bottom:.45rem;font-size:.88rem}.progress-bar{height:12px;border-radius:999px;background:rgba(0,0,0,.35);border:1px solid var(--border);overflow:hidden}.progress-bar.thin{height:8px}.progress-label-row{display:flex;justify-content:space-between;align-items:center;margin:.35rem 0 .25rem;font-size:.8rem}.count-pill{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.28);color:var(--accent-2);font-size:.82rem;font-weight:700}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .35s ease}.progress-fill.stage{background:linear-gradient(90deg,#34d399,#22d3ee)}.progress-fill.live{background-size:200% 100%;animation:shimmer 1.6s linear infinite;background-image:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent))}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.stage-track{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.stage-dot{font-size:.72rem;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);text-transform:lowercase}.stage-dot.current{color:var(--run);border-color:rgba(251,191,36,.45);background:rgba(251,191,36,.1)}.stage-dot.done{color:var(--ok);border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.08)}.log-console{margin:0;max-height:min(62vh,560px);overflow:auto;padding:.85rem 1rem;border-radius:var(--radius-sm);background:linear-gradient(180deg,rgba(34,211,238,.03),transparent 28%),linear-gradient(180deg,#070a0f,#0a0e14);border:1px solid rgba(34,211,238,.12);color:#d4d4d8;font-family:var(--mono);font-size:.78rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;-moz-tab-size:4;tab-size:4;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 40px rgba(0,0,0,.35)}.log-console::-webkit-scrollbar{width:10px;height:10px}.log-console::-webkit-scrollbar-thumb{background:rgba(148,163,184,.28);border-radius:8px}.log-console::-webkit-scrollbar-track{background:transparent}.log-console.compact{max-height:220px;font-size:.74rem}.ansi-log .log-line{display:inline}.ansi-log .log-empty{color:#71717a;font-style:italic}.ansi-log .log-ts{color:#71717a}.ansi-log .log-logger{color:#a78bfa}.ansi-log .log-stage{color:#38bdf8;font-weight:600}.ansi-log .log-num{color:#fbbf24;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ansi-log .log-path{color:#94a3b8;text-decoration:underline;-webkit-text-decoration-color:rgba(148,163,184,.35);text-decoration-color:rgba(148,163,184,.35);text-underline-offset:2px}.ansi-log .log-token-error{color:#f87171;font-weight:700}.ansi-log .log-token-warn{color:#fbbf24;font-weight:700}.ansi-log .log-token-ok{color:#34d399;font-weight:700}.ansi-log .log-token-info{color:#38bdf8;font-weight:650}.ansi-log .log-token-debug,.ansi-log .log-token-muted{color:#a1a1aa;font-weight:600}.ansi-log .log-lvl-error{color:#fecaca;background:linear-gradient(90deg,rgba(248,113,113,.12),transparent 55%);box-decoration-break:clone;-webkit-box-decoration-break:clone;border-radius:2px}.ansi-log .log-lvl-warn{color:#fde68a;background:linear-gradient(90deg,rgba(251,191,36,.1),transparent 55%);border-radius:2px}.ansi-log .log-lvl-ok{color:#a7f3d0;background:linear-gradient(90deg,rgba(52,211,153,.1),transparent 55%);border-radius:2px}.ansi-log .log-lvl-debug,.ansi-log .log-lvl-muted{color:#a1a1aa}.ansi-log .ansi-black-fg{color:#5c6370}.ansi-log .ansi-red-fg{color:#e06c75}.ansi-log .ansi-green-fg{color:#98c379}.ansi-log .ansi-yellow-fg{color:#e5c07b}.ansi-log .ansi-blue-fg{color:#61afef}.ansi-log .ansi-magenta-fg{color:#c678dd}.ansi-log .ansi-cyan-fg{color:#56b6c2}.ansi-log .ansi-white-fg{color:#e6e6e6}.ansi-log .ansi-bright-black-fg{color:#7f848e}.ansi-log .ansi-bright-red-fg{color:#f87171}.ansi-log .ansi-bright-green-fg{color:#34d399}.ansi-log .ansi-bright-yellow-fg{color:#fbbf24}.ansi-log .ansi-bright-blue-fg{color:#60a5fa}.ansi-log .ansi-bright-magenta-fg{color:#d8b4fe}.ansi-log .ansi-bright-cyan-fg{color:#22d3ee}.ansi-log .ansi-bright-white-fg{color:#f8fafc}.ansi-log .ansi-color-0{color:#5c6370}.ansi-log .ansi-color-1{color:#e06c75}.ansi-log .ansi-color-2{color:#98c379}.ansi-log .ansi-color-3{color:#e5c07b}.ansi-log .ansi-color-4{color:#61afef}.ansi-log .ansi-color-5{color:#c678dd}.ansi-log .ansi-color-6{color:#56b6c2}.ansi-log .ansi-color-7{color:#e6e6e6}.ansi-log .ansi-color-8{color:#7f848e}.ansi-log .ansi-color-9{color:#f87171}.ansi-log .ansi-color-10{color:#34d399}.ansi-log .ansi-color-11{color:#fbbf24}.ansi-log .ansi-color-12{color:#60a5fa}.ansi-log .ansi-color-13{color:#d8b4fe}.ansi-log .ansi-color-14{color:#22d3ee}.ansi-log .ansi-color-15{color:#f8fafc}.ansi-log .ansi-black-bg{background:#1e1e1e}.ansi-log .ansi-red-bg{background:#5c1a1a}.ansi-log .ansi-green-bg{background:#1a3d24}.ansi-log .ansi-yellow-bg{background:#4a3b12}.ansi-log .ansi-blue-bg{background:#1a2f4a}.ansi-log .ansi-magenta-bg{background:#3a1f4a}.ansi-log .ansi-cyan-bg{background:#1a3d45}.ansi-log .ansi-white-bg{background:#3a3a3a}.ansi-log .ansi-bold{font-weight:700}.ansi-log .ansi-dim{opacity:.72}.ansi-log .ansi-italic{font-style:italic}.ansi-log .ansi-underline{text-decoration:underline}.ansi-log span{font-family:inherit}.ansi-log .log-pbar{display:block;margin:.4rem 0 .55rem;padding:.5rem .65rem .55rem;border-radius:10px;border:1px solid rgba(56,189,248,.28);background:linear-gradient(135deg,rgba(14,165,233,.1),rgba(52,211,153,.06));white-space:normal;word-break:break-word}.ansi-log .log-pbar-classic{border-color:rgba(167,139,250,.3);background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(56,189,248,.05))}.ansi-log .log-pbar-head{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .65rem;margin-bottom:.35rem;font-size:.75rem}.ansi-log .log-pbar-tag{font-size:.65rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase;padding:.12rem .4rem;border-radius:6px;background:rgba(56,189,248,.2);color:#7dd3fc}.ansi-log .log-pbar-classic .log-pbar-tag{background:rgba(167,139,250,.22);color:#c4b5fd}.ansi-log .log-pbar-stage{font-weight:700;color:#e2e8f0;text-transform:lowercase}.ansi-log .log-pbar-count{color:#67e8f9;font-weight:650}.ansi-log .log-pbar-pct{margin-left:auto;font-weight:750;color:#fbbf24;font-size:.85rem}.ansi-log .log-pbar-overall{color:#94a3b8;font-size:.72rem}.ansi-log .log-pbar-track{height:10px;border-radius:999px;background:rgba(0,0,0,.45);border:1px solid rgba(148,163,184,.2);overflow:hidden}.ansi-log .log-pbar-fill{height:100%;border-radius:999px;background-image:linear-gradient(90deg,#0ea5e9,#22d3ee,#34d399,#0ea5e9);background-size:200% 100%;animation:log-pbar-shimmer 1.8s linear infinite;transition:width .25s ease;min-width:0}.ansi-log .log-pbar-classic .log-pbar-fill{background-image:linear-gradient(90deg,#8b5cf6,#38bdf8,#a78bfa,#8b5cf6);background-size:200% 100%}@keyframes log-pbar-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ansi-log .log-pbar-ascii{margin-top:.28rem;font-size:.68rem;letter-spacing:.02em;color:#67e8f9;line-height:1.2;opacity:.9}.ansi-log .log-pbar-msg{margin-top:.35rem;font-size:.78rem;color:#cbd5e1;line-height:1.35}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.88rem}.data-table td,.data-table th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid var(--border);vertical-align:top}.data-table th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.simple-list{list-style:none}.simple-list,.simple-list li{margin:0;padding:0}.list-pick{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.55rem .65rem;border:1px solid transparent;border-radius:10px;background:transparent;color:inherit;cursor:pointer}.list-pick:hover{background:rgba(148,163,184,.08)}.list-pick.on{border-color:rgba(56,189,248,.35);background:rgba(56,189,248,.1)}.ok-text{color:#34d399}.btn-danger{border:1px solid rgba(248,113,113,.45);background:rgba(248,113,113,.12);color:#fecaca;border-radius:999px;padding:.5rem .95rem;font-size:.88rem;font-weight:600;cursor:pointer}.btn-danger:hover{background:rgba(248,113,113,.22)}.btn-danger:disabled{opacity:.55;cursor:not-allowed}.form-section-title{margin:1.15rem 0 .55rem;font-size:.92rem;font-weight:650;letter-spacing:-.01em;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.35rem}.scrape-mode-banner{display:flex;gap:.85rem;align-items:flex-start;margin:.85rem 0 1.1rem;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:rgba(148,163,184,.08)}.scrape-mode-tag{flex-shrink:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.35rem .55rem;border-radius:8px;background:rgba(99,102,241,.18);color:#a5b4fc;white-space:nowrap}.scrape-mode-banner[data-mode=tiles] .scrape-mode-tag{background:rgba(56,189,248,.2);color:#7dd3fc}.scrape-mode-banner[data-mode=oid_query] .scrape-mode-tag{background:rgba(251,191,36,.18);color:#fcd34d}.scrape-mode-banner[data-mode=wfs_query] .scrape-mode-tag{background:rgba(52,211,153,.18);color:#6ee7b7}.scrape-mode-banner[data-mode=layer_mirror] .scrape-mode-tag{background:rgba(244,114,182,.18);color:#f9a8d4}.live-title{display:inline-flex;align-items:center;gap:.45rem}.live-dot{width:9px;height:9px;border-radius:50%;background:#34d399;box-shadow:0 0 0 0 rgba(52,211,153,.55);animation:live-pulse 1.4s ease infinite}@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(52,211,153,.5)}70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.login-page{position:relative;z-index:2;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem 3rem}.login-ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(800px 400px at 20% 20%,rgba(107,147,255,.22),transparent 60%),radial-gradient(700px 380px at 80% 70%,rgba(34,211,238,.12),transparent 55%);z-index:0}.login-grid{position:relative;z-index:1;width:min(960px,100%);display:grid;grid-template-columns:1.1fr .9fr;grid-gap:2rem;gap:2rem;align-items:center}@media (max-width:820px){.login-grid{grid-template-columns:1fr;gap:1.5rem}.login-hero{text-align:center}.login-points{justify-content:center}.login-mark{margin-left:auto;margin-right:auto}}.login-hero{max-width:32rem}.login-title{margin:.75rem 0 .65rem!important}.login-lead{margin:0;color:var(--muted);font-size:1rem;max-width:40ch}.login-points{list-style:none;padding:0;margin:1.25rem 0 0;display:flex;flex-direction:column;gap:.4rem;color:var(--muted);font-size:.78rem;letter-spacing:.04em}.login-points li:before{content:"› ";color:var(--accent-2)}.login-mark{margin:0}.login-panel{width:100%}.login-card{width:100%;margin-bottom:0;border-color:rgba(107,147,255,.22);background:linear-gradient(165deg,rgba(107,147,255,.1),rgba(12,18,32,.92) 40%)}.login-card h2{margin:0 0 .35rem;font-size:1.15rem}.login-form{margin-top:1rem}.login-divider{display:flex;align-items:center;gap:.75rem;margin:1rem 0;color:var(--muted);font-size:.8rem}.login-divider:after,.login-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.login-env-hint{margin:.85rem 0 0;padding:.75rem .85rem;font-size:.72rem;line-height:1.45;overflow:auto;background:rgba(0,0,0,.35);border:1px solid var(--border);border-radius:var(--radius-sm);color:#c7d2e5;white-space:pre-wrap}.btn-block{width:100%;justify-content:center;display:inline-flex;align-items:center;gap:.55rem;margin-top:.25rem}.btn-sm{padding:.35rem .7rem;font-size:.8rem}.btn-google{border-color:var(--border-strong);background:rgba(255,255,255,.04)}.user-menu{margin-left:.35rem;padding-left:.65rem;border-left:1px solid var(--border)}.user-menu,.user-menu-meta{display:flex;align-items:center;gap:.45rem}.user-menu-meta{max-width:180px}.user-menu-avatar{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-size:.75rem;font-weight:700;color:white;background:linear-gradient(135deg,var(--accent),var(--accent-2));flex-shrink:0}.user-menu-label{color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:720px){.user-menu-label{display:none}.app-header{flex-wrap:wrap}}main.app-main:has(.flow-editor){width:min(1440px,calc(100% - 1.5rem))}.flow-editor-head{align-items:flex-start}.flow-name-input{display:block;width:min(520px,100%);margin:.35rem 0 .4rem;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:1.35rem;font-weight:650;letter-spacing:-.03em;padding:.2rem 0}.flow-name-input:focus{outline:none;border-bottom-color:var(--accent)}.flow-desc-input{display:block;width:min(520px,100%);background:transparent;border:none;color:var(--muted);font-size:.9rem;padding:.15rem 0}.flow-desc-input:focus{outline:none;color:var(--text)}.flow-actions{flex-wrap:wrap;justify-content:flex-end}.flow-issues{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem}.flow-issues .issue-err,.flow-issues .issue-warn{font-size:.78rem;padding:.25rem .55rem;border-radius:999px;border:1px solid}.flow-issues .issue-err{color:var(--fail);border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.1)}.flow-issues .issue-warn{color:var(--run);border-color:rgba(251,191,36,.35);background:rgba(251,191,36,.1)}.flow-editor-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);grid-gap:.85rem;gap:.85rem;align-items:stretch;min-height:620px}@media (max-width:960px){.flow-editor-body{grid-template-columns:1fr}}.flow-editor-main{padding:.65rem;min-height:620px;display:flex;flex-direction:column}.flow-editor-side{max-height:calc(100vh - 180px);overflow:auto}.flow-canvas-wrap{display:flex;flex-direction:column;gap:.55rem;flex:1 1;min-height:560px}.flow-palette{display:flex;flex-wrap:wrap;gap:.4rem}.palette-btn{font-size:.8rem!important;border-width:1px!important;border-style:solid!important}.flow-canvas{flex:1 1;min-height:520px;border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden;background:rgba(7,11,18,.55)}.flow-canvas .react-flow{width:100%;height:100%;min-height:520px}.flow-node{min-width:160px;max-width:220px;padding:.55rem .7rem .65rem;border-radius:12px;border:1.5px solid var(--border-strong);background:rgba(18,26,42,.95);box-shadow:0 8px 24px rgba(0,0,0,.35);font-size:.82rem}.flow-node.selected{box-shadow:0 0 0 2px rgba(91,140,255,.45),0 8px 24px rgba(0,0,0,.35)}.flow-node-type{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem}.flow-node-title{font-weight:650;color:var(--text);margin-bottom:.2rem}.flow-node-summary{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-handle{width:8px!important;height:8px!important;background:var(--accent)!important;border:2px solid #0c1220!important}.node-config h3{margin:0 0 .35rem;font-size:1rem}.node-config.empty{color:var(--muted)}.script-textarea{width:100%;min-height:180px;resize:vertical;font-family:var(--mono)!important;font-size:.82rem!important;line-height:1.5;background:rgba(7,11,18,.75)!important;border:1px solid var(--border);border-radius:var(--radius-xs);padding:.75rem;color:var(--text);-moz-tab-size:4;tab-size:4}.script-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(107,147,255,.12)}.flow-script-textarea{min-height:360px;font-size:.85rem!important;line-height:1.55}.script-contract{margin-top:.35rem;font-size:.8rem;color:var(--muted)}.script-contract pre{margin:.4rem 0 0;padding:.65rem;border-radius:var(--radius-sm);background:rgba(7,11,18,.65);border:1px solid var(--border);overflow:auto;font-size:.75rem}.flow-json-modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:1rem}.flow-json-panel{width:min(720px,100%);max-height:90vh;overflow:auto}.grid-2-sm{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem .75rem;gap:.5rem .75rem}.row{display:flex;align-items:center}.row.gap-sm{gap:.4rem}.stack.gap-sm{gap:.45rem}.stack.gap-md,.stack.gap-sm{display:flex;flex-direction:column}.stack.gap-md{gap:.75rem}.stack.gap-lg{display:flex;flex-direction:column;gap:1rem}.small{font-size:.8rem}table.data-table{width:100%;border-collapse:collapse}table.data-table td,table.data-table th{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--border);vertical-align:middle}table.data-table th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:999px;padding:.45rem .9rem;font-size:.88rem;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;color:var(--text);background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{color:white;background:linear-gradient(135deg,var(--accent),#3b6ef5);border:none}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-ghost{color:var(--muted);border-color:var(--border);background:rgba(255,255,255,.03)}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:.85rem;font-size:.9rem}.alert-error{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3);color:#fecaca}.alert-success{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28);color:#a7f3d0}.target-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.55rem;gap:.55rem}@media (max-width:720px){.target-grid{grid-template-columns:1fr}}.target-card{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:rgba(7,11,18,.45);cursor:pointer;transition:border-color .15s,background .15s}.target-card input{position:absolute;opacity:0;pointer-events:none}.target-card strong{color:var(--text);font-size:.9rem}.target-card.active{border-color:rgba(91,140,255,.55);background:rgba(91,140,255,.1);box-shadow:0 0 0 1px rgba(91,140,255,.2)}.stage-section{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-med) var(--ease-out)}.stage-section.is-open{border-color:rgba(107,147,255,.25);box-shadow:0 0 0 1px rgba(107,147,255,.08),0 8px 24px rgba(0,0,0,.2)}.stage-section[data-status=running]{border-color:rgba(251,191,36,.45)}.stage-section[data-status=success]{border-color:rgba(52,211,153,.35)}.stage-section[data-status=failed]{border-color:rgba(248,113,113,.4)}.stage-section-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:var(--text);cursor:pointer;font:inherit;text-align:left;gap:.75rem;transition:background var(--dur-fast) ease}@media (hover:hover) and (pointer:fine){.stage-section-header:hover{background:rgba(107,147,255,.04)}}.stage-section-left{display:flex;align-items:center;gap:.6rem;min-width:0}.stage-section-index{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:rgba(107,147,255,.12);color:var(--accent);font-size:.72rem;font-weight:700;flex-shrink:0}.stage-section-icon{font-size:1.1rem;flex-shrink:0}.stage-section-title{display:flex;flex-direction:column;gap:.1rem;min-width:0}.stage-section-label{font-weight:650;font-size:.92rem}.stage-section-desc{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage-section-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.stage-section-chevron{font-size:.9rem;color:var(--muted);transition:transform var(--dur-fast) var(--ease-out)}.stage-section-chevron.rotated{transform:rotate(180deg)}.stage-section-body{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.stage-section-body[hidden]{display:none}.stage-status-pill{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em}.stage-status-pending{color:var(--muted);background:rgba(148,163,184,.1)}.stage-status-running{color:var(--run);background:rgba(251,191,36,.12);animation:stage-pulse 1.8s ease-in-out infinite}.stage-status-success{color:var(--ok);background:rgba(52,211,153,.12)}.stage-status-failed{color:var(--fail);background:rgba(248,113,113,.12)}.stage-status-skipped{color:var(--muted);background:rgba(148,163,184,.08);opacity:.7}@keyframes stage-pulse{0%,to{opacity:1}50%{opacity:.6}}.stage-io-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:var(--radius-xs);font-size:.78rem;border:1px solid var(--border);background:rgba(7,11,18,.5);max-width:100%}.stage-io-badge-icon{font-size:.9rem;flex-shrink:0}.stage-io-badge-label{font-weight:600;flex-shrink:0}.stage-io-badge-location{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.stage-io-badge-format{padding:.05rem .35rem;border-radius:4px;background:rgba(107,147,255,.1);color:var(--accent);font-size:.68rem;font-weight:600;flex-shrink:0}.stage-io-badge-dir{color:var(--muted);font-size:.8rem;flex-shrink:0}.io-type-s3{border-color:rgba(34,211,238,.2)}.io-type-s3 .stage-io-badge-icon{color:var(--accent-2)}.io-type-memory{border-color:rgba(251,191,36,.2)}.io-type-memory .stage-io-badge-icon{color:var(--run)}.io-type-database{border-color:rgba(167,139,250,.2)}.io-type-database .stage-io-badge-icon{color:var(--accent-hot)}.io-type-api{border-color:rgba(52,211,153,.2)}.io-type-api .stage-io-badge-icon{color:var(--ok)}.io-type-none{opacity:.5}.io-dir-input .stage-io-badge-dir{order:-1}.data-flow-arrow{display:flex;align-items:center;gap:0;padding:.15rem 0}.data-flow-vertical{flex-direction:column;padding:.25rem 0}.data-flow-vertical .data-flow-arrow-line{width:1px;height:12px;background:var(--border-strong)}.data-flow-horizontal{flex-direction:row;padding:0 .4rem}.data-flow-horizontal .data-flow-arrow-line{height:1px;width:16px;background:var(--border-strong)}.data-flow-arrow-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:999px;background:rgba(12,18,32,.85);border:1px solid var(--border);font-size:.68rem;color:var(--muted)}.data-flow-arrow-icon{font-size:.75rem}.data-flow-arrow-label{white-space:nowrap}.flow-arrow-s3 .data-flow-arrow-badge{border-color:rgba(34,211,238,.2)}.flow-arrow-s3 .data-flow-arrow-icon{color:var(--accent-2)}.flow-arrow-s3 .data-flow-arrow-line{background:rgba(34,211,238,.3)}.flow-arrow-memory .data-flow-arrow-badge{border-color:rgba(251,191,36,.2)}.flow-arrow-memory .data-flow-arrow-icon{color:var(--run)}.flow-arrow-memory .data-flow-arrow-line{background:rgba(251,191,36,.3)}.flow-arrow-database .data-flow-arrow-badge{border-color:rgba(167,139,250,.2)}.flow-arrow-database .data-flow-arrow-icon{color:var(--accent-hot)}.flow-arrow-database .data-flow-arrow-line{background:rgba(167,139,250,.3)}.flow-arrow-api .data-flow-arrow-badge{border-color:rgba(52,211,153,.2)}.flow-arrow-api .data-flow-arrow-icon{color:var(--ok)}.flow-arrow-api .data-flow-arrow-line{background:rgba(52,211,153,.3)}.data-flow-animated .data-flow-arrow-line{animation:flow-pulse 1.5s ease-in-out infinite}.data-flow-animated .data-flow-arrow-badge{animation:stage-pulse 1.8s ease-in-out infinite}@keyframes flow-pulse{0%,to{opacity:1}50%{opacity:.35}}.stage-resource-picker{display:flex;flex-direction:column;gap:.5rem}.stage-resource-picker-field{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.stage-resource-picker-label{font-size:.78rem;font-weight:600;color:var(--muted)}.stage-resource-picker-select{padding:.4rem .6rem;border-radius:var(--radius-xs);border:1px solid var(--border);background:rgba(7,11,18,.6);color:var(--text);font-size:.85rem;font-family:var(--mono)}.stage-resource-picker-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(107,147,255,.15)}.stage-resource-picker-custom{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;padding:.5rem;border-radius:var(--radius-xs);border:1px solid var(--border);background:rgba(7,11,18,.35)}.stage-resource-picker-custom input{padding:.35rem .5rem;border-radius:6px;border:1px solid var(--border);background:rgba(7,11,18,.6);color:var(--text);font-size:.82rem}.stage-resource-picker-custom input:focus{outline:none;border-color:var(--accent)}.stage-resource-picker-error{grid-column:1/-1;font-size:.75rem;color:var(--fail);padding:.2rem 0}.stage-panel-content{display:flex;flex-direction:column;gap:.65rem}.stage-io-row{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.stage-panel-details{border:1px solid var(--border);border-radius:var(--radius-xs);padding:.5rem .65rem;background:rgba(7,11,18,.3)}.stage-panel-details[open]{padding-bottom:.75rem}.stage-panel-details summary{font-weight:600}.pipeline-diagram{border:1px solid var(--border);border-radius:var(--radius-sm);background:rgba(7,11,18,.5);overflow:hidden}.pipeline-stage-node{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.55rem .85rem;border-radius:var(--radius-xs);border:1.5px solid var(--border-strong);background:var(--panel-solid);min-width:100px;text-align:center;transition:border-color var(--dur-fast) ease,box-shadow var(--dur-fast) ease,transform var(--dur-fast) var(--ease-out);cursor:pointer}.pipeline-stage-node.active{border-color:var(--accent);box-shadow:0 0 0 2px rgba(107,147,255,.2),0 4px 12px rgba(0,0,0,.3);transform:translateY(-1px)}.pipeline-stage-node.is-running{animation:stage-pulse 1.8s ease-in-out infinite}.pipeline-stage-node-header{display:flex;align-items:center;gap:.3rem}.pipeline-stage-node-icon{font-size:1rem}.pipeline-stage-node-label{font-size:.82rem;font-weight:650;color:var(--text)}.pipeline-stage-node-resource{font-size:.65rem;color:var(--muted);padding:.05rem .3rem;border-radius:4px;background:rgba(107,147,255,.08)}.pipeline-stage-node-status{font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.pipeline-handle{width:6px!important;height:6px!important;background:var(--accent)!important;border:1.5px solid var(--panel-solid)!important}.pipeline-edge-label{position:absolute;display:inline-flex;align-items:center;gap:.2rem;padding:.1rem .35rem;border-radius:999px;background:rgba(12,18,32,.92);border:1px solid var(--border);font-size:.62rem;color:var(--muted);pointer-events:none;white-space:nowrap}.pipeline-edge-label-icon{font-size:.7rem}.pipeline-edge-label-text{font-weight:600}.pipeline-edge-animated{animation:pipeline-edge-dash 1.2s linear infinite}@keyframes pipeline-edge-dash{to{stroke-dashoffset:-16}}.stage-pipeline-form{display:flex;flex-direction:column;gap:.75rem}.stage-pipeline-panels{gap:0}.stage-pipeline-panels,.stage-pipeline-panels>div{display:flex;flex-direction:column;align-items:center}.stage-pipeline-panels .stage-section,.stage-pipeline-panels>div{width:100%}.stage-pipeline-panels .data-flow-arrow{margin:0}.overture-project-tabs{display:flex;flex-direction:column;gap:0;margin-top:.75rem}.overture-tab-bar{display:flex;gap:0;overflow-x:auto;border-bottom:1px solid var(--border)}.overture-tab{display:inline-flex;align-items:center;gap:.3rem;padding:.5rem .85rem;font-size:.82rem;font-weight:600;color:var(--muted);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) ease,border-color var(--dur-fast) ease}.overture-tab:hover{color:var(--text)}.overture-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.overture-tab-close{display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:50%;font-size:.75rem;color:var(--muted);transition:background var(--dur-fast) ease,color var(--dur-fast) ease}.overture-tab-close:hover{background:rgba(248,113,113,.15);color:var(--fail)}.overture-tab-add{color:var(--accent);font-size:1rem;padding:.4rem .7rem}.overture-tab-add:hover{background:rgba(107,147,255,.08);border-radius:var(--radius-xs) var(--radius-xs) 0 0}.overture-project-info{display:flex;align-items:center;justify-content:space-between;padding:.4rem .6rem;font-size:.8rem;background:rgba(107,147,255,.04);border-bottom:1px solid var(--border)}.overture-tab-content{padding:.75rem 0 0}.overture-project-panel{display:flex;flex-direction:column;gap:.75rem}.pipeline-diagram.overture-branching{min-height:180px}.overture-project-steps{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem;padding:.5rem 0;border-bottom:1px solid var(--border);margin-bottom:.5rem}.overture-step-chips{display:flex;flex-wrap:wrap;gap:.25rem}.overture-step-chip{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.2rem .45rem;border-radius:6px;font-size:.72rem;font-weight:650;cursor:pointer;border:1px solid var(--border);background:transparent;color:var(--muted);transition:all var(--dur-fast) ease}.overture-step-chip.on{background:rgba(107,147,255,.12);border-color:rgba(107,147,255,.4);color:var(--accent)}.overture-step-chip.off{opacity:.5;text-decoration:line-through}.overture-step-chip:hover{border-color:var(--accent)}.flow-node.has-ports{min-height:70px;padding-bottom:.6rem}.flow-node-ports{display:flex;justify-content:space-between;gap:.5rem;margin-top:.3rem;padding-top:.25rem;border-top:1px solid rgba(148,163,184,.1)}.flow-port-list{display:flex;flex-direction:column;gap:.15rem}.flow-port-list.left{align-items:flex-start}.flow-port-list.right{align-items:flex-end}.flow-port-label{font-size:.58rem;font-family:var(--mono);padding:.05rem .25rem;border-radius:3px;color:var(--muted)}.flow-port-label.memory{background:rgba(251,191,36,.1);color:var(--run)}.flow-port-label.s3{background:rgba(34,211,238,.1);color:var(--accent-2)}.flow-port-handle.port-s3{background:var(--accent-2)!important}.flow-port-handle.port-memory{background:var(--run)!important}.port-manager{margin-top:.75rem;border:1px solid var(--border);border-radius:var(--radius-xs);padding:.5rem .65rem;background:rgba(7,11,18,.3)}.port-manager[open]{padding-bottom:.65rem}.port-row{display:flex;align-items:center;gap:.3rem;margin-bottom:.3rem}.port-name-input{flex:1 1;min-width:60px;padding:.25rem .4rem;font-size:.78rem}.port-cache-select,.port-dir-select,.port-name-input{border-radius:5px;border:1px solid var(--border);background:rgba(7,11,18,.5);color:var(--text)}.port-cache-select,.port-dir-select{padding:.2rem .3rem;font-size:.72rem}.port-remove-btn{padding:.15rem .4rem!important;font-size:.85rem;color:var(--fail);border-radius:50%}.flow-port-type{display:inline-block;margin-left:.2rem;font-size:.5rem;opacity:.7;font-style:italic}.port-type-select{padding:.2rem .3rem;border-radius:5px;border:1px solid var(--border);background:rgba(7,11,18,.5);color:var(--text);font-size:.68rem;max-width:80px}.flow-port-handle.port-auto{background:linear-gradient(135deg,var(--run),var(--accent-2))!important}.persistence-cache-toggle{padding:.6rem 0;border-top:1px solid var(--border);margin-top:.5rem}