:root{--font-sans: "Inter var", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-lg: 15px;--text-xl: 18px;--text-2xl: 22px;--radius-sm: 4px;--radius: 6px;--radius-lg: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--sidebar-width: 236px;--topbar-height: 52px;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent);--bg: #f5f7fa;--surface: #ffffff;--surface-2: #f1f4f8;--surface-3: #e8edf3;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--text-2: #334155;--muted: #64748b;--faint: #94a3b8;--accent: #0d9488;--accent-strong: #0f766e;--accent-soft: #ccfbf1;--accent-text: #0f766e;--on-accent: #ffffff;--info: #2563eb;--info-soft: #dbeafe;--success: #15803d;--success-soft: #dcfce7;--warning: #b45309;--warning-soft: #fef3c7;--danger: #dc2626;--danger-strong: #b91c1c;--danger-soft: #fee2e2;--neutral-soft: #eef2f6;--nav-bg: #0b1426;--nav-surface: #111d35;--nav-border: #1c2a45;--nav-text: #c7d2e3;--nav-muted: #7a8ba8;--nav-active: #19304f;--shadow-sm: 0 1px 2px rgb(15 23 42 / .06);--shadow: 0 1px 3px rgb(15 23 42 / .08), 0 1px 2px rgb(15 23 42 / .04);--shadow-lg: 0 16px 40px rgb(15 23 42 / .18), 0 2px 6px rgb(15 23 42 / .08);--overlay: rgb(2 6 23 / .55)}[data-theme=dark]{--bg: #0a111e;--surface: #0f1a2b;--surface-2: #132036;--surface-3: #1a2a43;--border: #1e2d45;--border-strong: #2c3e5c;--text: #e5ecf5;--text-2: #c3cfde;--muted: #8a9bb4;--faint: #5f7190;--accent: #2dd4bf;--accent-strong: #5eead4;--accent-soft: rgb(45 212 191 / .14);--accent-text: #5eead4;--on-accent: #04201d;--info: #60a5fa;--info-soft: rgb(96 165 250 / .14);--success: #4ade80;--success-soft: rgb(74 222 128 / .13);--warning: #fbbf24;--warning-soft: rgb(251 191 36 / .13);--danger: #f87171;--danger-strong: #fca5a5;--danger-soft: rgb(248 113 113 / .14);--neutral-soft: #16243a;--nav-bg: #070d18;--nav-surface: #0c1527;--nav-border: #16223a;--nav-active: #13233f;--shadow-sm: 0 1px 2px rgb(0 0 0 / .3);--shadow: 0 1px 3px rgb(0 0 0 / .35);--shadow-lg: 0 18px 44px rgb(0 0 0 / .5);--overlay: rgb(0 0 0 / .6)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-md);line-height:1.45;font-feature-settings:"cv11","ss01","tnum" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;color:var(--text)}p{margin:0 0 var(--space-2)}p:last-child{margin-bottom:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-mono);font-size:.92em}code{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 4px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}::selection{background:var(--accent-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.muted{color:var(--muted)}.small{font-size:var(--text-sm)}.strong{font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:28ch;display:inline-block;vertical-align:bottom}.break{word-break:break-all;overflow-wrap:anywhere}.text-danger{color:var(--danger)}.spacer{flex:1}.notice{color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:200px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.skip-link{position:absolute;left:-999px;top:8px;z-index:100;background:var(--surface);padding:6px 10px;border-radius:var(--radius);box-shadow:var(--shadow)}.skip-link:focus{left:8px}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav-bg);color:var(--nav-text);border-right:1px solid var(--nav-border);overflow:hidden}.sidebar-inner{display:flex;flex-direction:column;height:100%}.sidebar-brand{display:flex;align-items:center;gap:8px;height:var(--topbar-height);padding:0 var(--space-4);border-bottom:1px solid var(--nav-border)}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:7px;font-weight:700;font-size:11px;letter-spacing:.02em;background:linear-gradient(135deg,#14b8a6,#0e7490);color:#fff}.brand-name{font-weight:650;color:#fff;font-size:var(--text-lg);letter-spacing:-.01em}.brand-tag{font-size:var(--text-xs);color:var(--nav-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-2)}.nav-section+.nav-section{margin-top:var(--space-4)}.nav-heading{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--nav-muted);padding:0 var(--space-2) var(--space-1);font-weight:600}.sidebar-nav ul{list-style:none;margin:0;padding:0}.nav-link{display:flex;align-items:center;gap:10px;padding:6px var(--space-2);border-radius:var(--radius);color:var(--nav-text);font-weight:500;text-decoration:none;position:relative}.nav-link:hover{background:var(--nav-surface);color:#fff;text-decoration:none}.nav-link.active{background:var(--nav-active);color:#fff}.nav-link.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:3px;border-radius:2px;background:#2dd4bf}.nav-link svg{opacity:.85;flex:none}.sidebar-footer{border-top:1px solid var(--nav-border);padding:var(--space-3);display:grid;gap:var(--space-2)}.sidebar-user{display:flex;gap:10px;align-items:center;min-width:0}.avatar{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--nav-active);color:#5eead4;font-weight:600;font-size:var(--text-sm)}.sidebar-user-text{display:grid;min-width:0}.sidebar-user-name{color:#fff;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-email{color:var(--nav-muted);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.sidebar-footer .field-error{color:#fca5a5}.segmented{display:inline-flex;background:var(--nav-surface);border:1px solid var(--nav-border);border-radius:var(--radius);padding:2px}.segmented-item{border:0;background:transparent;color:var(--nav-muted);padding:4px 7px;border-radius:4px;cursor:pointer;display:inline-grid;place-items:center}.segmented-item.active{background:var(--nav-active);color:#fff}.sidebar-signout{color:var(--nav-text)!important}.sidebar-signout:hover{background:var(--nav-surface)!important}.shell-main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--border)}.topbar .topbar-menu{display:none}.content{flex:1;outline:none}.context-selector{display:flex;align-items:center;gap:var(--space-2);min-width:0}.context-field{display:flex;align-items:center;gap:6px;min-width:0}.context-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.context-field .select{max-width:220px;font-weight:500}.context-sep{color:var(--faint)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:60;animation:fade .15s ease-out}.drawer{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:61;background:var(--nav-bg);color:var(--nav-text);box-shadow:var(--shadow-lg);animation:slide-in .18s ease-out}.drawer-close{position:absolute;top:12px;right:10px;color:var(--nav-text)!important;z-index:1}@keyframes slide-in{0%{transform:translate(-100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.page{padding:var(--space-5) var(--space-6) var(--space-6);max-width:1680px;margin:0 auto;width:100%}.page-wide{max-width:none}.page-header{margin-bottom:var(--space-4)}.page-header-row{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-heading{min-width:0}.page-title{font-size:var(--text-2xl);line-height:1.2;letter-spacing:-.02em;font-weight:650}.page-subtitle{color:var(--muted);margin-top:4px;font-size:var(--text-md)}.page-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.title-with-badge{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 6px;padding:0;font-size:var(--text-sm);color:var(--muted)}.crumbs li{display:inline-flex;align-items:center;gap:4px}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--text)}.crumbs [aria-current=page]{color:var(--text-2);font-weight:500}.crumb-sep{color:var(--faint)}.stack{display:grid;gap:var(--space-4)}.stack-sm{display:grid;gap:var(--space-2)}.stack-xs{display:grid;gap:2px}.row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}.row.between{justify-content:space-between}.gap-sm{gap:var(--space-2)}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.align-start{align-items:start}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:var(--space-4);align-items:start}.split-main,.split-side{min-width:0}.split-side{display:grid;gap:var(--space-4)}@media(max-width:1200px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.shell{grid-template-columns:minmax(0,1fr)}.shell>.sidebar{display:none}.topbar .topbar-menu{display:inline-grid}.topbar{padding:0 var(--space-3)}.page{padding:var(--space-4) var(--space-3)}.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}.context-label{display:none}.context-field .select{max-width:34vw}}@media(min-width:901px){.drawer,.drawer-overlay{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--radius);border:1px solid transparent;font-weight:550;font-size:var(--text-md);line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .12s,border-color .12s,color .12s}.btn:hover{text-decoration:none}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn-sm{height:28px;padding:0 9px;font-size:var(--text-sm);gap:5px}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-ghost.is-active{background:var(--accent-soft);color:var(--accent-text)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-strong);border-color:var(--danger-strong)}.btn.text-danger{color:var(--danger)}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--radius);border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn-sm{width:24px;height:24px}.icon-btn-xs{width:18px;height:18px;border-radius:3px}.link-btn{border:0;background:none;padding:0;color:var(--accent-text);cursor:pointer;font:inherit}.link-btn:hover{text-decoration:underline}.input,.select,.textarea{width:100%;min-height:32px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--text-md);transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;line-height:1.45}.select{padding-right:28px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px;background-repeat:no-repeat}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:disabled,.select:disabled,.textarea:disabled,.input[readonly]{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true],.input.is-invalid{border-color:var(--danger)}.input-sm,.select-sm{min-height:28px;padding-top:3px;padding-bottom:3px;font-size:var(--text-sm)}.input-title{font-size:var(--text-xl);font-weight:650;height:38px;min-width:16ch;max-width:42ch;letter-spacing:-.01em}.secret-input{-webkit-text-security:disc}.secret-input:focus{-webkit-text-security:none}.input-icon{position:relative;display:flex;align-items:center;min-width:240px}.input-icon>svg{position:absolute;left:10px;color:var(--faint);pointer-events:none}.input-icon>.input{padding-left:30px}.input-icon>.spinner{position:absolute;right:8px}.input-group{display:flex;gap:6px;align-items:center}.input-group>.input{flex:1}.input-group>.select{width:auto}.field{display:grid;gap:4px;min-width:0}.field+.field{margin-top:var(--space-3)}.form-grid .field+.field{margin-top:0}.field-label{font-size:var(--text-sm);font-weight:600;color:var(--text-2)}.field-label-inline{font-size:var(--text-sm);color:var(--muted);font-weight:500;white-space:nowrap}.field-inline{display:flex;align-items:center;gap:6px}.field-inline+.field-inline{margin-top:0}.field-required{color:var(--danger)}.field-help{font-size:var(--text-sm);color:var(--muted)}.field-error{font-size:var(--text-sm);color:var(--danger)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3) var(--space-4)}.form-grid-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.fieldset{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4) var(--space-4);margin:0;display:grid;gap:var(--space-3);min-width:0}.legend{font-size:var(--text-sm);font-weight:650;color:var(--text);padding:0 6px;margin-left:-6px}.fieldset-head{display:flex;justify-content:space-between;gap:var(--space-2);margin-top:-6px}.checkbox{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center}.checkbox .field-help{grid-column:2}.checkbox input,.check-list input,.radio input{accent-color:var(--accent);width:15px;height:15px;margin:0}.radio-group{display:flex;flex-wrap:wrap;gap:var(--space-4)}.radio{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.check-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px var(--space-3)}.check-list label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.check-list label.is-disabled{color:var(--faint);cursor:not-allowed}details.advanced{border-top:1px dashed var(--border);padding-top:var(--space-2)}details.advanced>summary{cursor:pointer;font-size:var(--text-sm);color:var(--muted);font-weight:600;margin-bottom:var(--space-2)}.kv-editor{display:grid;gap:6px}.kv-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:6px;align-items:center}.kv-row-error{grid-column:1 / -1}.argv-editor{display:grid;gap:6px}.argv-mode{display:flex;gap:4px}.argv-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.argv-row{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto auto;gap:4px;align-items:center}.argv-index{color:var(--faint);font-size:var(--text-xs);text-align:right}.input-row{display:grid;grid-template-columns:130px minmax(0,1fr) minmax(0,1fr) auto;gap:6px;align-items:center}.badge{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1;white-space:nowrap;letter-spacing:.01em;background:var(--neutral-soft);color:var(--text-2);border:1px solid transparent;vertical-align:middle}.badge-info{background:var(--info-soft);color:var(--info)}.badge-accent{background:var(--accent-soft);color:var(--accent-text)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:transparent;color:var(--muted);border-color:var(--border)}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.6s ease-in-out infinite}.tag{display:inline-block;font-size:var(--text-xs);padding:1px 6px;margin:1px 4px 1px 0;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);font-family:var(--font-mono)}.chips{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);font-size:var(--text-sm)}.chip-button{cursor:pointer;padding:3px 10px;color:var(--text-2)}.chip-button:hover{border-color:var(--accent);color:var(--accent-text)}.chip-button code{background:transparent;border:0;padding:0;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.panel+.panel{margin-top:var(--space-4)}.stack>.panel+.panel,.grid>.panel+.panel,.split-side>.panel+.panel{margin-top:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:10px var(--space-4);border-bottom:1px solid var(--border);min-height:46px;flex-wrap:wrap}.panel-title{font-size:var(--text-md);font-weight:650}.panel-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.panel-body{padding:var(--space-4)}.panel-flush{overflow:hidden;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.panel-note{padding:var(--space-3) var(--space-4);margin:0;color:var(--muted);font-size:var(--text-sm);border-bottom:1px solid var(--border)}.panel-toolbar{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border)}.section-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:650;margin:var(--space-3) 0 var(--space-2)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.stat{display:grid;gap:2px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:inherit;text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color .12s}.stat:hover{border-color:var(--accent);text-decoration:none}.stat-label{font-size:var(--text-sm);color:var(--muted);font-weight:500}.stat-value{font-size:26px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.stat-hint{font-size:var(--text-sm);color:var(--muted)}.stat-danger .stat-value{color:var(--danger)}.readiness{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3);margin-bottom:var(--space-3)}.readiness-item{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:10px var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);border-left-width:3px}.readiness-item.is-ok{border-left-color:var(--success)}.readiness-item.is-bad{border-left-color:var(--warning)}.readiness-label{font-weight:650;font-size:var(--text-sm);min-width:70px}.readiness-detail{width:100%;font-size:var(--text-sm);color:var(--muted)}.state-bars{list-style:none;margin:0;padding:0;display:grid;gap:6px}.state-bar-link{display:grid;grid-template-columns:96px minmax(0,1fr) 56px;align-items:center;gap:var(--space-3);color:inherit;padding:2px 0}.state-bar-link:hover{text-decoration:none}.state-bar-track{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.state-bar-fill{display:block;height:100%;border-radius:999px;background:var(--faint)}.tone-queued{background:var(--info)}.tone-running{background:var(--accent)}.tone-cancelling{background:var(--warning)}.tone-succeeded{background:var(--success)}.tone-failed{background:var(--danger)}.tone-cancelled{background:var(--faint)}.banner{display:flex;gap:10px;align-items:flex-start;padding:10px var(--space-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);margin:var(--space-2) 0}.banner-icon{flex:none;margin-top:1px}.banner-text{flex:1;min-width:0;display:grid;gap:2px;font-size:var(--text-md)}.banner-title{font-weight:650}.banner-action{flex:none;align-self:center}.banner-info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.banner-info .banner-icon{color:var(--info)}.banner-success{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.banner-success .banner-icon{color:var(--success)}.banner-warning{background:var(--warning-soft);border-color:color-mix(in srgb,var(--warning) 35%,transparent)}.banner-warning .banner-icon{color:var(--warning)}.banner-danger{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.banner-danger .banner-icon{color:var(--danger)}.empty{display:grid;justify-items:center;gap:6px;padding:40px var(--space-4);text-align:center;color:var(--muted)}.empty-icon{color:var(--faint)}.empty-title{font-weight:650;color:var(--text);font-size:var(--text-lg);margin:0}.empty-text{max-width:56ch}.empty-action{margin-top:var(--space-2)}.spinner{display:inline-flex;color:var(--muted);vertical-align:middle}.loading{display:grid;gap:10px;padding:var(--space-4)}.skeleton{height:14px;border-radius:4px;background:linear-gradient(90deg,var(--surface-2) 0,var(--surface-3) 40px,var(--surface-2) 80px);background-size:400px 100%;animation:shimmer 1.2s linear infinite}.freshness{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--muted)}.freshness-warning{display:inline-flex;align-items:center;gap:5px;color:var(--warning);font-weight:500}.toasts{position:fixed;right:16px;bottom:16px;z-index:100;display:grid;gap:8px;width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:10px;align-items:flex-start;padding:10px 10px 10px 12px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:fade .15s ease-out}.toast-success svg:first-child{color:var(--success)}.toast-danger{border-left-color:var(--danger)}.toast-danger svg:first-child{color:var(--danger)}.toast-text{flex:1;display:grid;gap:2px;font-size:var(--text-md)}.toast-text span{color:var(--muted);font-size:var(--text-sm)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:50;animation:fade .12s ease-out}.modal{position:fixed;z-index:51;left:50%;top:6vh;transform:translate(-50%);width:calc(100vw - 32px);max-height:88vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:fade .12s ease-out;outline:none}.modal-sm{max-width:460px}.modal-md{max-width:600px}.modal-lg{max-width:820px}.modal-xl{max-width:1040px}.modal-header{padding:var(--space-4) 48px var(--space-3) var(--space-5);border-bottom:1px solid var(--border);display:grid;gap:4px}.modal-title{font-size:var(--text-lg);font-weight:650}.modal-description{color:var(--muted);font-size:var(--text-sm);margin:0}.modal-close{position:absolute;top:12px;right:12px}.modal>form{display:flex;flex-direction:column;min-height:0}.modal-body{padding:var(--space-4) var(--space-5);overflow-y:auto;display:grid;gap:var(--space-3);min-height:0}.modal-body .field+.field{margin-top:0}.modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);flex-wrap:wrap}.footer-hint{margin-right:auto;font-size:var(--text-sm);color:var(--muted)}.confirm-phrase{font-weight:700;color:var(--text);-webkit-user-select:all;user-select:all}.confirm-box{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3);background:var(--surface-2);display:grid;gap:var(--space-2)}.confirm-box.is-destructive{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:var(--danger-soft)}.confirm-warning{display:flex;gap:6px;align-items:center;color:var(--danger);font-weight:600;margin:0}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--space-4);overflow-x:auto}.tab{border:0;background:none;padding:8px 12px;margin-bottom:-1px;cursor:pointer;color:var(--muted);font-weight:550;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tab-count{font-size:var(--text-xs);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:0 6px;color:var(--muted)}.tabpanel{outline:none}.subnav{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--space-4);overflow-x:auto}.subnav-link{padding:8px 12px;margin-bottom:-1px;color:var(--muted);font-weight:550;border-bottom:2px solid transparent;white-space:nowrap}.subnav-link:hover{color:var(--text);text-decoration:none}.subnav-link.active{color:var(--text);border-bottom-color:var(--accent)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.panel .toolbar{margin-bottom:0}.toolbar-sep{width:1px;height:20px;background:var(--border)}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:8px var(--space-4);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--muted)}.pagination-summary{margin-right:auto;font-variant-numeric:tabular-nums}.pagination-size{display:inline-flex;align-items:center;gap:6px}.pagination-size .select{width:auto}.mono-id{display:inline-flex;align-items:center;gap:2px;color:var(--muted);font-size:var(--text-sm);max-width:100%}.mono-id .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secret-reveal{border:1px solid color-mix(in srgb,var(--warning) 40%,transparent);background:var(--warning-soft);border-radius:var(--radius);padding:var(--space-3);display:grid;gap:var(--space-2)}.secret-reveal-head{display:flex;align-items:center;gap:6px;color:var(--warning)}.secret-value{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);max-height:220px;overflow:auto}.secret-value code{background:none;border:0;padding:0;white-space:pre-wrap;word-break:break-all}.gate{min-height:100vh;display:grid;place-items:center;padding:var(--space-4);background:radial-gradient(1200px 600px at 20% -10%,var(--accent-soft),transparent),var(--bg)}.gate-card{width:min(480px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px;box-shadow:var(--shadow-lg);display:grid;gap:var(--space-3)}.gate-brand{display:flex;align-items:center;gap:8px;font-weight:650;color:var(--text-2)}.gate-icon{color:var(--accent)}.gate-title{font-size:var(--text-2xl);letter-spacing:-.02em}.gate-text{color:var(--text-2);display:grid;gap:var(--space-2)}.gate-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.gate-id{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.gate-id code{flex:1;background:none;border:0;word-break:break-all}.gate-loading{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--muted)}.transfer{display:grid;gap:6px}.progress{height:8px;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .15s linear}.picker{display:grid;gap:var(--space-3)}.picker-summary{margin:0;font-size:var(--text-sm);color:var(--text-2);background:var(--accent-soft);border-radius:var(--radius);padding:6px 10px}.cron-preview .table{border:1px solid var(--border);border-radius:var(--radius)}.is-offset-change td{background:var(--warning-soft)}.issue-list{margin:0;padding-left:18px;display:grid;gap:3px;font-size:var(--text-sm)}.table-wrap{overflow-x:auto}.table-scroll{max-height:70vh;overflow-y:auto}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-md)}.table th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);padding:7px var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:7px var(--space-3);border-bottom:1px solid var(--border);vertical-align:top}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.table th:first-child,.table td:first-child{padding-left:var(--space-4)}.table th:last-child,.table td:last-child{padding-right:var(--space-4)}.table-compact td{padding-top:5px;padding-bottom:5px}.table-compact th:first-child,.table-compact td:first-child{padding-left:var(--space-3)}.table.is-stale tbody{opacity:.6}.table tr.is-muted td{color:var(--muted)}.table tr.is-current td{background:var(--accent-soft)}.table-actions{text-align:right;white-space:nowrap}.table-actions>*+*{margin-left:2px}.row-link{font-weight:600;color:var(--text)}.row-link:hover{color:var(--accent-text)}.cell-note{display:block;font-size:var(--text-sm);color:var(--muted);margin-top:2px;max-width:60ch}.inline-icon{margin-left:6px;color:var(--accent);vertical-align:-1px}.plain-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.kv{display:grid;grid-template-columns:minmax(96px,max-content) minmax(0,1fr);gap:6px var(--space-3);margin:0;font-size:var(--text-md)}.kv dt{color:var(--muted);font-size:var(--text-sm);padding-top:1px}.kv dd{margin:0;min-width:0}.summary-strip{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.summary-strip dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}.summary-strip dd{margin:2px 0 0;font-variant-numeric:tabular-nums}.pre{margin:0;padding:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:320px;font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word}.task-details{display:grid;gap:var(--space-3)}.task-details-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.task-details-head h3{font-size:var(--text-lg)}.task-details-head .btn{margin-left:auto}.table tr.is-current td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.logs{display:grid;gap:var(--space-2)}.logs-toolbar{margin-bottom:0}.panel .logs{padding:var(--space-3) var(--space-4) var(--space-4)}.log-view{background:#0b1222;color:#dbe5f3;border-radius:var(--radius);border:1px solid #1b2742;font-family:var(--font-mono);font-size:12px;line-height:1.5;height:min(62vh,640px);overflow:auto;padding:var(--space-2) 0}.log-line{display:grid;grid-template-columns:70px minmax(60px,max-content) minmax(0,1fr);gap:var(--space-3);padding:0 var(--space-3)}.log-line:has(.log-level){grid-template-columns:70px minmax(60px,max-content) 48px minmax(0,1fr)}.log-line:hover{background:#ffffff0a}.log-time{color:#6b7d99;-webkit-user-select:none;user-select:none}.log-source{color:#5eead4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:22ch}.log-level{color:#93a4bf;text-transform:uppercase;font-size:11px}.log-text{white-space:pre-wrap;word-break:break-word}.level-error .log-text,.level-error .log-level{color:#fca5a5}.level-warn .log-text,.level-warning .log-text{color:#fcd34d}.log-empty{color:#7b8ba6;padding:var(--space-4);text-align:center}.timeline{list-style:none;margin:0;padding:var(--space-3) var(--space-4);display:grid;gap:2px}.timeline-item{display:flex;align-items:center;gap:var(--space-2);padding:5px 0;position:relative;flex-wrap:wrap}.timeline-dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--success);background:var(--surface);flex:none}.timeline-item.tone-done .timeline-dot{background:var(--success)}.timeline-item.tone-running .timeline-dot{border-color:var(--accent);animation:pulse 1.4s infinite}.timeline-item.tone-danger .timeline-dot{border-color:var(--danger);background:var(--danger)}.timeline-item[aria-current=step] .mono{font-weight:700}.revision-list{list-style:none;margin:0;padding:var(--space-2) 0;max-height:360px;overflow-y:auto}.revision-list li{display:flex;justify-content:space-between;gap:var(--space-2);padding:5px var(--space-4)}.revision-list li.is-current{background:var(--accent-soft)}.revision-list a[aria-current=page]{font-weight:650;color:var(--text)}.graph{width:100%;height:100%;min-height:360px}.graph-frame{height:min(68vh,720px);min-height:380px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.graph .react-flow{--xy-background-color: var(--surface);--xy-node-border-radius: 8px;--xy-edge-stroke: var(--border-strong);--xy-edge-stroke-selected: var(--accent);--xy-handle-background-color: var(--accent)}.graph .react-flow__edge-path{stroke-width:1.5}.graph .react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent);stroke-width:2.25}.graph .edge-cyclic .react-flow__edge-path{stroke:var(--danger);stroke-dasharray:5 4}.graph .react-flow__controls{box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden}.graph .react-flow__controls-button{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text-2);fill:currentColor}.graph .react-flow__controls-button:hover{background:var(--surface-2)}.graph .react-flow__minimap{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.graph .react-flow__attribution{background:transparent;color:var(--faint)}.task-node{width:220px;padding:8px 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow-sm);display:grid;gap:3px;font-size:var(--text-sm);border-left:3px solid var(--border-strong)}.task-node.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}.task-node.has-issues{border-left-color:var(--danger)}.task-node.state-running{border-left-color:var(--accent)}.task-node.state-queued,.task-node.state-pending{border-left-color:var(--info)}.task-node.state-succeeded{border-left-color:var(--success)}.task-node.state-failed,.task-node.state-blocked{border-left-color:var(--danger)}.task-node.state-cancelled,.task-node.state-cancelling{border-left-color:var(--warning)}.task-node-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.task-node-id{font-family:var(--font-mono);font-weight:650;font-size:12.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-node-issues{display:inline-flex;align-items:center;gap:3px;color:var(--danger);font-weight:650;font-size:var(--text-xs)}.task-node-image{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-node-image em{color:var(--danger);font-style:normal}.task-node-command{font-family:var(--font-mono);font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-node-tags{display:flex;flex-wrap:wrap;gap:2px;min-height:0}.task-node-tags:empty{display:none}.task-handle{width:9px!important;height:9px!important;border:2px solid var(--surface)!important;background:var(--accent)!important}.editor{display:grid;gap:var(--space-2)}.editor-title{display:inline-flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.editor-toolbar{padding:6px var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:0}.editor-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,460px);gap:var(--space-3);align-items:stretch}.editor-canvas{height:calc(100dvh - 320px);min-height:460px}.editor-canvas .empty{height:100%;align-content:center}.editor-inspector{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3) var(--space-3);height:calc(100dvh - 320px);min-height:460px;overflow-y:auto}.editor-inspector .tabs{position:sticky;top:calc(-1 * var(--space-2));background:var(--surface);z-index:2;margin:0 calc(-1 * var(--space-3)) var(--space-3);padding:0 var(--space-3)}.inspector{display:grid;gap:var(--space-3)}.inspector .field+.field{margin-top:0}.inspector-footer{display:flex;justify-content:flex-end;padding-top:var(--space-2);border-top:1px solid var(--border)}.json-pane,.issues-panel{display:grid;gap:var(--space-2)}.json-editor{border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.json-editor.is-invalid{border-color:var(--danger)}.json-editor.is-readonly{border-color:var(--border)}.json-editor .cm-editor{background:var(--surface)}.definition-input{display:grid;gap:6px}.definition-status{min-height:18px}@media(max-width:1100px){.editor-main{grid-template-columns:minmax(0,1fr)}.editor-canvas,.editor-inspector{height:auto;min-height:420px}.editor-canvas{height:60vh}}
