@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap";[hidden]{display:none!important}:root{--bg:#f6f8fb;--surface:#fff;--surface-raised:#fff;--surface-2:#f2f5f9;--surface-3:#e7ecf3;--line:#e1e7ef;--line-strong:#cfd8e3;--hover:#2563eb0d;--input-bg:#fff;--sidebar-bg:#eef2f7;--ink:#0e1726;--ink-muted:#5b6c80;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-ink:#fff;--btn-bg:#2563eb;--btn-bg-hover:#1d4ed8;--btn-ink:#fff;--glow:#2563eb17;--glow-2:#5566e014;--tile-hi:#2a3a52;--tile-lo:#0e1726;--brand-ink:#0e1726;--brand-blue:#3b82f6;--brand-on-ink:#fff;--amber:#9a6408;--amber-bg:#fcf1dc;--red:#a8352a;--red-bg:#fbe8e5;--green:#1f7a4a;--green-bg:#e3f4ea;--shadow-sm:0 1px 2px #0a14280d;--shadow:0 1px 2px #0a14280f, 0 8px 20px -10px #0a142829;--shadow-lg:0 1px 2px #0a14280f, 0 30px 80px -30px #0a142859;--radius:16px;--radius-sm:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#060a11;--surface:#0b121c;--surface-raised:#0e1520;--surface-2:#141d2b;--surface-3:#1b2637;--line:#1d2a3a;--line-strong:#2a3a4f;--hover:#60a5fa0f;--input-bg:#0a1019;--sidebar-bg:#0a1019;--ink:#eef3f8;--ink-muted:#8193a8;--accent:#60a5fa;--accent-strong:#93c5fd;--accent-ink:#071a33;--btn-bg:#60a5fa;--btn-bg-hover:#93c5fd;--btn-ink:#071a33;--glow:#60a5fa24;--glow-2:#6b7cff1f;--tile-hi:#24354d;--tile-lo:#0a1019;--brand-ink:#e6edf7;--brand-blue:#60a5fa;--brand-on-ink:#070b14;--amber:#f0b955;--amber-bg:#2a2010;--red:#f08a7a;--red-bg:#2c1512;--green:#6fd39b;--green-bg:#0f2a1d;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000080, 0 10px 24px -12px #000000b3;--shadow-lg:0 1px 0 #ffffff0a inset, 0 30px 80px -30px #000000d9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#060a11;--surface:#0b121c;--surface-raised:#0e1520;--surface-2:#141d2b;--surface-3:#1b2637;--line:#1d2a3a;--line-strong:#2a3a4f;--hover:#60a5fa0f;--input-bg:#0a1019;--sidebar-bg:#0a1019;--ink:#eef3f8;--ink-muted:#8193a8;--accent:#60a5fa;--accent-strong:#93c5fd;--accent-ink:#071a33;--btn-bg:#60a5fa;--btn-bg-hover:#93c5fd;--btn-ink:#071a33;--glow:#60a5fa24;--glow-2:#6b7cff1f;--tile-hi:#24354d;--tile-lo:#0a1019;--brand-ink:#e6edf7;--brand-blue:#60a5fa;--brand-on-ink:#070b14;--amber:#f0b955;--amber-bg:#2a2010;--red:#f08a7a;--red-bg:#2c1512;--green:#6fd39b;--green-bg:#0f2a1d;--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000080, 0 10px 24px -12px #000000b3;--shadow-lg:0 1px 0 #ffffff0a inset, 0 30px 80px -30px #000000d9;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Geist,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px}h1,h2,h3,h4{letter-spacing:-.015em;font-family:inherit}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.mono{font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.86em}.icon{flex-shrink:0}.auth-page{background:radial-gradient(45% 40% at 50% 38%, var(--glow), transparent 70%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:48px 16px;display:flex;position:relative;overflow:hidden}.auth-page:before,.auth-page:after{content:"";pointer-events:none;z-index:0;border-radius:50%;position:absolute}.auth-page:before{background:radial-gradient(closest-side, transparent 70%, color-mix(in srgb, var(--accent) 30%, transparent) 86%, color-mix(in srgb, var(--accent) 8%, transparent) 94%, transparent 100%);filter:blur(4px);width:1000px;height:1000px;top:-560px;right:-420px;transform:rotate(-18deg)scaleX(1.25)}.auth-page:after{background:radial-gradient(closest-side, transparent 70%, color-mix(in srgb, var(--accent) 22%, transparent) 86%, #6b7cff1a 94%, transparent 100%);filter:blur(6px);width:820px;height:820px;bottom:-560px;left:-380px;transform:rotate(24deg)scaleX(1.3)}.auth-card{z-index:1;background:0 0;border:none;flex-direction:column;gap:18px;width:100%;max-width:440px;padding:0;display:flex;position:relative}.auth-card h1{text-align:center;letter-spacing:-.03em;margin:4px 0 -6px;font-size:1.75rem;font-weight:600}.auth-card .auth-sub{text-align:center;margin:0 0 6px;font-size:.95rem;line-height:1.55}.auth-card .auth-sub a,.auth-switch a,.label-row a{color:var(--ink);font-weight:600;text-decoration:none}.auth-card .auth-sub a:hover,.auth-switch a:hover,.label-row a:hover{color:var(--accent)}.auth-switch{text-align:center;color:var(--ink-muted);margin:0;font-size:.9rem}.auth-switch:empty{display:none}.auth-card label{color:var(--ink-muted);gap:8px;font-size:.9rem}.auth-card .checkbox-label{color:var(--ink)}.label-row{justify-content:space-between;align-items:baseline;display:flex}.label-row a{color:var(--ink-muted);font-size:.85rem;font-weight:500}.auth-card input:not([type=checkbox]){width:100%;height:46px;color:var(--ink);background:color-mix(in srgb, var(--surface-2) 70%, transparent);border-radius:12px;padding:0 16px;font-size:.98rem;box-shadow:inset 0 1px #ffffff08}.auth-card input.otp-input{font-size:1.4rem}.auth-card .btn-primary{border-radius:12px;height:46px;margin-top:6px;font-size:.98rem}.auth-card .btn-primary:disabled{opacity:1;background:color-mix(in srgb, var(--surface-2) 80%, transparent);color:var(--ink-muted);box-shadow:inset 0 0 0 1px var(--line)}.auth-card .legal-note{text-align:center;margin:8px 0 0;font-size:.82rem}.auth-card .legal-note a{color:var(--ink-muted)}.password-field{display:block;position:relative}.password-field input{width:100%;padding-right:48px!important}.password-toggle{width:34px;height:34px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover{color:var(--ink);background:var(--hover)}.brand-tile{border:1px solid var(--line-strong);background:linear-gradient(160deg, var(--surface-3), var(--surface) 75%);width:60px;height:60px;box-shadow:inset 0 1px 0 #ffffff0f, 0 12px 30px -12px color-mix(in srgb, var(--accent) 45%, transparent);border-radius:16px;align-self:center;place-items:center;margin-bottom:6px;display:grid}.brand-mark{flex-shrink:0}.brand-text{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.brand-word{width:auto;display:block}.brand-tagline{letter-spacing:.02em;color:var(--ink-muted);font-size:.74rem}.shell{min-height:100vh;display:flex}.shell-sidebar{background:var(--sidebar-bg);border-right:1px solid var(--line);z-index:20;flex-direction:column;flex-shrink:0;gap:10px;width:248px;height:100vh;padding:16px 12px 14px;display:flex;position:sticky;top:0}.sidebar-top{align-items:center;gap:8px;display:flex}.sidebar-toggle{display:none!important}.shell-nav{flex-direction:column;flex:1;gap:2px;margin-top:6px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--ink-muted);align-items:center;gap:12px;padding:8px 12px;font-size:.93rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.nav-link.active{background:var(--surface-2);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.nav-link.active>.icon{color:var(--accent)}.nav-link:hover:not(.active){background:var(--hover);color:var(--ink)}.sidebar-foot{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.sidebar-brand{color:var(--brand-ink);opacity:.55;align-items:center;gap:7px;transition:opacity .15s;display:flex}.sidebar-brand:hover{opacity:1}.icon-button{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;place-items:center;transition:background-color .15s,color .15s;display:inline-grid}.icon-button:hover,.icon-button.active{background:var(--surface-2);color:var(--ink)}.menu{z-index:40;background:var(--surface-raised);border:1px solid var(--line-strong);box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;gap:1px;padding:6px;display:flex;position:absolute}.menu-label{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;padding:6px 10px 8px;font-size:.78rem;overflow:hidden}.menu-item{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:.9rem;display:flex}.menu-item:hover{background:var(--hover)}.menu-item>.icon{color:var(--ink-muted)}.menu-item-text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-sep{background:var(--line);height:1px;margin:5px 4px}.theme-menu{position:relative}.theme-popover{width:176px;bottom:calc(100% + 8px);left:0}.shell-body-col{flex-direction:column;flex:1;min-width:0;display:flex}.shell-main{width:100%;max-width:1280px;margin:0 auto;padding:44px 40px 100px}.shell-org{font-weight:700}.shell-email{color:var(--ink-muted)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-.03em;margin:0;font-size:1.95rem;font-weight:600;line-height:1.2}.page-header-actions{align-items:center;gap:8px;display:flex}.page>.page-header,.members-page>.page-header,.security-page>.page-header{margin-bottom:0}.page-back{margin:0 0 -12px;font-size:.88rem}.page-back a{color:var(--ink-muted);text-decoration:none}.page-back a:hover{color:var(--ink)}@media (width<=860px){.shell{flex-direction:column}.shell-sidebar{border-right:none;border-bottom:1px solid var(--line);width:100%;height:auto;padding:10px 12px}.sidebar-toggle{display:inline-grid!important}.shell-sidebar:not(.open) .shell-nav,.shell-sidebar:not(.open) .sidebar-foot{display:none}.shell-main{padding:28px 16px 80px}.page-header h1{font-size:1.6rem}}.page-loading{text-align:center;color:var(--ink-muted);padding:80px 40px;font-size:.94rem}.page-loading:before{content:"";border:2px solid var(--surface-3);border-top-color:var(--ink);border-radius:50%;width:24px;height:24px;margin:0 auto 16px;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.page{flex-direction:column;gap:24px;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px}.panel-head h2{margin:0 0 4px;font-size:1.08rem;font-weight:600}.panel-head p{color:var(--ink-muted);max-width:68ch;margin:0 0 20px;font-size:.9rem;line-height:1.5}.panel-head-split{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.panel-head-split h2{margin:0}.empty-state{color:var(--ink-muted);text-align:center;border:1px solid var(--line);border-radius:var(--radius);background:radial-gradient(ellipse 45% 70% at 50% 30%, var(--glow), transparent 70%), radial-gradient(ellipse 30% 60% at 62% 55%, var(--glow-2), transparent 70%), var(--surface);margin:0 0 16px;padding:40px 24px 36px;font-size:.9rem;line-height:1.5}.empty-state:before{content:"";border:1px solid var(--line-strong);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8e8ea' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M12 3 3 7.5l9 4.5 9-4.5L12 3Z'/%3E%3Cpath d='m3 12 9 4.5 9-4.5' opacity='.7'/%3E%3Cpath d='m3 16.5 9 4.5 9-4.5' opacity='.45'/%3E%3C/svg%3E") center / 24px no-repeat, linear-gradient(150deg, var(--tile-hi), var(--tile-lo) 70%);border-radius:14px;width:52px;height:52px;margin:0 auto 16px;display:block;box-shadow:inset 0 1px #ffffff29,0 10px 24px -10px #0000008c}.conn-table{border-collapse:separate;border-spacing:0;width:100%;margin-bottom:20px;font-size:.9rem}.conn-table th{text-align:left;color:var(--ink-muted);background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 14px;font-size:.8rem;font-weight:500}.conn-table th:first-child{border-left:1px solid var(--line);border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.conn-table th:last-child{border-right:1px solid var(--line);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.conn-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px}.conn-table tbody tr:last-child td{border-bottom:none}.conn-table tbody tr:hover td{background:var(--hover)}label{flex-direction:column;flex:1;gap:6px;font-size:.86rem;font-weight:500;display:flex}.field-hint{color:var(--ink-muted);font-size:.78rem;font-weight:400;line-height:1.45}input,select,textarea{font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--input-bg);color:inherit;padding:8px 12px;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:color-mix(in srgb, var(--ink-muted) 75%, transparent)}textarea{resize:vertical;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.82rem}input:focus,select:focus,textarea:focus{border-color:color-mix(in srgb, var(--accent) 60%, var(--line-strong));box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);outline:none}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}select[multiple]{min-height:96px}.form-row{flex-wrap:wrap;gap:16px;margin-bottom:14px;display:flex}.form-row>*{min-width:160px}.kv-editor{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.kv-label{font-size:.85rem;font-weight:500}.kv-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.kv-row>input{flex:180px;min-width:0}.kv-row>input.kv-narrow{flex:0 0 96px}.kv-editor>.btn-ghost,.kv-row>.btn-ghost{align-self:flex-start}.db-status{grid-template-columns:max-content 1fr;gap:4px 16px;margin:8px 0;font-size:.85rem;display:grid}.db-status dt{color:var(--ink-muted)}.db-status dd{margin:0}.conn-form{border-top:1px solid var(--line);flex-direction:column;padding-top:20px;display:flex}.conn-form>.btn-primary,.conn-form>.btn-ghost{align-self:flex-start}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.tab{font:inherit;color:var(--ink-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 14px;font-size:.92rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.tab:hover:not(.active){color:var(--ink)}.tab.active{color:var(--ink);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.tab-danger.active{color:var(--amber);background:var(--amber-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--amber) 30%, transparent)}.tab-rec{letter-spacing:.02em;background:var(--surface-3);color:var(--ink-muted);border-radius:6px;padding:2px 7px;font-size:.66rem;font-weight:600}.tab.active .tab-rec{background:var(--bg);color:var(--ink)}.btn-primary{font:inherit;border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-ink);cursor:pointer;box-shadow:0 0 0 1px color-mix(in srgb, var(--btn-bg) 40%, transparent), 0 8px 24px -10px color-mix(in srgb, var(--btn-bg) 70%, transparent);border:none;justify-content:center;align-items:center;gap:6px;padding:8px 15px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background-color .15s,transform .1s;display:inline-flex}.btn-primary:hover{background:var(--btn-bg-hover)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-ghost{font:inherit;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:.88rem;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-ghost:hover{background:var(--surface-3);border-color:color-mix(in srgb, var(--accent) 50%, var(--line-strong))}.btn-ghost:disabled{opacity:.45;cursor:not-allowed}.btn-danger:hover{color:var(--red);border-color:color-mix(in srgb, var(--red) 45%, transparent);background:var(--red-bg)}.pill{white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:.74rem;font-weight:500}.pill-primary{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent-strong)}.pill-muted{background:var(--surface-2);color:var(--ink-muted);box-shadow:inset 0 0 0 1px var(--line)}.banner{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:4px;padding:12px 16px;font-size:.9rem;font-weight:500}.banner-success{background:var(--green-bg);color:var(--green);border-color:color-mix(in srgb, var(--green) 25%, transparent)}.banner-error{background:var(--red-bg);color:var(--red);border-color:color-mix(in srgb, var(--red) 25%, transparent)}.banner-warning{background:var(--amber-bg);color:var(--amber);border-color:color-mix(in srgb, var(--amber) 25%, transparent)}.form-error{color:var(--red);margin:0;font-size:.86rem}.form-success{color:var(--green);margin:0;font-size:.86rem}.register-flow{flex-direction:column;gap:16px;display:flex}.manual-repo-row{gap:8px;display:flex}.manual-repo-row input{flex:1}.candidate-list{flex-direction:column;gap:6px;display:flex}.candidate{font:inherit;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;text-align:left;align-items:center;gap:12px;padding:11px 14px;transition:border-color .15s,background-color .15s;display:flex}.candidate:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:var(--surface-2)}.candidate.active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.candidate .muted{color:var(--ink-muted);margin-left:auto}.stack-list{flex-direction:column;gap:14px;display:flex}.stack-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:18px 20px;transition:border-color .15s}.stack-card:hover{border-color:var(--line-strong)}.stack-card-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.live-run-badges{flex-wrap:wrap;gap:6px;display:flex}.stack-card-title{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stack-card-title b{font-size:1.02rem}.stack-card-title .muted{color:var(--ink-muted);font-size:.82rem}.stack-card-empty{align-items:center;gap:12px;display:flex}.stack-card-empty .empty-state{text-align:left;border-radius:var(--radius-sm);background:var(--surface-2);border-style:dashed;flex:1;margin:0;padding:12px 16px}.stack-card-empty .empty-state:before{display:none}.run-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.stack-name-cell{overflow-wrap:anywhere}.stack-actions-cell{text-align:right;white-space:nowrap}.pill.layer-foundation{background:var(--surface-3);color:var(--ink-muted)}.pill.layer-ingress{background:color-mix(in srgb, #2f5f9e 16%, var(--surface));color:#2f5f9e}.pill.layer-dependency{background:color-mix(in srgb, #7c3f96 16%, var(--surface));color:#7c3f96}.pill.layer-service{background:color-mix(in srgb, var(--accent) 16%, var(--surface));color:var(--accent-strong)}.pill.layer-cross_cutting{background:color-mix(in srgb, var(--amber) 16%, var(--surface));color:var(--amber)}.pill.layer-org_wide{background:var(--amber);color:var(--amber-bg)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .pill.layer-ingress{color:#9db8e0}:root:not([data-theme=light]) .pill.layer-dependency{color:#d3a8ec}}:root[data-theme=dark] .pill.layer-ingress{color:#9db8e0}:root[data-theme=dark] .pill.layer-dependency{color:#d3a8ec}.template-outputs{background:var(--surface-2);border-radius:var(--radius-sm);flex-wrap:wrap;gap:5px 16px;margin-bottom:14px;padding:10px 14px;display:flex}.service-unit-editor{border-top:1px dashed var(--line);margin-top:6px;padding-top:14px}.checkbox-label{align-items:center;flex-direction:row!important;gap:8px!important}.checkbox-label input[type=checkbox]{width:auto;accent-color:var(--accent)}.muted{color:var(--ink-muted)}.run-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#0009;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.run-panel{background:var(--surface-raised);border-radius:var(--radius);width:100%;max-width:880px;max-height:82vh;box-shadow:var(--shadow-lg);border:1px solid var(--line-strong);flex-direction:column;display:flex;overflow:hidden}.run-panel-head{border-bottom:1px solid var(--line);background:var(--surface-raised);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.run-panel-head b{margin-right:10px}.pill.status-queued{background:var(--surface-3);color:var(--ink-muted)}.pill.status-running{background:color-mix(in srgb, var(--accent) 16%, var(--surface));color:var(--accent-strong);padding-left:18px;position:relative}.pill.status-running:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;margin-top:-3px;animation:1.2s ease-in-out infinite pulse;position:absolute;top:50%;left:8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.pill.status-succeeded{background:var(--green-bg);color:var(--green)}.pill.status-failed{background:var(--red-bg);color:var(--red)}.pill.pill-attached{background:var(--surface-3);color:var(--ink);border:1px dashed var(--line)}.pill.pill-live{background:var(--green-bg);color:var(--green)}.pill.pill-dead{background:var(--red-bg);color:var(--red)}.inventory-section{margin-top:18px}.inventory-section h3{margin:0 0 6px;font-size:.85rem}.inventory-table td,.inventory-table th{vertical-align:top}.inventory-table td.inv-check{width:28px}.inventory-table tr.inv-tracked td{color:var(--ink-muted)}.inventory-table select{min-width:0}.inventory-scroll{overflow-x:auto}.inv-warning{color:var(--amber)}.live-run-badge{cursor:pointer;font:inherit;letter-spacing:inherit;border:none;transition:opacity .15s}.live-run-badge:hover{opacity:.8}.run-log{white-space:pre-wrap;word-break:break-word;color:#d4d4d8;background:#060607;flex:1;margin:0;padding:18px 20px;font-family:Geist Mono,SFMono-Regular,Consolas,monospace;font-size:.82rem;line-height:1.6;overflow-y:auto}.shell-panel{max-width:960px;height:70vh}.shell-body{background:#060607;flex:1;min-height:0;padding:12px 16px}.shell-body .xterm{height:100%}.confirm-panel{background:var(--surface-raised);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow-lg);border:1px solid var(--line-strong);padding:22px}.confirm-panel.confirm-danger{border-color:color-mix(in srgb, var(--red) 35%, var(--line))}.confirm-title{margin:0 0 8px;font-size:1.02rem}.confirm-message{color:var(--ink-muted);margin:0 0 20px;line-height:1.55}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.stacks-shell{align-items:flex-start;gap:24px;display:flex}.project-sidebar{background:0 0;flex-shrink:0;width:232px;padding:4px 0;position:sticky;top:24px}.project-sidebar-head{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);margin:0 0 10px;padding:0 2px;font-size:.74rem;font-weight:500}.new-project-form{gap:6px;margin-bottom:12px;display:flex}.new-project-form input{flex:1;min-width:0;padding:7px 10px;font-size:.85rem}.new-project-form button{padding:7px 12px}.project-list{flex-direction:column;gap:2px;margin:0 0 12px;padding:0;list-style:none;display:flex}.project-list-item{text-align:left;border-radius:var(--radius-sm);width:100%;font:inherit;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;font-size:.9rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.project-list-item:hover{background:var(--hover);color:var(--ink)}.project-list-item.active{background:var(--surface-2);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}.project-list-item .muted{font-size:.78rem;font-weight:400}.project-sidebar-divider{border:none;border-top:1px solid var(--line);margin:4px 0 10px}.project-list-item.org-wide.active{background:var(--amber-bg);color:var(--amber);box-shadow:inset 2px 0 0 var(--amber)}.project-main{flex-direction:column;flex:1;gap:24px;min-width:0;display:flex}@media (width<=860px){.stacks-shell{flex-direction:column;align-items:stretch}.project-sidebar{width:auto;position:static}}.panel-wide{padding-left:20px;padding-right:20px}.edit-stack-panel{max-width:760px;max-height:86vh}.edit-stack-body{flex:1;min-height:0;padding:18px 20px;overflow-y:auto}.connection-runs-panel{max-width:760px;max-height:82vh}.connection-runs-body{flex:1;min-height:0;padding:18px 20px;overflow-y:auto}.trial-banner{background:var(--surface-2);border-bottom:1px solid var(--line);color:var(--ink-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:8px 18px;font-size:.86rem;display:flex}.trial-banner b{color:var(--ink);font-weight:600}.trial-banner .btn-ghost{padding:4px 11px;text-decoration:none}.auth-sub{color:var(--ink-muted);margin:-6px 0 6px;font-size:.92rem}.upgrade{max-width:980px;margin:0 auto}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0;display:grid}.plan-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-content:start;gap:14px;padding:22px;display:grid}.plan-card-featured{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.plan-card h3{margin:0}.plan-price{align-items:baseline;gap:8px;display:flex}.plan-price b{letter-spacing:-.03em;font-size:2rem}.plan-price span{color:var(--ink-muted);font-size:.88rem}.plan-card ul{color:var(--ink-muted);gap:6px;margin:0;padding-left:1.1em;font-size:.92rem;display:grid}.upgrade-note{gap:6px;font-size:.9rem;font-weight:600;display:grid}.upgrade-note textarea{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--input-bg);color:var(--ink);resize:vertical;padding:10px 12px;font-weight:400}.members-page{gap:20px;max-width:1080px;margin:0 auto;display:grid}.invite-link{border-radius:var(--radius-sm);border:1px solid color-mix(in srgb, var(--green) 30%, transparent);background:var(--green-bg);gap:8px;margin-top:16px;padding:14px 16px;display:grid}.invite-link-row{gap:8px;display:flex}.invite-link-row input{flex:1;min-width:0;font-size:.82rem}.removed-list{gap:4px;margin:0;padding-left:1.1em;display:grid}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.org-switcher{flex:1;min-width:0;position:relative}.org-trigger{border-radius:var(--radius-sm);width:100%;color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:7px 10px;font-size:.93rem;font-weight:600;display:flex}.org-trigger:hover,.org-trigger[aria-expanded=true]{background:var(--hover)}.org-trigger>.icon{color:var(--ink-muted);margin-left:auto}.org-trigger-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.org-avatar{color:#fff;background:linear-gradient(150deg,#60a5fa,#1d4ed8);border-radius:6px;flex-shrink:0;place-items:center;font-weight:600;line-height:1;display:inline-grid;box-shadow:inset 0 1px #fff3}.org-menu{width:264px;top:calc(100% + 6px);left:0}.org-new{align-items:center;gap:6px;padding:4px;display:flex}.org-new input{flex:1;min-width:0;padding:6px 10px}.org-new .btn-primary{padding:6px 12px}.org-error{white-space:nowrap;font-size:.8rem;position:absolute;top:100%;left:0}.usage-line{color:var(--ink-muted);font-size:.88rem}.usage-line b{color:var(--ink)}.btn-google{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface-2) 80%, transparent);height:46px;color:var(--ink);font-weight:600;font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:12px;padding:0 16px;font-weight:600;text-decoration:none;transition:border-color .15s,background-color .15s;display:inline-flex}.btn-google:hover:not(:disabled){border-color:color-mix(in srgb, var(--accent) 50%, var(--line-strong));background:var(--surface-2)}.btn-google:disabled{cursor:not-allowed;opacity:.55}.auth-or{color:var(--ink-muted);align-items:center;gap:16px;font-size:.88rem;display:flex}.auth-or:before,.auth-or:after{content:"";background:var(--line);flex:1;height:1px}.otp-input{letter-spacing:.3em;text-align:center;font-size:1.4rem}.link-button{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0 4px;text-decoration:underline}.security-page{gap:20px;max-width:860px;margin:0 auto;display:grid}.factor{border-top:1px solid var(--line);gap:12px;padding:16px 0;display:grid}.factor h3{margin:0 0 4px}.factor-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.factor-setup{border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:flex-start;gap:20px;padding:16px;display:flex}.factor-setup img{background:#fff;border-radius:8px;padding:6px}.factor-steps{flex:1;gap:10px;min-width:240px;display:grid}.factor-steps label{gap:6px;font-weight:600;display:grid}.confirm-off{border:1px solid color-mix(in srgb, var(--red) 30%, transparent);border-radius:var(--radius-sm);padding:16px}.mfa-prompt{border-radius:var(--radius);border:1px solid var(--line-strong);background:radial-gradient(ellipse 60% 120% at 0% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%), var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.mfa-prompt h3{margin:0 0 4px}.mfa-prompt p{color:var(--ink-muted);margin:0}.perm-groups{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:14px;display:grid}.perm-group{border:1px solid var(--line);border-radius:var(--radius-sm);flex-direction:column;gap:8px;min-width:0;margin:0;padding:10px 14px 12px;display:flex}.perm-group legend{align-items:baseline;gap:10px;padding:0 6px;font-weight:600;display:flex}.perm-item{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.perm-item input{margin-top:3px}.perm-item code{color:var(--ink-muted);font-size:.78em}.perm-item-off{opacity:.55;cursor:not-allowed}.perm-desc{color:var(--ink-muted);font-size:.88em;display:block}.perm-summary{color:var(--ink-muted);max-width:420px;font-size:.9em}.getting-started{margin-bottom:18px}.gs-progress{background:var(--surface-2);border-radius:99px;height:6px;margin-top:8px;overflow:hidden}.gs-progress span{background:var(--accent);height:100%;transition:width .3s;display:block}.gs-steps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.gs-step{border-top:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.gs-check{border:2px solid var(--line);width:24px;height:24px;color:var(--ink-muted);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.gs-step.done .gs-check{background:var(--green-bg);border-color:var(--green);color:var(--green)}.gs-step.done .gs-title{color:var(--ink-muted);text-decoration:line-through}.gs-step.next .gs-check{border-color:var(--accent);color:var(--accent)}.gs-title{font-weight:600}.gs-desc{color:var(--ink-muted);font-size:.9em}.gs-reopen{margin-bottom:12px}@media (width<=560px){.gs-step{grid-template-columns:28px 1fr}.gs-step>:last-child{grid-column:2;justify-self:start}}.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
