:root{--accent:#0e9f6e;--accent-700:#0b7e57;--accent-50:#e7f6f0;--bg:#f4f6f8;--surface:#fff;--surface-2:#f9fafb;--border:#e4e8ec;--border-strong:#d4dade;--text:#14201b;--text-2:#5b6b66;--muted:#8a9893;--s-success:#16a34a;--s-failed:#dc2626;--s-running:#2563eb;--s-queued:#94a3b8;--s-upstream:#f59e0b;--s-skipped:#cbd5e1;--s-none:#eef1f3;--s-stopped:#8b5cf6;--radius:12px;--radius-sm:8px;--topbar-h:56px;--shadow-sm:0 1px 2px #10201b0f;--shadow:0 4px 18px #10201b14;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121b17;--surface:#19231d;--surface-2:#222e28;--border:#2c3a34;--border-strong:#3a4b43;--text:#e7efeb;--text-2:#a4b5ad;--muted:#768a82;--accent-700:#34d399;--accent-50:#109f6e33;--s-none:#1b2621;--shadow-sm:0 1px 2px #00000080;--shadow:0 10px 30px #0000008c}[data-theme=dark] .form-error{color:#fca5a5;background:#dc262624;border-color:#dc262659}[data-theme=dark] .chip--accent{border-color:#109f6e66}[data-theme=dark] .badge--success{color:#4ade80;background:#16a34a29;border-color:#16a34a57}[data-theme=dark] .badge--failed{color:#f87171;background:#dc262629;border-color:#dc262657}[data-theme=dark] .badge--running{color:#60a5fa;background:#2563eb29;border-color:#2563eb57}[data-theme=dark] .badge--queued{color:#cbd5e1;background:#94a3b829;border-color:#94a3b84d}[data-theme=dark] .badge--upstream_failed{color:#fbbf24;background:#f59e0b29;border-color:#f59e0b52}[data-theme=dark] .badge--skipped{color:#94a3b8;background:#94a3b81f;border-color:#94a3b83d}[data-theme=dark] .badge--stopped{color:#a78bfa;background:#8b5cf62e;border-color:#8b5cf657}[data-theme=dark] .role--user{color:#cbd5e1;background:#94a3b824}[data-theme=dark] .ustatus--active{color:#4ade80;background:#16a34a29}[data-theme=dark] .ustatus--pending{color:#fbbf24;background:#f59e0b29}[data-theme=dark] .modal__icon--danger{background:#dc26262e}[data-theme=dark] .cell{border-color:#ffffff0f}[data-theme=dark] .tip__pop{color:var(--text);border:1px solid var(--border);background:#0b1410}[data-theme=dark] .tip__pop:after{border-top-color:#0b1410}[data-theme=dark] .auth-page{background:radial-gradient(1200px 500px at 50% -10%, #109f6e1f, var(--bg))}[data-theme=dark] .modal-overlay{background:#0000009e}[data-theme=dark] .sidebar{background:#10201a}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-wrap:anywhere;margin:0}.badge,.role,.ustatus,.usermenu__item,.tab{overflow-wrap:normal}a{color:inherit;text-decoration:none}code{font-family:var(--mono);font-size:.86em}h1,h2,h3{margin:0}.muted{color:var(--muted);font-size:13px}.mono{font-family:var(--mono)}.email-domain{display:inline-block}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.splash{height:100vh;color:var(--text-2);place-items:center;display:grid}.btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;padding:8px 14px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-700);border-color:var(--accent-700)}.btn--ghost{border-color:var(--border);background:0 0}.btn--ghost:hover{background:var(--surface-2)}.btn--ghost.danger{color:var(--s-failed)}.btn--danger{background:var(--s-failed);border-color:var(--s-failed);color:#fff}.btn--danger:hover{background:#b91c1c;border-color:#b91c1c}.btn--block{justify-content:center;width:100%}.btn--sm{padding:5px 10px;font-size:12.5px}.iconbtn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text-2);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover{background:var(--surface-2);color:var(--text)}.iconbtn.danger:hover{color:var(--s-failed);border-color:#f6c9c9}.link-btn{color:var(--accent-700);cursor:pointer;background:0 0;border:none;padding:4px;font-size:13px;font-weight:600}.link-btn:hover{text-decoration:underline}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--text-2);font-size:13px;font-weight:600}.field .hint{color:var(--muted);font-size:12px;font-weight:500}input,select,textarea{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%;padding:9px 11px;font-size:14px}textarea{resize:vertical;min-height:64px;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50);outline:none}.input-wrap{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);align-items:center;gap:8px;padding:0 11px;display:flex}.input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.input-wrap input{box-shadow:none;border:none;padding:9px 0}.input-wrap input:focus{box-shadow:none}.input-wrap--search{flex:1;max-width:360px}.form{flex-direction:column;gap:16px;display:flex}.form-error{color:#a11;border-radius:var(--radius-sm);background:#fdecec;border:1px solid #f6c9c9;padding:9px 12px;font-size:13px}.form-note{background:var(--accent-50);color:var(--accent-700);border-radius:var(--radius-sm);padding:9px 12px;font-size:13px}.form-grid{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.form-grid .field{flex:200px;min-width:0}.form-grid .field--wide{flex-grow:3}.form-grid .toggle-field,.form-grid .checkbox-field{flex:none}.form-grid .btn{flex:none;justify-content:center;height:40px}.checkbox-field{height:40px;color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.checkbox-field input{width:auto}.auth-page{background:radial-gradient(1200px 500px at 50% -10%, #e9f6f0, var(--bg));place-items:center;min-height:100%;padding:24px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow);padding:28px}.auth-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.auth-brand strong{font-size:16px;display:block}.auth-brand__sub{color:var(--muted);font-size:12.5px}.auth-title{margin-bottom:4px;font-size:20px}.auth-alt{border-top:1px solid var(--border);text-align:center;margin-top:16px;padding-top:16px}.auth-alt__link{cursor:pointer;min-height:24px;color:var(--accent-700);background:0 0;border:none;padding:4px 8px;font-size:13px;font-weight:600}.auth-alt__link:hover:not(:disabled){text-decoration:underline}.auth-alt__link:disabled{color:var(--muted);cursor:default}.auth-alt .form-note{text-align:left;margin:0}.auth-links{text-align:center;margin-top:12px}.shell{min-height:100%;display:flex}.sidebar{color:#cfe3da;background:#0f1c17;flex-direction:column;flex-shrink:0;width:248px;height:100vh;transition:width .2s;display:flex;position:sticky;top:0}.sidebar__brand{border-bottom:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:11px;width:100%;height:56px;padding:0 16px;transition:padding .2s;display:flex}.sidebar__logo{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;flex-shrink:0;place-items:center;width:39px;height:39px;padding:0;font-size:20px;font-weight:800;display:grid}.sidebar__logo:hover{background:var(--accent-700)}.sidebar__brand-info{cursor:pointer;min-width:0;color:inherit;font:inherit;text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;flex-direction:column;flex:1;gap:1px;padding:4px 6px;transition:background .15s;display:flex}.sidebar__brand-info:hover{background:#ffffff0f}.sidebar__brand-info strong{color:#fff;line-height:1.1;display:block}.sidebar svg{flex-shrink:0}.sidebar__sub{color:#7fa595;font-size:12px}.sidebar__nav{flex-direction:column;flex:1;gap:3px;padding:8px 12px;display:flex}.navitem{border-radius:var(--radius-sm);color:#b8cfc5;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:600;transition:padding .2s;display:flex}.navitem:hover{color:#fff;background:#ffffff0f}.navitem.active{background:var(--accent);color:#fff}.avatar{background:var(--accent);color:#fff;text-transform:uppercase;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:grid}.navitem__label,.sidebar__brand-info{white-space:nowrap;opacity:1;max-width:160px;transition:max-width .2s,opacity .2s;overflow:hidden}.sidebar--collapsed{width:72px}.sidebar--collapsed .navitem__label,.sidebar--collapsed .sidebar__brand-info{opacity:0;max-width:0;padding:0}.sidebar--collapsed .sidebar__brand{padding-left:16px}.sidebar--collapsed .navitem{padding-left:15px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:5;align-items:center;gap:12px;padding:0 22px;display:flex;position:sticky;top:0}.topbar__menu{display:none}.topbar__spacer{flex:1}.usermenu{position:relative}.usermenu__btn{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:4px;padding:3px 6px 3px 3px;transition:background .15s,color .15s;display:inline-flex}.usermenu__btn:hover,.usermenu__btn.is-open{background:var(--surface-2);color:var(--text)}.usermenu__btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.usermenu__panel{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:max-content;min-width:min(272px,100vw - 32px);max-width:calc(100vw - 32px);box-shadow:var(--shadow);position:absolute;top:calc(100% + 8px);right:0}.usermenu__head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px;display:flex}.usermenu__id{flex-direction:column;gap:1px;min-width:0;display:flex}.usermenu__name,.usermenu__email{overflow-wrap:anywhere}.usermenu__name{font-size:14px;font-weight:650}.usermenu__email{color:var(--muted);font-size:12.5px}.usermenu__list{margin:0;padding:5px;list-style:none}.usermenu__item{border-radius:var(--radius-sm);width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:9px;padding:8px 10px;font-size:14px;font-weight:500;display:flex}.usermenu__item svg{color:var(--text-2)}.usermenu__item:hover{background:var(--surface-2)}.usermenu__item.active,.usermenu__item.active svg{color:var(--accent-700)}[data-theme=dark] .usermenu__btn:hover,[data-theme=dark] .usermenu__btn.is-open,[data-theme=dark] .usermenu__item:hover{background:var(--bg)}.avatar-status{flex-shrink:0;display:inline-flex;position:relative}.avatar-status-dot{position:absolute;bottom:-2px;left:-2px}.status-dot{border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;display:block}.status-dot.online{background:var(--s-success)}.status-dot.offline{background:var(--s-failed)}.sync-dot-root{display:block;position:relative}.sync-dot{border:2px solid var(--surface);cursor:pointer;border-radius:50%;width:12px;height:12px;padding:0;display:block;position:relative}.sync-dot:after{content:"";border-radius:50%;position:absolute;inset:-8px}.sync-dot:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sync-dot-green{background:var(--s-success)}.sync-dot-orange{background:var(--s-upstream)}.sync-dot-red{background:var(--s-failed)}.sync-popover{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(340px,100vw - 32px);box-shadow:var(--shadow);text-align:left;white-space:normal;cursor:auto;flex-direction:column;gap:8px;padding:14px 16px;font-size:13px;line-height:1.5;display:flex;position:absolute;top:calc(100% + 8px);right:0}.usermenu__syncpop{position:relative}.usermenu__syncpop>.sync-popover-hosted{width:auto;top:-1px;left:-1px;right:-1px}.sync-popover .muted{margin:0}.sync-popover-actions{gap:8px;display:flex}.sync-popover .btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.sync-popover .btn-primary:hover{background:var(--accent-700);border-color:var(--accent-700)}.sync-notices{flex-direction:column;gap:6px;max-height:220px;margin:4px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.sync-notice{border-top:1px solid var(--border);flex-direction:column;padding-top:6px;display:flex}.sync-notice-time{color:var(--muted);font-size:11.5px}.sync-notice-rejected,.sync-notice-failing,.sync-notice-quota{color:var(--s-failed)}.content{width:100%;max-width:1280px;margin:0 auto;padding:26px}.page{flex-direction:column;gap:18px;display:flex}.page__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page__head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.page__title{letter-spacing:-.01em;font-size:23px;font-weight:750}.page__sub{color:var(--muted);margin:4px 0 0;font-size:13.5px}.back-link{min-height:24px;color:var(--text-2);align-self:flex-start;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.back-link:hover{color:var(--accent-700)}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;display:inline-flex}.seg button{color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:600}.seg button.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.meta-chips{flex-wrap:wrap;gap:7px;margin-top:8px;display:flex}.chip{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.chip--accent{color:var(--accent-700);background:var(--accent-50);border-color:#cbeada}.chip--mono{font-family:var(--mono)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card__head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card__title{align-items:center;gap:8px;font-size:15px;font-weight:700;display:inline-flex}.card__actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.card__body{padding:18px}.card__hint{color:var(--muted);margin:-4px 0 14px;font-size:13px}.dagid{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;margin-left:10px;padding:1px 7px}.row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.row-actions--nowrap{white-space:nowrap;flex-wrap:nowrap}.row-actions--center{justify-content:center}.cell-clip{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:480px;display:inline-block;overflow:hidden}.table--vars td.var-key .cell-clip{max-width:260px}.table--vars th.var-val,.table--vars td.var-val{width:100%;max-width:1px}.table--vars td.var-val .cell-clip{max-width:100%}.table--vars td.var-val .mono{box-sizing:border-box;width:100%}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.tab{cursor:pointer;color:var(--text-2);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;margin-bottom:-1px;padding:9px 14px;font-size:14px;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.tab:hover{color:var(--text)}.tab--active{color:var(--accent-700);border-bottom-color:var(--accent)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px;font-size:11.5px;font-weight:700}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 14px}.table tbody tr:last-child td{border-bottom:none}.row-link{cursor:pointer;transition:background .12s}.row-link:hover{background:var(--surface-2)}.row-chevron{color:var(--muted);text-align:right}.row-chevron__icon{justify-content:center;align-items:center;height:34px;display:inline-flex}.table th.col-center,.table td.col-center{text-align:center}.table td.col-center .cellstack{align-items:center}.cellstack{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.cellstack strong{font-weight:650}.cell-name{align-items:center;gap:8px;display:flex}.cell-name>a{align-items:center;min-height:24px;display:inline-flex}.chip--pool{padding:1px 7px;font-size:10.5px;font-weight:600}.swatches{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.swatch{cursor:pointer;border:none;border-radius:50%;width:22px;height:22px;padding:0;transition:transform .1s;box-shadow:0 0 0 1px #0000001f}.swatch:hover{transform:scale(1.12)}.swatch--active{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text-2)}.swatch--custom{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.color-popover{z-index:100;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;width:212px;padding:12px;display:flex;position:fixed;box-shadow:0 10px 30px #0000002e}.color-popover .react-colorful{width:188px;height:168px}.color-popover .hex-input{box-sizing:border-box;text-align:center;width:100%;font-family:var(--mono);text-transform:uppercase}.pool-dot{vertical-align:middle;border-radius:50%;width:14px;height:14px;display:inline-block;box-shadow:0 0 0 1px #0000001f}.mfa-setup{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.mfa-setup img{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.mfa-secret{font-family:var(--mono);letter-spacing:.04em;word-break:break-all;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;display:inline-block}.dot-flag{align-items:center;gap:6px;font-size:12.5px;font-weight:700;display:inline-flex}.dot-flag:before{content:"";background:var(--s-skipped);border-radius:50%;width:8px;height:8px}.dot-flag.on{color:var(--accent-700)}.dot-flag.on:before{background:var(--s-success)}.dot-flag.off{color:var(--muted)}.badge{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12.5px;font-weight:650;display:inline-flex}.badge--sm{padding:2px 8px;font-size:11.5px}.badge__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.badge--success{color:var(--s-success);background:#eafaf0;border-color:#c7eed5}.badge--failed{color:var(--s-failed);background:#fdecec;border-color:#f6c9c9}.badge--running{color:var(--s-running);background:#eaf1fe;border-color:#d3e2fd}.badge--queued{color:#475569;background:#eef2f6;border-color:#dde5ec}.badge--upstream_failed{color:#b45309;background:#fef4e6;border-color:#fbe2bd}.badge--skipped{color:#64748b;background:#f1f5f9;border-color:#e2e8f0}.badge--stopped{color:#6d28d9;background:#f3effe;border-color:#ddd0fb}.badge--no_status{color:var(--muted);background:var(--surface-2)}.run-grid{align-items:flex-start;gap:8px;display:inline-flex}.run-grid__labels{flex-direction:column;gap:3px;display:flex}.run-grid__corner{height:16px;color:var(--muted);font-size:10px;font-weight:700}.run-grid__rowlabel{height:14px;color:var(--text-2);font-size:11px;font-family:var(--mono);white-space:nowrap;line-height:14px}.run-grid__cols{gap:3px;display:flex;overflow-x:auto}.run-grid__col{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex-direction:column;gap:3px;padding:2px;display:flex}.run-grid__col:hover{background:var(--surface-2);border-color:var(--border)}.run-grid__col.is-selected{border-color:var(--accent);background:var(--accent-50)}.cell{background:var(--s-none);border:1px solid #0000000d;border-radius:3px;width:14px;height:14px;display:block}.cell--head{border-radius:4px;height:16px}.cell--success{background:var(--s-success)}.cell--failed{background:var(--s-failed)}.cell--running{background:var(--s-running);animation:1.1s ease-in-out infinite pulse}.cell--queued{background:var(--s-queued)}.cell--upstream_failed{background:var(--s-upstream)}.cell--skipped{background:var(--s-skipped)}.cell--stopped{background:var(--s-stopped)}.cell--no_status{background:var(--s-none)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.run-grid--compact .cell{border-radius:2px;width:11px;height:11px}.run-grid--compact .cell--head{height:12px}.run-grid--compact .run-grid__col{gap:2px;padding:1px}.grid-empty{color:var(--muted);padding:6px 0;font-size:13px}.grid-legend{flex-wrap:wrap;gap:14px;display:flex}.grid-legend__item{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.config-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.autotoggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.autotoggle strong{font-size:14px;display:block}.autotoggle .muted{font-size:12px}.config-note{margin:12px 0 0}.switch{cursor:pointer;background:var(--s-skipped);border:none;border-radius:999px;flex-shrink:0;width:46px;height:26px;transition:background .18s;position:relative}.switch.on{background:var(--accent)}.switch:disabled{opacity:.5;cursor:not-allowed}.switch__knob{width:20px;height:20px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .18s;position:absolute;top:3px;left:3px}.switch.on .switch__knob{transform:translate(20px)}.toggle-field{align-items:center;gap:10px;height:40px;display:flex}.toggle-field__label{color:var(--text-2);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.tip{align-items:center;display:inline-flex;position:relative}.tip__icon{color:var(--muted);cursor:help;transition:color .15s}.tip:hover .tip__icon,.tip:focus-visible .tip__icon{color:var(--accent-700)}.tip__pop{background:var(--text);color:#fff;border-radius:var(--radius-sm);text-align:left;width:max-content;max-width:240px;box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:60;padding:8px 11px;font-size:12px;font-weight:500;line-height:1.45;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%)translateY(4px)}.tip:hover .tip__pop,.tip:focus-within .tip__pop{opacity:1;transform:translate(-50%)translateY(0)}.tip__pop:after{content:"";border:5px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.stepper{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);align-items:stretch;width:max-content;height:40px;display:inline-flex;overflow:hidden}.stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.stepper__btn{background:var(--surface-2);width:36px;color:var(--text-2);cursor:pointer;border:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.stepper__btn:hover:not(:disabled){background:var(--accent-50);color:var(--accent-700)}.stepper__btn:disabled{opacity:.4;cursor:not-allowed}.stepper__input{text-align:center;border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface);border-radius:0;width:52px;padding:0;font-weight:600}.stepper__input:focus{box-shadow:none;outline:none}.rundetail{border-top:1px dashed var(--border);margin-top:18px;padding-top:16px}.rundetail__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.steps{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.step{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font:inherit;color:inherit;align-items:center;gap:8px;padding:7px 12px;transition:border-color .12s,background .12s;display:inline-flex}.step:hover{border-color:var(--border-strong)}.step.is-selected{border-color:var(--accent);background:var(--accent-50)}.step strong{font-size:13px;font-weight:600}.logs{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.logs__head{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-2);justify-content:space-between;padding:8px 12px;font-size:12px;font-weight:700;display:flex}.logs__body{color:#d6e7df;font-family:var(--mono);white-space:pre-wrap;word-break:break-word;background:#0f1c17;max-height:360px;margin:0;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.step-editor{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);margin-bottom:12px;padding:14px}.step-editor--dragging{z-index:2;opacity:.95;border-color:var(--accent);position:relative;box-shadow:0 12px 28px #0f172a2e}.step-editor__head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.step-editor__head .row-actions{flex-wrap:nowrap;flex-shrink:0;margin-left:auto}.step-editor__head--collapsed{margin-bottom:0}.step-editor__head-left{align-items:center;gap:8px;min-width:0;display:flex}.step-editor__grip{color:var(--text-2);cursor:grab;align-items:center;display:inline-flex}.step-editor__grip:hover{color:var(--accent)}.step-editor__grip:active{cursor:grabbing}.step-editor__toggle{cursor:pointer;min-width:0;color:var(--text-2);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;display:inline-flex}.step-editor__toggle:hover,.step-editor__toggle:hover .step-editor__idx{color:var(--accent)}.step-editor__idx{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.editor-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.editor-row:last-child{margin-bottom:0}.stack{flex-direction:column;gap:14px;display:flex}.stack>.editor-row{margin-bottom:0}.role{text-transform:capitalize;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.role--admin{color:var(--accent-700);background:var(--accent-50)}.role--user{color:#475569;background:#eef2f6}.ustatus{text-transform:capitalize;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.ustatus--active{color:var(--s-success);background:#eafaf0}.ustatus--pending{color:#b45309;background:#fef4e6}@media (width<=880px){.table--users thead{display:none}.table--users,.table--users tbody,.table--users tr,.table--users td{display:block}.table--users tr{border-bottom:1px solid var(--border);padding:10px 0}.table--users tbody tr:last-child{border-bottom:none}.table.table--users td,.table.table--users td.col-center{text-align:left;border-bottom:none;align-items:center;gap:12px;padding:3px 0;display:flex}.table--users td+td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex:0 0 5.5rem;font-size:11.5px;font-weight:700}.table--users .row-actions--center{justify-content:flex-start}}.profile-forms{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:18px;display:grid}.profile-hero{flex-wrap:wrap;align-items:center;gap:18px;padding:18px;display:flex}.avatar--md{width:40px;height:40px;font-size:16px}.avatar--lg{width:56px;height:56px;font-size:22px}.profile-hero__info{flex-direction:column;flex:200px;gap:4px;min-width:0;display:flex}.profile-hero__name{font-size:18px;font-weight:700;line-height:1.1}.profile-hero__meta{text-align:right;flex-direction:column;gap:2px;font-size:13px;display:flex}.profile-hero__meta strong{font-weight:650}.state-block{color:var(--text-2);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px;display:flex}.state-block--error{color:var(--s-failed)}.toast-stack{z-index:100;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:var(--radius-sm);min-width:260px;max-width:380px;box-shadow:var(--shadow);align-items:center;gap:10px;padding:12px 14px;font-size:13.5px;animation:.18s ease-out toast-in;display:flex}.toast--success{border-left-color:var(--s-success);color:var(--s-success)}.toast--error{border-left-color:var(--s-failed);color:var(--s-failed)}.toast--info{border-left-color:var(--s-running);color:var(--s-running)}.toast span{color:var(--text);flex:1}.toast__close{cursor:pointer;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:5px;display:inline-flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.cron-desc{color:var(--accent-700);font-size:12.5px;font-weight:600}.cron-desc--bad{color:var(--s-failed)}.scripts-grid{grid-template-columns:280px 1fr;align-items:stretch;gap:16px;display:grid}.scripts-grid>.card:first-child{flex-direction:column;display:flex}.scripts-grid>.card:first-child .card__body{flex:1;min-height:0;overflow-y:auto}.scripts-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.scripts-list__item{text-align:left;border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex}.scripts-list__item:hover{background:var(--surface-2)}.scripts-list__item.active{background:var(--accent-50);border-color:var(--accent)}.scripts-list__name{min-width:0;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;overflow:hidden}.scripts-list__time{white-space:nowrap;text-align:right;flex-shrink:0;margin-left:auto}.code-editor{border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.code-editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-50)}.pkg-install{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pkg-install input{flex:250px}.pkg-install .btn{white-space:nowrap}@media (width<=880px){.scripts-grid{grid-template-columns:1fr}}.modal-overlay{z-index:200;background:#10201b73;place-items:center;padding:20px;animation:.15s ease-out overlay-in;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;box-shadow:var(--shadow);animation:.18s ease-out modal-in;overflow:hidden}.modal__head{align-items:center;gap:12px;padding:18px 18px 6px;display:flex}.modal__icon{background:var(--accent-50);width:38px;height:38px;color:var(--accent-700);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.modal__icon--danger{color:var(--s-failed);background:#fdecec}.modal__title{flex:1;font-size:16px;font-weight:700}.modal__close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:4px;display:inline-flex}.modal__close:hover{color:var(--text)}.modal__body{color:var(--text-2);padding:6px 18px 18px;font-size:14px;line-height:1.55}.modal__body strong{color:var(--text);font-weight:650}.modal__body p{margin:0}.modal__body p+p{margin-top:6px}.modal__foot{background:var(--surface-2);border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}@keyframes overlay-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}.modal.about{max-width:405px;animation:none}.about__hero{border-bottom:1px solid var(--border);background:linear-gradient(135deg, var(--accent-50), var(--surface));align-items:center;gap:13px;padding:18px 18px 16px;display:flex}.about__logo{background:var(--accent);color:#fff;border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.about__hero>div{flex-direction:column;flex:1;min-width:0;display:flex}.about__hero strong{font-size:17px;font-weight:750;line-height:1.1}.about__sub{color:var(--muted);font-size:12.5px}.about__hero .modal__close{align-self:flex-start}.about__grid{grid-template-columns:max-content max-content 1fr;align-items:center;gap:11px;padding:18px;display:grid}.about__icon{color:var(--accent-700);display:inline-flex}.about__label{color:var(--muted);font-size:13px;font-weight:600}.about__value{color:var(--text-2);white-space:normal;min-width:0;margin-left:19px;font-size:13.5px;font-weight:550;overflow:hidden}.about__mono{font-family:var(--mono,ui-monospace, monospace);font-weight:600}.about__tech{color:var(--text);font-weight:650}a.about__tech{text-decoration:none}a.about__tech:hover{color:var(--accent-700);text-decoration:underline}.about__link{color:var(--accent-700);padding-block:3px;line-height:18px;text-decoration:none;display:inline-block}.about__link:hover{text-decoration:underline}.about__divider{background:var(--border);grid-column:1/-1;height:1px;margin:1px 0}@media (width<=880px){.sidebar,.sidebar--collapsed{left:0;top:var(--topbar-h);z-index:30;width:248px;height:calc(100vh - var(--topbar-h));height:calc(100dvh - var(--topbar-h));transition:transform .2s;position:fixed;transform:translate(-100%)}.shell--open .sidebar{box-shadow:var(--shadow);transform:translate(0)}.sidebar--collapsed .navitem__label,.sidebar--collapsed .sidebar__brand-info{opacity:1;max-width:160px}.sidebar--collapsed .sidebar__brand-info{padding:4px 6px}.sidebar--collapsed .sidebar__brand{padding-left:18px}.sidebar--collapsed .navitem{padding-left:12px}.topbar__menu{display:inline-flex}.config-grid,.editor-row,.profile-forms{grid-template-columns:minmax(0,1fr)}}@media (pointer:coarse){.step-editor__grip{padding:4px}.swatch{width:24px;height:24px}}@media (width<=580px){.topbar{padding:0 12px}.content{padding:14px}.card__head{padding:12px 14px}.card__body{padding:14px}.table th,.table td{padding:8px 10px}.profile-hero{gap:14px;padding:14px}.auth-page{padding:12px}.auth-card{padding:20px}.modal-overlay{padding:12px}.toast-stack{bottom:12px;left:12px;right:12px}.toast{min-width:0;max-width:none}.step-editor__idx{white-space:normal}.table--vars thead{display:none}.table--vars,.table--vars tbody,.table--vars td{display:block}.table--vars tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:10px 0;display:grid}.table--vars tbody tr:last-child{border-bottom:none}.table.table--vars td{border-bottom:none;padding:2px 0}.table--vars td.var-val{width:auto;max-width:none}.table--vars td.var-key .cell-clip,.table--vars td.var-val .cell-clip{max-width:100%}.table--vars td.var-val,.table--vars td.var-secret,.table--vars td[colspan]{grid-column:1/-1}.table.table--vars td.var-secret{text-align:left;padding-top:6px}.table--vars td.var-secret:empty{display:none}.table--vars td.var-secret[data-label]{align-items:center;gap:12px;display:flex}.table--vars td.var-secret[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex:0 0 4.5rem;font-size:11.5px;font-weight:700}.table--vars td.var-actions{grid-area:1/2}.table--steps thead{display:none}.table--steps,.table--steps tbody{display:block}.table--steps tr{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:4px 6px;padding:10px 0;display:flex}.table--steps tbody tr:last-child{border-bottom:none}.table.table--steps td,.table.table--steps td.col-center{text-align:left;border-bottom:none;padding:0}.table--steps td:first-child{color:var(--text-2);font-weight:700}.table--steps td:nth-child(2){flex:1 1 0;min-width:0;font-weight:650}.table--steps td:nth-child(3){flex:0 0 100%}.table--steps td:first-child:after,.table--steps td:nth-child(4):after{content:"·";color:var(--muted);margin-left:6px}.table--steps td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:6px;font-size:11.5px;font-weight:700}.table--pools thead{display:none}.table--pools,.table--pools tbody{display:block}.table--pools tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:10px 0;display:grid}.table--pools tbody tr:last-child{border-bottom:none}.table.table--pools td,.table.table--pools td.col-center{text-align:left;border-bottom:none;align-items:center;gap:12px;padding:3px 0;display:flex}.table.table--pools td[colspan]{display:block}.table--pools td+td,.table--pools td[colspan],.table--pools tr.is-editing td{grid-column:1/-1}.table--pools tr:not(.is-editing) td.pool-actions{grid-area:1/2}.table--pools td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);flex:0 0 4.5rem;font-size:11.5px;font-weight:700}.table--pools td>input,.table--pools .swatches{flex:1 1 0;min-width:0}}@media (width>=581px){.table--steps td:nth-child(2),.table--steps td:nth-child(4){overflow-wrap:normal}}.table-wrap--tasks{container:tasks/inline-size}@container tasks (width>=1100px){.table.table--tasks td:first-child>.cellstack{min-width:172px}}.table.table--tasks .cell-name{flex-wrap:wrap}@container tasks (width<1100px){.table.table--tasks,.table.table--tasks tbody{display:block}.table.table--tasks colgroup,.table.table--tasks thead{display:none}.table.table--tasks tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;padding:8px 0;display:grid}.table.table--tasks tbody tr:last-child{border-bottom:none}.table.table--tasks td{border-bottom:none;padding:2px 8px}.table.table--tasks td.col-center{text-align:left}.table.table--tasks td.col-center .cellstack{flex-flow:wrap;align-items:center;gap:4px 8px}.table.table--tasks td:nth-child(4),.table.table--tasks td:nth-child(6){display:none}.table.table--tasks td:nth-child(8){grid-area:1/2}.table.table--tasks td:nth-child(3){text-align:right}.table.table--tasks td:nth-child(5),.table.table--tasks td[colspan]{grid-column:1/-1}.table.table--tasks td:nth-child(7){grid-column:1/-1;padding-top:6px;container:runs/inline-size}}@container runs (width<285px){.run-grid__col:nth-last-child(n+16){display:none}}@container runs (width<267px){.run-grid__col:nth-last-child(n+15){display:none}}@container runs (width<249px){.run-grid__col:nth-last-child(n+14){display:none}}@container runs (width<231px){.run-grid__col:nth-last-child(n+13){display:none}}@container runs (width<213px){.run-grid__col:nth-last-child(n+12){display:none}}@container runs (width<195px){.run-grid__col:nth-last-child(n+11){display:none}}@container runs (width<177px){.run-grid__col:nth-last-child(n+10){display:none}}@container runs (width<159px){.run-grid__col:nth-last-child(n+9){display:none}}
