*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color:#111827;background-color:#f8fafc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}#root{min-height:100vh}.rp-prov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.3125rem}.rp-prov-btn{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.375rem .125rem;border:1px solid #e2e8f0;border-radius:7px;background:#fff;cursor:pointer;transition:all .12s;font-family:inherit;min-width:0}.rp-prov-btn:hover:not(.rp-off){background:#f8fafc}.rp-prov-btn.rp-on{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 1px #3b82f6}.rp-prov-btn.rp-off{opacity:.35;cursor:default;pointer-events:none}.rp-prov-btn svg{width:14px;height:14px;flex-shrink:0}.rp-prov-btn span{font-size:.6875rem;font-weight:500;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-prov-btn.rp-on span{color:#3b82f6;font-weight:600}.rp-reg-cols{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.rp-reg-col{min-width:0}.rp-reg-col+.rp-reg-col{border-left:1px solid #eef1f5}.rp-col-hdr{font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;padding:.375rem .375rem .1875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-rg-toggle{display:flex;align-items:center;width:100%;border:none;background:none;padding:.25rem .375rem;cursor:pointer;font-family:inherit;transition:background .08s}.rp-rg-toggle:hover{background:#f1f5f9}.rp-rg-chev{width:0;height:0;flex-shrink:0;margin-right:.25rem;border-left:4px solid #94a3b8;border-top:3px solid transparent;border-bottom:3px solid transparent;transition:transform .12s}.rp-rg-open>.rp-rg-toggle .rp-rg-chev{transform:rotate(90deg)}.rp-rg-name{font-size:.6875rem;font-weight:600;color:#475569;flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-rg-cnt{font-size:.5625rem;font-weight:500;color:#94a3b8;margin-left:.25rem;flex-shrink:0;font-variant-numeric:tabular-nums}.rp-rg-dimmed>.rp-rg-toggle{opacity:.35;cursor:default;pointer-events:none}.rp-rg-body{display:none}.rp-rg-open>.rp-rg-body{display:block}.rp-ri{display:block;width:100%;padding:.1875rem .375rem .1875rem .9375rem;font-family:inherit;font-size:.6875rem;font-weight:500;color:#111827;background:none;border:none;cursor:pointer;text-align:left;border-radius:0;transition:background .08s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.rp-ri:hover:not(.rp-off){background:#f1f5f9}.rp-ri.rp-on{background:#eff6ff;color:#3b82f6;font-weight:600}.rp-ri.rp-off{color:#c0c7d0;cursor:default;pointer-events:none}.rp-ri .rp-rc{font-weight:400;color:#64748b;font-size:.625rem}.rp-ri.rp-off .rp-rc{color:#c0c7d0}.rp-ri.rp-on .rp-rc{color:#3b82f6;opacity:.7}.rp-sel-bar{display:none;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.375rem;padding:.375rem .5rem;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc}.rp-sel-bar.rp-sel-on{display:flex}.rp-sel-left{min-width:0}.rp-sel-bar .rp-sn{font-weight:600;font-size:.8125rem}.rp-sel-bar .rp-ss{color:#94a3b8;margin-left:.25rem;font-size:.75rem}.rp-sel-right{flex-shrink:0;display:flex;align-items:center}.rp-zone-sel{font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.6875rem;color:#64748b;font-variant-numeric:tabular-nums;padding:.1875rem 1.5rem .1875rem .375rem;border:1px solid #e2e8f0;border-radius:4px;background-color:#fff;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .375rem center;max-width:190px}.rp-zone-sel:focus{outline:none;border-color:#3b82f6}.rp-zone-label{font-family:SF Mono,Cascadia Code,Fira Code,monospace;font-size:.75rem;color:#64748b;font-variant-numeric:tabular-nums}@media(max-width:420px){.rp-prov-grid{gap:.25rem}.rp-prov-btn span{font-size:.625rem}.rp-prov-btn svg{width:12px;height:12px}.rp-reg-cols{grid-template-columns:1fr 1fr}.rp-reg-col:nth-child(3),.rp-reg-col:nth-child(4){border-top:1px solid #eef1f5}.rp-reg-col:nth-child(3){border-left:0}.rp-sel-bar{flex-wrap:wrap}}.app{min-height:100vh;display:flex;flex-direction:column;background:#f8fafc}.header{background:#0f172a;color:#f8fafc;padding:0 2rem;height:56px;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;width:100%;display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.125rem;font-weight:600;color:#f8fafc;text-decoration:none;letter-spacing:-.025em}.header nav{display:flex;gap:.25rem}.header nav a{color:#94a3b8;text-decoration:none;font-size:.875rem;font-weight:500;padding:.375rem .75rem;border-radius:6px;transition:color .15s,background .15s}.header nav a:hover{color:#f8fafc;background:#ffffff14}.main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.page-header h1{font-size:1.5rem;font-weight:600;color:#0f172a;letter-spacing:-.025em}.back-link{color:#64748b;text-decoration:none;font-size:.8125rem;font-weight:500;display:inline-flex;align-items:center;gap:.25rem;margin-bottom:.5rem;transition:color .15s}.back-link:hover{color:#0f172a}.btn{padding:.5rem 1rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;transition:all .15s;line-height:1.4}.btn-primary{background:#0f172a;color:#f8fafc;border-color:#0f172a}.btn-primary:hover{background:#1e293b;border-color:#1e293b}.btn-primary:disabled{background:#94a3b8;border-color:#94a3b8;cursor:not-allowed}.btn-pulsing{animation:btn-pulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes btn-pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-secondary{background:#fff;color:#374151;border-color:#d1d5db}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-secondary:disabled{color:#9ca3af;border-color:#e5e7eb;background:#f9fafb;cursor:not-allowed}.btn-danger{background:#fff;color:#dc2626;border-color:#fca5a5}.btn-danger:hover{background:#fef2f2;border-color:#f87171}.btn-danger:disabled{color:#d1d5db;border-color:#e5e7eb;background:#fff;cursor:not-allowed}.btn-sm{padding:.3125rem .625rem;font-size:.8125rem;border-radius:6px}.env-search{margin-bottom:1rem}.env-search-input{width:100%;max-width:400px;padding:.5rem .75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;background:#f8fafc}.env-search-input:focus{outline:none;border-color:#2563eb}.environments-rows{display:flex;flex-direction:column}.environment-row{display:flex;align-items:center;gap:1rem;padding:.875rem 1.25rem;border-bottom:1px solid #e2e8f0;text-decoration:none;color:inherit;transition:background .1s}.environment-row:first-child{border-top:1px solid #e2e8f0}.environment-row:hover{background:#f8fafc}.env-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.env-row-name{font-weight:600;font-size:.9375rem;color:#1e293b}.environment-row:hover .env-row-name{color:#2563eb}.env-row-desc{color:#64748b;font-size:.8125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.env-row-stages{display:flex;gap:.375rem;flex-shrink:0}.env-row-creator{color:#64748b;font-size:.8125rem;flex-shrink:0;min-width:5rem}.env-row-meta{color:#94a3b8;font-size:.75rem;flex-shrink:0;min-width:5rem;text-align:right}.env-row-actions{flex-shrink:0}.stage-badge{padding:.125rem .5rem;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge{padding:.125rem .5rem;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.setup{background:#fed7aa;color:#9a3412}.card-footer{color:#94a3b8;font-size:.75rem}.empty-state{text-align:center;padding:3rem 2rem;background:#fff;border-radius:10px;border:1px dashed #d1d5db;color:#64748b;font-size:.875rem}.empty-state p{margin-bottom:1rem}.empty-state.prominent{padding:2rem;border:1px solid #fed7aa;background:#fffbeb;display:flex;flex-direction:column;align-items:center;gap:1rem}.warning-banner{background:#fffbeb;border:1px solid #fbbf24;border-radius:8px;padding:.75rem 1rem;color:#92400e;font-size:.875rem;font-weight:500}.add-destination-form{padding:1rem 0}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.provisioning-progress{padding:1rem 0}.provisioning-progress h4{margin:0 0 1rem;font-size:.95rem}.progress-steps{display:flex;gap:.25rem;margin-bottom:.75rem}.progress-step{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#94a3b8;padding:.25rem .5rem;border-radius:4px;background:#f1f5f9}.progress-step.done{color:#16a34a;background:#f0fdf4}.progress-step.active{color:#2563eb;background:#eff6ff;font-weight:600}.progress-step.failed{color:#dc2626;background:#fef2f2}.step-indicator{width:1.2rem;height:1.2rem;border-radius:50%;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700}.progress-step.done .step-indicator{background:#16a34a;color:#fff}.progress-step.active .step-indicator{background:#2563eb;color:#fff}.progress-step.failed .step-indicator{background:#dc2626;color:#fff}.progress-message{font-size:.8rem;color:#64748b}.loading{text-align:center;padding:2rem;color:#64748b;font-size:.875rem}.error{text-align:center;padding:2rem;color:#dc2626;font-size:.875rem}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.875rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.error-dismiss{background:none;border:none;color:#991b1b;font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:.6}.error-dismiss:hover{opacity:1}select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23475569'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;padding-right:2rem;cursor:pointer}.form{max-width:480px;background:#fff;padding:1.5rem;border-radius:10px;border:1px solid #e2e8f0}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.375rem;font-weight:500;font-size:.8125rem;color:#374151}.form-group input,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;color:#111827;background-color:#fff;transition:border-color .15s,box-shadow .15s}.form-group select{width:100%;padding:.5rem 2rem .5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;color:#111827;background-color:#fff;transition:border-color .15s,box-shadow .15s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.form-group .hint{display:block;margin-top:.25rem;font-size:.75rem;color:#94a3b8}.form-group .hint.warning{color:#b45309}.form-actions{display:flex;gap:.75rem;justify-content:flex-end}.subdomain-input-group{display:flex;align-items:center}.subdomain-input-group input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1}.subdomain-suffix{background:#f1f5f9;padding:.5rem .75rem;border:1px solid #d1d5db;border-left:none;border-radius:0 8px 8px 0;color:#64748b;font-size:.8125rem;white-space:nowrap}.domain-preview{margin-top:.75rem;padding:.75rem;background:#f0f9ff;border-radius:8px;font-size:.8125rem;border:1px solid #bae6fd}.domain-preview-label{display:block;font-weight:500;margin-bottom:.375rem;color:#0369a1;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.domain-preview-urls{display:flex;flex-direction:column;gap:.25rem}.domain-preview-urls span{color:#334155;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.environment-detail .description{color:#64748b;margin-bottom:.75rem;font-size:.875rem}.environment-detail .metadata{display:flex;gap:1.5rem;color:#94a3b8;font-size:.8125rem;margin-bottom:1.5rem}.domain-info{background:#fff;padding:1rem 1.25rem;border-radius:10px;border:1px solid #e2e8f0;margin-bottom:1rem}.domain-info h3{font-size:.8125rem;font-weight:600;margin-bottom:.625rem;color:#374151;text-transform:uppercase;letter-spacing:.05em}.domain-list{display:flex;gap:1.5rem}.domain-item{display:flex;gap:.5rem;align-items:center}.domain-label{font-weight:500;color:#64748b;font-size:.8125rem}.domain-value{font-family:SF Mono,Fira Code,monospace;background:#f1f5f9;padding:.1875rem .5rem;border-radius:4px;color:#334155;font-size:.8125rem}.domain-link{font-family:SF Mono,Fira Code,monospace;background:#f0f9ff;padding:.1875rem .5rem;border-radius:4px;color:#2563eb;text-decoration:none;font-size:.8125rem;transition:background .15s}.domain-link:hover{background:#dbeafe}.base-domain-options{display:flex;gap:.375rem;flex-wrap:wrap}.base-domain-chip{padding:.25rem .625rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc;font-size:.75rem;color:#475569;cursor:pointer;font-family:monospace}.base-domain-chip:hover{border-color:#94a3b8;background:#f1f5f9}.base-domain-chip.selected{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8}.domain-conflict-warning{font-size:.75rem;color:#dc2626;margin-top:.25rem}.domain-hint-warning{font-size:.75rem;color:#d97706;margin-top:.25rem}.form-group label.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;font-size:.8125rem;margin-bottom:0}.form-group label.checkbox-label input[type=checkbox]{width:auto;padding:0;border:revert;border-radius:revert;background:revert;margin:0;cursor:pointer;flex-shrink:0;accent-color:#3b82f6}.projects-section{background:#fff;padding:1.25rem 1.5rem;border-radius:10px;border:1px solid #e2e8f0;margin-bottom:1rem}.project-cards{display:flex;flex-direction:column;gap:.5rem}.project-card-mini{display:flex;justify-content:space-between;align-items:center;padding:.625rem .75rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.project-card-mini .project-info{display:flex;flex-direction:column;gap:.125rem}.project-card-mini .project-info strong{font-size:.8125rem;font-weight:600;color:#0f172a}.project-card-mini .project-repo{font-size:.75rem;color:#64748b}.add-project-form{margin-bottom:.75rem;padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.start-plan{margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.start-plan-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.start-plan-header h3{margin:0;font-size:.9rem;color:#0f172a}.start-plan-mode{display:inline-flex;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.start-plan-mode-btn{background:#fff;border:none;padding:.3rem .7rem;font-size:.75rem;color:#64748b;cursor:pointer}.start-plan-mode-btn+.start-plan-mode-btn{border-left:1px solid #e2e8f0}.start-plan-mode-btn.active{background:#eff6ff;color:#1d4ed8;font-weight:600}.start-plan-help{margin:.4rem 0 .6rem;font-size:.75rem;color:#64748b}.start-plan-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.start-plan-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.start-plan-row.not-started strong{color:#94a3b8}.start-plan-position{width:1.25rem;text-align:center;font-size:.75rem;font-weight:600;color:#64748b}.start-plan-label{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;font-size:.8125rem;color:#0f172a;cursor:pointer}.start-plan-badge{font-size:.65rem;color:#64748b;background:#e2e8f0;border-radius:8px;padding:0 6px}.start-plan-move{display:inline-flex;gap:.2rem}.start-plan-move button{background:#fff;border:1px solid #e2e8f0;border-radius:4px;color:#64748b;font-size:.6rem;width:1.6rem;height:1.4rem;cursor:pointer}.start-plan-move button:disabled{opacity:.35;cursor:default}.start-plan-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:.6rem;flex-wrap:wrap}.start-plan-note{font-size:.72rem;color:#94a3b8}.start-plan-warning{font-size:.72rem;color:#dc2626}.networking{background:#fff;padding:1.25rem 1.5rem;border-radius:8px;border:1px solid #e2e8f0}.networking h3{margin:0;font-size:.9rem;color:#0f172a}.networking-help{margin:.4rem 0 .9rem;font-size:.75rem;color:#64748b;max-width:60rem}.networking-project+.networking-project{margin-top:.9rem}.networking-project-name{font-size:.8125rem;font-weight:600;color:#0f172a;margin-bottom:.35rem}.networking-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.45rem .75rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.networking-row+.networking-row{margin-top:.35rem}.networking-port{min-width:6.5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8125rem;color:#0f172a}.networking-envs{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.networking-env-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;background:#eff6ff;color:#1d4ed8;border-radius:10px;padding:.1rem .5rem}.networking-env-chip button{background:none;border:none;color:#1d4ed8;cursor:pointer;padding:0;font-size:.85rem;line-height:1}.networking-env-add{font-size:.75rem;padding:.15rem .3rem;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b}.networking-row-new{border-color:#f59e0b;background:#fffbeb}.networking-protocol{margin-left:.4rem;font-size:.65rem;color:#64748b;background:#e2e8f0;border-radius:6px;padding:0 5px;font-family:inherit}.networking-new-badge{margin-left:.35rem;font-size:.65rem;color:#92400e;background:#fde68a;border-radius:6px;padding:0 5px;font-family:inherit}.networking-ways{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:0}.networking-way{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.networking-way-label{width:10.5rem;font-size:.75rem;color:#475569}.networking-lb-options{display:inline-flex;align-items:center;gap:.4rem;font-size:.75rem;color:#475569}.networking-lb-options input[type=number]{width:4.5rem;font-size:.75rem;padding:.1rem .3rem;border:1px solid #e2e8f0;border-radius:6px}.networking-lb-options select,.networking-lb-options .networking-health{font-size:.75rem;padding:.1rem 1.75rem .1rem .3rem;border:1px solid #e2e8f0;border-radius:6px;background-color:#fff}.networking-lb-options .networking-health{width:7.5rem}.networking-lb-options label{display:inline-flex;align-items:center;gap:.2rem}.networking-version{margin-left:.4rem;font-size:.72rem;color:#64748b;font-weight:500}.networking-warning{font-size:.75rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.5rem .75rem;margin-bottom:.75rem}.network-table{width:100%;border-collapse:collapse;font-size:.8125rem}.network-table th{text-align:left;font-size:.72rem;font-weight:500;color:#64748b;padding:.35rem .5rem;border-bottom:1px solid #e2e8f0}.network-table td{padding:.45rem .5rem;vertical-align:top}.network-table tbody{border-bottom:1px solid #f1f5f9}.network-table tbody.network-port-new{background:#fffbeb}.network-closed td:first-child{color:#94a3b8}.network-who,.network-how{display:flex;flex-direction:column;gap:.3rem;align-items:flex-start}.network-how select,.network-protocol select{font-size:.75rem;padding:.15rem 1.75rem .15rem .3rem;border:1px solid #e2e8f0;border-radius:6px;background-color:#fff}.network-port{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.network-origin{margin-left:.5rem;font-family:inherit;font-size:.68rem;color:#94a3b8}.network-actions{width:1%;white-space:nowrap;text-align:right}.network-remove{background:none;border:none;color:#94a3b8;font-size:1rem;cursor:pointer;line-height:1}.network-remove:hover{color:#dc2626}.network-add td{padding-top:0}.network-add-btn{background:none;border:none;color:#1d4ed8;font-size:.75rem;cursor:pointer;padding:0}.network-muted{color:#94a3b8}.network-table tbody.network-editing{background:#f8fafc}.port-form{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.6rem}.port-form-empty{font-size:.8125rem;color:#64748b}.port-form-option{position:relative;display:flex;flex-direction:column;gap:.45rem;padding:.6rem 2rem .6rem .75rem;border:1px solid #f1f5f9;border-radius:6px;background:#f8fafc}.port-form-option .network-remove{position:absolute;top:.45rem;right:.5rem}.port-form-field{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.8125rem}.port-form-field>label{width:6.5rem;color:#475569;font-weight:500}.port-form-field select,.port-form-field input[type=text],.port-form-inline input[type=number]{font-size:.8125rem;padding:.2rem .4rem;border:1px solid #cbd5e1;border-radius:6px;background-color:#fff}.port-form-field select{padding-right:1.75rem}.port-form-inline{display:inline-flex;align-items:center;gap:.6rem;color:#475569}.port-form-inline input[type=number]{width:5rem}.port-form-check{display:inline-flex;align-items:center;gap:.25rem}.port-form-port{display:flex;flex-direction:column;gap:.45rem;padding-top:.6rem;border-top:1px solid #f1f5f9}.port-form-hint{font-size:.72rem;color:#94a3b8}.port-form-actions{display:flex;justify-content:flex-end}.lb-region-body{padding:.6rem .875rem}.networking-lb{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e2e8f0}.networking-lb h3{margin:0;font-size:.9rem}.networking-history{margin-top:.9rem}.networking-history ul{margin:.5rem 0 0;padding-left:1.1rem;font-size:.75rem;color:#475569}.deploy-network h4{margin:0}.networking-note{font-size:.72rem;color:#94a3b8}.stages-section{background:#fff;padding:1.25rem 1.5rem;border-radius:10px;border:1px solid #e2e8f0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{font-size:1rem;font-weight:600;color:#0f172a}.add-stage-form{display:flex;gap:.75rem;margin-bottom:1rem;padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.add-stage-form select{padding:.5rem 2rem .5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem}.stages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.75rem}.stage-selector{display:flex;align-items:center;gap:0;margin-bottom:0;border-bottom:2px solid #e2e8f0}.stage-selector-tab{padding:.625rem 1.5rem;background:none;border:none;cursor:pointer;font-size:.875rem;font-weight:600;color:#94a3b8;letter-spacing:.03em;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;text-transform:uppercase}.stage-selector-tab:hover{color:#475569}.stage-selector-tab.beta.active{color:#92400e;border-bottom-color:#f59e0b}.stage-selector-tab.prod.active{color:#166534;border-bottom-color:#22c55e}.stage-selector-tab.add{color:#94a3b8;font-weight:500;font-size:.8125rem;margin-left:auto}.stage-selector-tab.add:hover{color:#2563eb}.add-stage-inline-tab{display:flex;align-items:center;gap:.5rem;margin-left:auto;padding:.375rem 0}.stage-type-select{padding:.25rem 1.75rem .25rem .5rem;font-size:.8125rem;border:1px solid #d1d5db;border-radius:4px}.stage-type-label{font-size:.8125rem;font-weight:600;color:#374151}.stages-stack{display:flex;flex-direction:column;gap:1rem}.stage-panel{background:#fff;border:1px solid #e2e8f0;border-left:4px solid #e2e8f0;border-radius:10px;padding:1.25rem 1.5rem}.stage-panel.beta{border-left-color:#f59e0b;background:#fffdf7}.stage-panel.prod{border-left-color:#22c55e;background:#f9fef9}.stage-panel-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:0;flex-wrap:wrap;gap:.5rem}.stage-panel-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.stage-badge{display:inline-block;font-size:.75rem;font-weight:700;letter-spacing:.05em;padding:.2rem .6rem;border-radius:4px;text-transform:uppercase}.stage-badge.beta{background:#fef3c7;color:#92400e}.stage-badge.prod{background:#dcfce7;color:#166534}.stage-infra-summary{font-size:.8125rem;color:#64748b}.stage-name{font-size:.875rem;font-weight:600;color:#0f172a}.stage-lb-link{margin-bottom:.75rem;font-size:.8125rem}.stage-lb-link a{color:#2563eb;text-decoration:none;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.stage-lb-link a:hover{text-decoration:underline}.stage-tabs{display:flex;gap:0;margin-bottom:1rem;border-bottom:1px solid #e2e8f0;overflow-x:auto}.stage-tabs .tab{padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:.8125rem;color:#64748b;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap}.stage-tabs .tab:hover{color:#334155}.stage-tabs .tab.active{color:#0f172a;border-bottom-color:#2563eb;font-weight:600}.stage-tab-content{min-height:60px}.activity-timeline{padding:.5rem 0}.empty-activity,.empty-instances{text-align:center;padding:1.5rem;color:#94a3b8;font-size:.8125rem}.activity-entry{display:flex;gap:.75rem;border-left:2px solid #e2e8f0;margin-left:5px;padding:.625rem 0 .625rem 1.25rem;position:relative}.activity-dot{position:absolute;left:-5px;top:.875rem;width:10px;height:10px;border-radius:50%;flex-shrink:0}.activity-dot.success{background:#22c55e}.activity-dot.failure{background:#ef4444}.activity-content{flex:1;min-width:0}.activity-header-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.8125rem}.activity-type-badge{font-size:.6875rem;font-weight:700;letter-spacing:.05em;padding:.1rem .4rem;border-radius:3px;text-transform:uppercase}.activity-type-badge.deploy{background:#dbeafe;color:#1e40af}.activity-type-badge.scale{background:#fef3c7;color:#92400e}.activity-type-badge.provision{background:#e0e7ff;color:#3730a3}.activity-status.success{color:#16a34a;font-weight:600;font-size:.75rem}.activity-status.failure{color:#dc2626;font-weight:600;font-size:.75rem}.activity-summary{color:#334155;font-weight:500}.activity-time{color:#94a3b8;font-size:.75rem;margin-left:auto;white-space:nowrap}.activity-message{font-size:.75rem;color:#64748b;margin-top:.25rem}.activity-reason{font-size:.75rem;color:#94a3b8;font-style:italic;margin-top:.125rem}.load-more-btn{margin-top:.5rem;margin-left:1.5rem}.instance-list{margin-top:1rem}.instance-summary{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;margin-bottom:.5rem;color:#475569}.instance-count{font-weight:600;color:#16a34a}.instance-total{color:#94a3b8}.instance-table-wrapper{overflow-x:auto}.instance-table{width:100%;border-collapse:collapse;font-size:.8125rem}.instance-table th{text-align:left;padding:.375rem .75rem;font-weight:600;color:#475569;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.instance-table td{padding:.375rem .75rem;color:#334155;border-bottom:1px solid #f1f5f9}.instance-table td.mono{font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.status-badge{display:inline-block;font-size:.6875rem;font-weight:600;padding:.1rem .4rem;border-radius:3px;text-transform:capitalize}.status-badge.running,.status-badge.ready{background:#dcfce7;color:#166534}.status-badge.pending,.status-badge.creating_network,.status-badge.creating_security,.status-badge.creating_template,.status-badge.creating_scaling_group{background:#fef3c7;color:#92400e}.status-badge.failed,.status-badge.terminated{background:#fee2e2;color:#991b1b}.health-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.health-dot.healthy{background:#22c55e}.health-dot.unhealthy{background:#ef4444}.ssh-btn{border:1px solid #c7d2fe;background:#eef2ff;color:#4338ca;cursor:pointer;font-size:.75rem;font-weight:600;padding:.2rem .5rem;border-radius:4px;white-space:nowrap;min-width:52px;display:inline-flex;align-items:center;justify-content:center;gap:.3rem}.ssh-btn:hover{background:#e0e7ff;border-color:#a5b4fc}.ssh-spinner{display:inline-block;width:10px;height:10px;border:2px solid #a5b4fc;border-top-color:#4338ca;border-radius:50%;animation:ssh-spin .6s linear infinite;flex-shrink:0}@keyframes ssh-spin{to{transform:rotate(360deg)}}.ssh-tooltip{background:#1e1e2e;color:#e2e8f0;border-radius:6px;padding:.5rem .65rem;font-size:.75rem;white-space:nowrap;box-shadow:0 4px 12px #00000040;min-width:160px;position:relative}.ssh-tooltip:before{content:"";position:absolute;top:-4px;left:50%;margin-left:-4px;width:8px;height:8px;background:#1e1e2e;transform:rotate(45deg)}.ssh-tooltip-dismiss{position:absolute;top:2px;right:4px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.875rem;line-height:1;padding:2px 4px}.ssh-tooltip-dismiss:hover{color:#e2e8f0}.ssh-status-line{display:flex;align-items:center;gap:.4rem;padding:.15rem 0}.ssh-step-icon{display:inline-block;width:12px;height:12px;flex-shrink:0}.ssh-step-spinner{border:2px solid #475569;border-top-color:#a5b4fc;border-radius:50%;animation:ssh-spin .6s linear infinite}.ssh-step-waiting{border:2px solid #475569;border-radius:50%}.ssh-step-done{background:#22c55e;border-radius:50%}.ssh-step-failed{background:#ef4444;border-radius:50%}.infra-details{padding:.5rem 0}.infra-grid{display:grid;grid-template-columns:140px 1fr;gap:.25rem 1rem;font-size:.8125rem;margin:0}.infra-grid dt{color:#64748b;font-weight:500;padding:.25rem 0}.infra-grid dd{color:#1e293b;margin:0;padding:.25rem 0;word-break:break-all}.infra-grid dd.mono{font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.cloud-resources{margin-top:1rem;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.cloud-resources summary{padding:.5rem .75rem;font-size:.8125rem;font-weight:600;color:#475569;cursor:pointer;background:#f8fafc}.cloud-resources summary:hover{background:#f1f5f9}.cloud-resources .infra-grid{padding:.75rem}.cloud-resources .infra-grid>span{display:contents}.infra-link{color:#2563eb;text-decoration:none;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.infra-link:hover{text-decoration:underline}.loading-text,.error-text{font-size:.8125rem;color:#94a3b8;padding:1rem 0;text-align:center}.error-text{color:#ef4444}.stage-card{padding:1rem;border-radius:10px;border:1px solid;background:#fff}.stage-card.beta{background:#fffbeb;border-color:#fde68a}.stage-card.prod{background:#f0fdf4;border-color:#bbf7d0}.stage-card.add-stage-card{border:2px dashed #d1d5db;background:#f9fafb;display:flex;align-items:center;justify-content:center;min-height:200px}.add-stage-button{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;color:#6b7280;font-size:.9rem;padding:1.5rem;border-radius:8px;transition:color .15s,background .15s;width:100%;height:100%;justify-content:center}.add-stage-button:hover{color:#374151;background:#f3f4f6}.add-stage-icon{font-size:2rem;font-weight:300;line-height:1}.add-stage-inline{width:100%;text-align:center}.add-stage-inline h3{margin:0 0 .75rem;font-size:1rem;color:#374151}.add-stage-inline .form-group{margin-bottom:.75rem}.auto-stage-label{font-size:1.1rem;font-weight:600;color:#374151;margin:0 0 .75rem}.stage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.stage-header h3{font-size:.875rem;font-weight:600;letter-spacing:.025em}.stage-info{font-size:.75rem;color:#94a3b8;margin-top:.75rem;padding-top:.5rem;border-top:1px solid rgba(0,0,0,.06)}.stage-actions{display:flex;gap:.375rem}.artifacts-section{margin-top:.75rem}.artifacts-list{display:flex;flex-direction:column;gap:.5rem}.no-artifacts{text-align:center;padding:1rem;color:#94a3b8;font-size:.8125rem;background:#00000005;border-radius:8px}.artifact-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:8px;padding:.625rem .75rem}.artifact-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.artifact-header h4{font-size:.8125rem;font-weight:600;color:#0f172a}.artifact-details{font-size:.75rem}.artifact-row{display:flex;gap:.5rem;margin-bottom:.125rem}.artifact-row .label{color:#94a3b8;min-width:50px;font-size:.75rem}.artifact-row .value{color:#334155;word-break:break-all;font-size:.75rem}.artifact-row .image-ref{font-family:SF Mono,Fira Code,monospace;font-size:.6875rem}.artifact-row .tag{font-weight:600;color:#059669}.artifact-row .digest{font-family:SF Mono,Fira Code,monospace;font-size:.6875rem;color:#94a3b8}.artifact-row .commit-link{color:#2563eb;text-decoration:none;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.artifact-row .commit-link:hover{text-decoration:underline}.deploy-artifact-form{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem;margin-bottom:.75rem}.deploy-artifact-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.deploy-artifact-form .form-group{margin-bottom:.75rem}.deploy-artifact-form .form-group label{font-size:.75rem;margin-bottom:.25rem}.deploy-artifact-form .form-group input{padding:.4375rem .625rem;font-size:.8125rem}.deploy-artifact-form .form-actions{margin-top:.75rem;padding-top:.625rem;border-top:1px solid #e2e8f0}.admin-login{display:flex;justify-content:center;align-items:center;min-height:60vh}.login-card{background:#fff;padding:2rem;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 4px 6px -1px #0000000d;width:100%;max-width:360px}.login-card h2{margin:0 0 1.5rem;font-size:1.125rem;font-weight:600;color:#0f172a}.login-card form{display:flex;flex-direction:column;gap:.75rem}.login-card input{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.login-card input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.login-card button{padding:.5rem 1rem;background:#0f172a;color:#f8fafc;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.login-card button:hover{background:#1e293b}.login-card button:disabled{background:#94a3b8;cursor:not-allowed}.login-error{color:#dc2626;font-size:.8125rem}.admin-page{max-width:1200px}.admin-tabs{display:flex;gap:0;margin-bottom:1.5rem;border-bottom:1px solid #e2e8f0;overflow-x:auto}.admin-tabs .tab{padding:.5rem 1rem;background:none;border:none;cursor:pointer;font-size:.8125rem;font-weight:500;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap}.admin-tabs .tab:hover{color:#334155}.admin-tabs .tab.active{color:#0f172a;border-bottom-color:#0f172a;font-weight:600}.credential-form{background:#fff;padding:1.5rem;border-radius:10px;border:1px solid #e2e8f0;max-width:560px}.credential-form-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.375rem}.credential-form-header h2{font-size:1.125rem;font-weight:600;color:#0f172a;margin:0}.configured-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;background:#dcfce7;color:#166534;border-radius:100px;font-size:.6875rem;font-weight:600;letter-spacing:.025em}.credential-form h2{margin-bottom:.375rem;font-size:1.125rem;font-weight:600;color:#0f172a}.btn-saved{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;cursor:default}.credential-form .form-description{color:#64748b;margin-bottom:1rem;font-size:.8125rem;line-height:1.6}.setup-instructions{margin-bottom:1.25rem}.setup-instructions details{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:.8125rem}.setup-instructions summary{padding:.625rem .75rem;cursor:pointer;font-weight:500;color:#334155;-webkit-user-select:none;user-select:none}.setup-instructions summary:hover{color:#0f172a}.setup-instructions ol{padding:0 .75rem .75rem 2rem;margin:0;color:#475569;line-height:1.8}.setup-instructions a{color:#2563eb;text-decoration:none}.setup-instructions a:hover{text-decoration:underline}.setup-instructions .setup-note{padding:.625rem .75rem;margin:.25rem 0 .75rem;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;color:#92400e;font-size:.8125rem;line-height:1.6}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;padding:.625rem .75rem;border-radius:8px;margin-bottom:.75rem;font-size:.8125rem}.settings-page{max-width:960px}.settings-layout{display:flex;gap:2.5rem;align-items:flex-start}.settings-nav{display:flex;flex-direction:column;flex-shrink:0;width:160px;gap:2px;position:sticky;top:1rem}.settings-nav-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:none;border-radius:6px;font-size:.875rem;color:#475569;cursor:pointer;font-weight:500;transition:background .15s,color .15s}.settings-nav-item:hover{background:#f1f5f9;color:#0f172a}.settings-nav-item.active{background:#e2e8f0;color:#0f172a;font-weight:600}.settings-main{flex:1;min-width:0}.settings-section{margin-bottom:2rem}.settings-section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem}.settings-section-header h2{font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:.25rem}.settings-section-desc{font-size:.8125rem;color:#64748b;line-height:1.5}.settings-inline-form{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;margin-bottom:1.25rem}.settings-form-row{display:flex;gap:1.5rem;align-items:flex-start}.settings-form-name{flex:0 0 280px}.settings-form-scopes{flex:1}.settings-form-actions{display:flex;gap:.5rem;margin-top:1rem}.settings-table{width:100%;border-collapse:collapse;font-size:.8125rem}.settings-table th{text-align:left;padding:.5rem .75rem;font-weight:600;color:#475569;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e2e8f0}.settings-table th:first-child,.settings-table td:first-child{padding-left:0}.settings-table th:last-child,.settings-table td:last-child{padding-right:0}.settings-table td{padding:.5rem .75rem;color:#334155;border-bottom:1px solid #f1f5f9;vertical-align:middle}.settings-table td.mono{font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.settings-table select{padding:.375rem 1.75rem .375rem .5rem;border:1px solid #d1d5db;border-radius:6px;font-size:.8125rem;color:#111827;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23475569'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:border-color .15s,box-shadow .15s}.settings-table select:hover{border-color:#94a3b8}.settings-table select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.settings-table .table-actions{text-align:right}.scope-badges{display:flex;flex-wrap:wrap;gap:.25rem}.scope-badge{display:inline-block;font-size:.6875rem;font-weight:500;padding:.125rem .4rem;border-radius:3px;background:#e0f2fe;color:#0369a1;text-transform:capitalize}.text-muted{color:#94a3b8}.scope-selector{display:flex;flex-direction:column;gap:.375rem}.form-group label.scope-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.8125rem;line-height:1.5;margin-bottom:0;font-weight:400}.form-group .scope-option input[type=checkbox]{width:auto;padding:0;border:revert;border-radius:revert;background:revert;margin:0;cursor:pointer;flex-shrink:0}.scope-option-label{font-weight:500;color:#334155}.scope-option-desc{color:#64748b}.api-key-created{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.api-key-created-label{font-size:.8125rem;color:#92400e;margin-bottom:.5rem;font-weight:500}.api-key-token-row{display:flex;align-items:center;gap:.5rem}.api-key-token{flex:1;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;background:#fef3c7;padding:.5rem .75rem;border-radius:6px;word-break:break-all;color:#78350f}.input-with-toggle{display:flex;gap:.375rem}.input-with-toggle input{flex:1}.toggle-visibility{padding:.4375rem .75rem;background:#f1f5f9;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;font-size:.8125rem;color:#475569;transition:background .15s}.toggle-visibility:hover{background:#e2e8f0}.form-metadata{margin-top:1rem;padding-top:.75rem;border-top:1px solid #e2e8f0;font-size:.75rem;color:#94a3b8}.credential-panel{max-width:560px}.credential-panel h2{margin-bottom:.375rem;font-size:1.125rem;font-weight:600;color:#0f172a}.credential-panel h3{margin-bottom:.75rem;font-size:.9375rem;font-weight:600;color:#334155}.credential-list{margin-bottom:1.5rem}.credential-card{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:.75rem 1rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:.5rem;transition:border-color .15s}.credential-card:hover{border-color:#cbd5e1}.credential-info{display:flex;flex-direction:column;gap:.125rem}.credential-info strong{font-size:.875rem;font-weight:600;color:#0f172a}.credential-id{font-size:.6875rem;color:#94a3b8;font-family:SF Mono,Fira Code,monospace}.credential-date{font-size:.75rem;color:#64748b}.credential-actions{display:flex;gap:.375rem}.credential-region{font-size:.75rem;color:#64748b}.dns-step{margin-bottom:1.25rem;padding:1.25rem;background:#fff;border-radius:10px;border:1px solid #e2e8f0}.dns-step h3{margin-bottom:.75rem;font-size:.9375rem;font-weight:600;color:#0f172a}.dns-step.disabled{opacity:.5;pointer-events:none}.dns-step .step-hint{color:#64748b;font-style:italic;font-size:.8125rem}.dns-step .form-hint{margin-bottom:.75rem;color:#64748b;font-size:.8125rem}.dns-step .form-hint a{color:#2563eb;text-decoration:none}.dns-step .form-hint a:hover{text-decoration:underline}.dns-step .form-row{display:flex;gap:.75rem}.dns-step .form-row .form-group{flex:1}.dns-step .inline-form{margin-top:.75rem}.test-result{margin-top:.5rem;padding:.5rem .75rem;border-radius:8px;font-size:.8125rem}.test-result.success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.test-result.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.status-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.status-success{background:#dcfce7;color:#166534}.status-badge.status-warning{background:#fef3c7;color:#92400e}.status-badge.status-error{background:#fef2f2;color:#991b1b}.status-not-installed{background:#f1f5f9;color:#64748b}.status-pending{background:#fef3c7;color:#92400e}.status-ready,.status-active{background:#dcfce7;color:#166534}.status-failed{background:#fef2f2;color:#991b1b}.status-disabled{background:#f1f5f9;color:#64748b}.dns-status-info{margin-top:.75rem;padding:.75rem;background:#fef3c7;border-radius:8px;font-size:.8125rem;border:1px solid #fde68a}.dns-status-info .hint{margin-top:.375rem;color:#92400e;font-size:.75rem}.dns-ready-info{margin-top:.75rem;padding:.75rem;background:#f0fdf4;border-radius:8px;font-size:.8125rem;border:1px solid #bbf7d0}.dns-ready-info ul{margin-top:.375rem;margin-left:1.25rem}.dns-ready-info code{background:#0000000f;padding:.0625rem .25rem;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.destination-info{margin-top:.625rem;padding-top:.5rem;border-top:1px solid rgba(0,0,0,.05);font-size:.75rem}.destination-info .destination-type{font-weight:600;color:#475569;margin-bottom:.125rem;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em}.destination-info .destination-detail{color:#64748b;margin-left:0}.destination-info .destination-detail span{display:block;font-size:.75rem}.destination-form{margin-top:.75rem;padding:1rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.destination-form h4{margin-bottom:.75rem;font-size:.875rem;font-weight:600;color:#334155}.destination-form .form-group{margin-bottom:.75rem}.destination-form .form-group:last-child{margin-bottom:0}.add-stage-form-expanded{background:#fff;padding:1.25rem;border-radius:10px;border:1px solid #e2e8f0;margin-bottom:1rem}.add-stage-form-expanded .form-group{margin-bottom:1rem}.add-stage-form-expanded .form-actions{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.cluster-selector{margin-bottom:1.25rem}.cluster-selector label{display:block;margin-bottom:.375rem;font-weight:500;font-size:.8125rem}.cluster-selector select{width:100%;max-width:400px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem}.infra-config-form{background:#fff;padding:1.25rem;border-radius:10px;border:1px solid #e2e8f0}.cluster-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.cluster-header h3{font-size:1rem;font-weight:600;color:#0f172a}.cluster-region{color:#64748b;font-size:.8125rem}.connectivity-status{margin-bottom:1rem;font-size:.8125rem}.connectivity-status .status-checking{color:#64748b}.connectivity-status .status-connected{color:#166534;background:#f0fdf4;padding:.375rem .75rem;border-radius:8px;border:1px solid #bbf7d0}.connectivity-status .status-error{color:#991b1b;background:#fef2f2;padding:.375rem .75rem;border-radius:8px;border:1px solid #fecaca}.infra-component{padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.625rem}.component-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem}.toggle-label{display:flex;align-items:center;gap:.625rem;cursor:pointer}.toggle-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.toggle-text{font-weight:500;font-size:.875rem}.component-description{color:#64748b;font-size:.8125rem;margin:0}.autoscaler-settings{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.infra-status-panel{background:#fff;padding:1.25rem;border-radius:10px;border:1px solid #e2e8f0}.infra-components{display:flex;flex-direction:column;gap:.625rem;margin-top:.75rem}.component-name{font-weight:600;font-size:.875rem;color:#0f172a}.component-details{margin-top:.25rem;font-size:.75rem;color:#64748b;display:flex;flex-direction:column;gap:.125rem}.deploying-notice{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:.625rem .75rem;border-radius:8px;margin-bottom:.75rem;font-size:.8125rem}.modal-overlay{position:fixed;inset:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-width:480px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #00000026;border:1px solid #e2e8f0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0}.modal-content.modal-lg{max-width:640px;padding-bottom:1rem}.modal-content.modal-lg .project-selector-v2{padding:1rem 1.25rem}.modal-header h3{font-size:1rem;font-weight:600;color:#0f172a;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#94a3b8;padding:.25rem;border-radius:6px;line-height:1;transition:color .15s}.modal-close:hover{color:#0f172a}.modal-body{padding:0 1.25rem 1rem;font-size:.875rem;color:#334155;line-height:1.5}.modal-body p{margin:0}.modal-footer{padding:.75rem 1.25rem 1rem;display:flex;justify-content:flex-end;gap:.5rem}.close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#94a3b8;padding:.25rem;border-radius:6px;line-height:1;transition:color .15s,background .15s}.close-btn:hover{color:#0f172a;background:#f1f5f9}.autoscaling-form-modal{padding:0}.autoscaling-form-modal form{padding:1.25rem}.autoscaling-form-modal .policy-status{padding:.625rem 1.25rem;background:#f8fafc;display:flex;align-items:center;gap:.75rem;border-bottom:1px solid #e2e8f0}.autoscaling-form-modal .status-message{font-size:.8125rem;color:#64748b}.autoscaling-form-modal .form-group{margin-bottom:.75rem}.autoscaling-form-modal .form-group label{display:block;margin-bottom:.375rem;font-weight:500;font-size:.8125rem}.autoscaling-form-modal .form-group input,.autoscaling-form-modal .form-group textarea{width:100%;padding:.4375rem .625rem;border:1px solid #d1d5db;border-radius:8px;font-size:.8125rem}.autoscaling-form-modal .form-group textarea{font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.autoscaling-form-modal .form-actions{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid #e2e8f0;display:flex;gap:.5rem;justify-content:flex-end}.autoscaling-form-modal .form-metadata{padding:.625rem 1.25rem;background:#f8fafc;border-top:1px solid #e2e8f0}.artifact-wrapper{position:relative}.artifact-autoscaling{margin-top:.375rem}.autoscaling-badge{padding:.25rem .625rem;border-radius:100px;font-size:.6875rem;font-weight:600;border:none;cursor:pointer;transition:all .15s;letter-spacing:.025em}.autoscaling-badge.badge-not-configured{background:#f1f5f9;color:#64748b;border:1px dashed #cbd5e1}.autoscaling-badge.badge-not-configured:hover{background:#e2e8f0;color:#334155}.autoscaling-badge.badge-disabled{background:#f1f5f9;color:#94a3b8}.autoscaling-badge.badge-pending{background:#fef3c7;color:#92400e}.autoscaling-badge.badge-active{background:#dcfce7;color:#166534}.autoscaling-badge.badge-failed{background:#fef2f2;color:#991b1b}.deploy-form{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1rem;margin-bottom:.75rem}.deploy-form h4{margin-bottom:.75rem;font-size:.875rem;font-weight:600;color:#0f172a}.deploy-grid-table{width:100%;table-layout:fixed;border-collapse:collapse;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;font-size:.8125rem}.deploy-grid-table thead th{text-align:left;padding:.5rem .75rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0}.deploy-grid-table tbody tr{border-bottom:1px solid #e2e8f0}.deploy-grid-table tbody tr:last-child{border-bottom:none}.deploy-grid-table tbody tr.has-version{background:#f0fdf4}.deploy-grid-table td{padding:.625rem .75rem;vertical-align:middle}.deploy-grid-project{width:18%}.deploy-grid-project-name{font-weight:600;color:#0f172a;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.deploy-grid-current{width:360px}.deploy-grid-current-info{display:flex;flex-direction:column;gap:.25rem}.deploy-grid-current-tag{font-weight:600;color:#0f172a;font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.deploy-grid-current-commit .commit-sha{font-family:SF Mono,Fira Code,monospace;font-size:.75rem;margin-right:.375rem;color:#0369a1;text-decoration:none}.deploy-grid-current-commit .commit-sha:hover{text-decoration:underline}.deploy-grid-current-msg{color:#64748b;font-size:.75rem}.deploy-grid-current-count{font-size:.6875rem;color:#64748b}.deploy-grid-current-commits{margin-top:.125rem;font-size:.75rem;max-height:120px;overflow-y:auto}.deploy-grid-not-deployed{color:#94a3b8;font-size:.75rem;font-style:italic}.deploy-grid-select{width:35%}.deploy-dropdown-wrapper{position:relative;display:flex;align-items:center;gap:.25rem}.deploy-dropdown-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.375rem .5rem;font-size:.75rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#0f172a;overflow:hidden;cursor:pointer;text-align:left}.deploy-dropdown-trigger:hover{border-color:#94a3b8}.deploy-dropdown-trigger.has-selection{border-color:#059669;background:#f0fdf4}.deploy-dropdown-placeholder{color:#94a3b8}.deploy-dropdown-selected{display:flex;align-items:center;gap:.375rem;min-width:0;overflow:hidden}.deploy-dropdown-selected-tag{font-weight:600;font-family:SF Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deploy-dropdown-selected-sha{font-family:SF Mono,Fira Code,monospace;color:#64748b;font-size:.6875rem}.deploy-dropdown-arrow{font-size:.5rem;color:#94a3b8;margin-left:.375rem;flex-shrink:0}.deploy-dropdown-clear{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1rem;padding:0 .25rem;line-height:1;flex-shrink:0}.deploy-dropdown-clear:hover{color:#dc2626}.deploy-dropdown-menu{position:absolute;top:100%;left:0;min-width:100%;width:max-content;max-width:32rem;z-index:50;margin-top:2px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #0000001a;max-height:320px;overflow-y:auto}.deploy-dropdown-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f1f5f9}.deploy-dropdown-item:last-child{border-bottom:none}.deploy-dropdown-item:hover{background:#f8fafc}.deploy-dropdown-item.selected{background:#eff6ff;border-left:3px solid #0f172a}.deploy-dropdown-item.deployed{background:#f0fdf4}.deploy-dropdown-item-line1{display:flex;align-items:center;gap:.375rem;white-space:nowrap}.deploy-dropdown-item-tag{font-weight:600;font-size:.8125rem;font-family:SF Mono,Fira Code,monospace;color:#0f172a}.deploy-dropdown-item-commit{margin-top:.125rem;line-height:1.4;font-size:.75rem}.deploy-dropdown-item-sha{font-family:SF Mono,Fira Code,monospace;font-size:.6875rem;color:#0369a1;margin-right:.375rem}.deploy-dropdown-item-msg{color:#64748b}.deploy-dropdown-item-count{font-size:.6875rem;color:#64748b;margin-left:auto}.deploy-dropdown-item-commits{margin-top:.125rem;font-size:.75rem;max-height:120px;overflow-y:auto}.deploy-dropdown-commit-row{display:flex;align-items:baseline;gap:.375rem;padding:.0625rem 0;line-height:1.4}.deploy-grid-loading{color:#94a3b8;font-size:.75rem;animation:pulse-loading 1.5s ease-in-out infinite}@keyframes pulse-loading{0%,to{opacity:1}50%{opacity:.4}}.deploy-grid-error{color:#dc2626;font-size:.75rem}.image-tag-list{max-height:240px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}.image-tag-option{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.image-tag-option:last-child{border-bottom:none}.image-tag-option:hover{background:#f8fafc}.image-tag-option.selected{background:#eff6ff;border-color:#bfdbfe}.image-tag-option .tag-name{font-weight:500;font-size:.8125rem;color:#0f172a;display:flex;align-items:center;gap:.375rem}.image-tag-option .badge-new{background:#0f172a;color:#f8fafc;font-size:.5625rem;padding:.0625rem .3125rem;border-radius:100px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.image-tag-option .tag-date{font-size:.75rem;color:#94a3b8}.project-selector-v2{display:flex;flex-direction:column;gap:.75rem}.selector-toolbar{display:flex;align-items:center;gap:.75rem}.selector-search{flex:1;padding:.375rem .625rem;border:1px solid #e2e8f0;border-radius:6px;font-size:.8125rem;outline:none;transition:border-color .15s}.selector-search:focus{border-color:#94a3b8}.selector-toolbar .org-badge{font-size:.8125rem;font-weight:600;color:#0f172a;background:#f1f5f9;padding:.25rem .625rem;border-radius:6px}.toggle-label{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label input[type=checkbox]{accent-color:#0f172a}.package-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem}.package-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.625rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .15s,box-shadow .15s}.package-card:hover:not(.added){border-color:#94a3b8}.package-card.added{opacity:.5;background:#f8fafc}.package-card-body{min-width:0}.package-name{font-size:.8125rem;font-weight:600;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.package-meta{font-size:.6875rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge-added{font-size:.6875rem;color:#64748b;background:#f1f5f9;padding:.125rem .5rem;border-radius:100px;white-space:nowrap}.deploy-step{margin-bottom:1rem}.deploy-step-label{display:block;font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.deploy-project-grid{display:flex;flex-wrap:wrap;gap:.5rem}.deploy-project-card{padding:.5rem .75rem;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.deploy-project-card:hover{border-color:#94a3b8}.deploy-project-card.selected{border-color:#0f172a;background:#f0f4ff}.deploy-project-name{font-size:.8125rem;font-weight:600;color:#0f172a}.deploy-project-repo{font-size:.6875rem;color:#94a3b8}.deploy-project-current{font-size:.6875rem;color:#64748b;margin-top:.25rem;font-family:SF Mono,Fira Code,monospace}.version-list{max-height:320px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}.version-card{padding:.625rem .75rem;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:background .1s}.version-card:last-child{border-bottom:none}.version-card:hover{background:#f8fafc}.version-card.selected{background:#eff6ff;border-left:3px solid #0f172a}.version-card.deployed{background:#f0fdf4}.badge-deployed{font-size:.625rem;font-weight:600;color:#16a34a;background:#dcfce7;padding:.0625rem .375rem;border-radius:4px;margin-left:.375rem;text-transform:uppercase;letter-spacing:.03em}.version-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.version-tag{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.version-tag-name{font-weight:600;font-size:.8125rem;color:#0f172a}.version-aliases{display:flex;gap:.25rem;flex-wrap:wrap}.version-alias{font-size:.6875rem;color:#64748b;background:#f1f5f9;padding:.0625rem .375rem;border-radius:4px}.version-date{font-size:.6875rem;color:#94a3b8;white-space:nowrap}.version-commit{display:flex;align-items:baseline;gap:.5rem;margin-top:.25rem}.commit-sha{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.6875rem;color:#6366f1;background:#eef2ff;padding:.0625rem .375rem;border-radius:4px;white-space:nowrap;text-decoration:none}.commit-sha:hover{text-decoration:underline;background:#e0e7ff}.commit-msg{font-size:.75rem;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-shapes-panel{max-width:none}.node-shapes-panel h2{margin-bottom:.375rem;font-size:1.125rem;font-weight:600;color:#0f172a}.node-shapes-panel .panel-description{color:#64748b;font-size:.8125rem;margin-bottom:1.25rem;line-height:1.5}.node-shapes-table-wrapper{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.node-shapes-table{width:100%;border-collapse:collapse;font-size:.8125rem;white-space:nowrap}.node-shapes-table thead{background:#f8fafc}.node-shapes-table th{padding:.625rem 1rem;text-align:left;font-weight:600;color:#64748b;font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid #e2e8f0}.node-shapes-table th.num{text-align:right}.node-shapes-table td{padding:.5rem 1rem;text-align:left;border-bottom:1px solid #f1f5f9;color:#334155}.node-shapes-table td.num{text-align:right;font-variant-numeric:tabular-nums;color:#475569}.node-shapes-table tbody tr:hover{background:#f8fafc}.node-shapes-table tbody tr:last-child td{border-bottom:none}.node-shapes-table .shape-name code{font-size:.8125rem;font-weight:600;color:#0f172a;background:none;padding:0}.node-shapes-table .category-cell{text-transform:capitalize;color:#64748b}.node-shapes-table .instance-cell code{font-size:.75rem;color:#475569;background:#f1f5f9;padding:.125rem .5rem;border-radius:4px;border:1px solid #e2e8f0}.network-mapping-section{margin-bottom:2rem}.network-exposure-title{font-size:1rem;font-weight:600;color:#0f172a;margin:0 0 .25rem}.network-exposure-desc{color:#64748b;font-size:.8125rem;margin:0 0 .75rem;line-height:1.5}.node-shapes-table .network-detail-cell{white-space:normal;min-width:180px;max-width:260px;font-size:.8125rem;line-height:1.5;color:#334155}.iam-policy-section{padding:0 .75rem .75rem;font-size:.8125rem;color:#334155}.iam-policy-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.iam-policy-section strong{display:block}.iam-policy-block{background:#1e293b;color:#e2e8f0;padding:1rem;border-radius:6px;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;line-height:1.6;overflow-x:auto;white-space:pre;max-height:400px;overflow-y:auto}.header-auth{margin-left:auto;padding-left:1rem}.btn-github-login{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:#f8fafc;color:#0f172a;border:none;border-radius:6px;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-github-login:hover{background:#e2e8f0}.user-info{display:flex;align-items:center;gap:.5rem}.user-avatar{width:24px;height:24px;border-radius:50%}.user-name{color:#e2e8f0;font-size:.8125rem;font-weight:500}.btn-logout{padding:.25rem .5rem;background:transparent;color:#94a3b8;border:1px solid #334155;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .15s}.btn-logout:hover{color:#f8fafc;border-color:#64748b}.auth-callback{display:flex;justify-content:center;align-items:center;min-height:300px}.auth-callback-loading,.auth-callback-error{text-align:center;color:#94a3b8}.auth-callback-error h2{color:#ef4444;margin-bottom:.5rem}.auth-callback-error a{color:#60a5fa;text-decoration:none}.auth-callback-error a:hover{text-decoration:underline}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;gap:1rem}.login-page h1{font-size:1.75rem;font-weight:600;color:#0f172a;margin:0}.login-page p{color:#64748b;font-size:1rem;margin:0 0 .5rem}.login-page .btn-github-login{padding:.75rem 1.5rem;font-size:1rem;background:#0f172a;color:#f8fafc;border-radius:8px}.login-page .btn-github-login:hover{background:#1e293b}.deploy-instructions{color:#64748b;font-size:.875rem;margin:0 0 1rem}.deploy-project-list{display:flex;flex-direction:column;gap:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;margin-bottom:1rem}.deploy-project-item{border-bottom:1px solid #e2e8f0}.deploy-project-item:last-child{border-bottom:none}.deploy-project-item.has-version{background:#f0fdf4}.deploy-project-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;transition:background-color .15s}.deploy-project-header:hover{background:#f8fafc}.deploy-project-item.has-version .deploy-project-header:hover{background:#dcfce7}.deploy-project-info{flex:1;min-width:0}.deploy-project-selection{flex-shrink:0;margin-left:1rem}.deploy-selected-tag{display:inline-flex;align-items:center;gap:.5rem;background:#059669;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-family:SF Mono,Fira Code,monospace}.btn-clear-version{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:.75rem;padding:0 .15rem;line-height:1}.btn-clear-version:hover{color:#fff}.deploy-no-version{color:#94a3b8;font-size:.8rem}.deploy-version-panel{padding:0 1rem .75rem;border-top:1px solid #e2e8f0;background:#f8fafc}.stage-tab-bar{display:flex;gap:0}.stage-tab{padding:.375rem .75rem;font-size:.75rem;font-weight:600;color:#64748b;background:none;border:1px solid #e2e8f0;border-bottom:none;border-radius:6px 6px 0 0;cursor:pointer;transition:color .15s,background .15s;display:flex;align-items:center;gap:.375rem}.stage-tab:not(:first-child){margin-left:-1px}.stage-tab:hover{color:#334155;background:#f8fafc}.stage-tab.active{color:#1e293b;background:#fff;border-bottom:1px solid #fff;position:relative;z-index:1}.stage-tab.disabled{color:#94a3b8;cursor:not-allowed;opacity:.6;position:relative}.stage-tab.disabled:hover{color:#94a3b8;background:transparent}.stage-tab-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e1e2e;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.5rem .65rem;font-size:.78rem;line-height:1.4;width:220px;z-index:1000;box-shadow:0 4px 12px #0000004d;white-space:normal;text-align:center}.stage-tab.disabled:hover .stage-tab-tooltip{display:block}.stage-tab-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:#1e1e2e;border-right:1px solid #334155;border-bottom:1px solid #334155}.btn-with-tooltip{position:relative;cursor:not-allowed;opacity:.6}.btn-with-tooltip.disabled{pointer-events:auto}.btn-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e1e2e;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.5rem .65rem;font-size:.78rem;line-height:1.4;width:220px;z-index:1000;box-shadow:0 4px 12px #0000004d;white-space:normal;text-align:center}.btn-with-tooltip:hover .btn-tooltip{display:block}.btn-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:#1e1e2e;border-right:1px solid #334155;border-bottom:1px solid #334155}.stage-tab-count{font-size:.625rem;background:#e2e8f0;color:#475569;padding:.0625rem .375rem;border-radius:9999px;font-weight:600;line-height:1.2}.stage-tab.active .stage-tab-count{background:#dbeafe;color:#1d4ed8}.stage-tab-content{border:1px solid #e2e8f0;border-top:1px solid #e2e8f0;border-radius:0 0 8px 8px;padding:.75rem;margin-top:-1px}.stage-tab-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.stage-tab-hint{font-size:.75rem;color:#94a3b8;font-style:italic}.stage-section-empty{font-size:.8125rem;color:#94a3b8;padding:.25rem 0}.dest-region-group{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:.75rem;overflow:hidden}.dest-region-header{padding:.5rem .875rem;background:#f1f5f9;border-bottom:1px solid #e2e8f0}.dest-region-label{font-size:.8125rem;font-weight:700;color:#334155}.dest-section{border-bottom:1px solid #e2e8f0}.dest-section:last-child{border-bottom:none}.dest-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;padding:.375rem .875rem .125rem}.dest-sg-header .dest-section-label{padding:0}.dest-sg-header{display:flex;align-items:center;gap:.625rem;padding:.375rem .875rem}.dest-sg-header-content{display:flex;align-items:center;gap:.625rem;flex:1;min-width:0;flex-wrap:wrap}.dest-sg-gutter{width:5.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.dest-sg-meta{font-size:.6875rem;color:#94a3b8;margin-left:auto}.dest-sg-empty{font-size:.75rem;color:#94a3b8;padding:.375rem .875rem .5rem;font-style:italic}.dest-capacity-form{padding:.75rem .875rem;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;background:#fafbfc;display:flex;flex-direction:column;gap:.625rem}.dest-capacity-details{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr;gap:.25rem .5rem;align-items:center;font-size:.75rem}.dest-capacity-label{font-size:.6875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.dest-capacity-value{font-size:.75rem;color:#1e293b}.dest-capacity-control{display:flex;align-items:center;gap:.5rem}.dest-capacity-input-row{display:flex;align-items:center;gap:.375rem}.dest-capacity-input{width:3.5rem;text-align:center;padding:.1875rem .25rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.8125rem;font-family:var(--font-mono, "SF Mono", monospace)}.dest-capacity-input:focus{outline:none;border-color:#3b82f6}.dest-capacity-current{font-size:.6875rem;color:#94a3b8;margin-left:.25rem}.dest-host-pending{opacity:.5}.dest-host-pending .dest-host-header{cursor:default}.dest-host-pending .dest-host-shape{font-style:italic;color:#94a3b8}.dest-host-row{border-bottom:1px solid #f1f5f9}.dest-host-row:last-child{border-bottom:none}.dest-host-header{display:flex;align-items:center;padding:.375rem .875rem;cursor:pointer;font-size:.8125rem;transition:background .1s}.dest-host-grid{display:grid;grid-template-columns:1rem 9rem 1fr 3.5rem 3rem 11rem 1.25rem;align-items:center;gap:.375rem;flex:1;min-width:0}.deploy-host-grid{display:grid;grid-template-columns:9rem 10rem 3.5rem 3rem 8rem auto;align-items:center;gap:0 .375rem;flex:1;min-width:0}.deploy-host-grid-cf{grid-template-columns:1fr 8rem auto}.deploy-host-grid>.deployment-status-badge{justify-self:end;display:inline-block;padding:.15rem .5rem;width:auto}.dest-host-progress{display:flex;align-items:center;gap:.35rem}.dest-host-progress-bar{flex:1;height:4px;background:#e2e8f0;border-radius:2px;overflow:hidden}.dest-host-progress-fill{height:100%;border-radius:2px;background:#3b82f6;transition:width .4s ease}.dest-host-progress-fill.complete{background:#22c55e}.dest-host-progress-fill.failed{background:#ef4444}.dest-host-step{font-size:.65rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:8rem}.deployment-progress{padding:.5rem .75rem;margin-bottom:.25rem}.deployment-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.deployment-progress-label{font-size:.8rem;color:#475569;font-weight:500}.deployment-progress-pct{font-size:.8rem;color:#64748b;font-weight:600;font-variant-numeric:tabular-nums}.deployment-progress-track{height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.deployment-progress-fill{height:100%;border-radius:3px;background:#3b82f6;transition:width .4s ease}.deployment-progress-fill.has-failures{background:#f59e0b}.dest-host-gutter{width:5.5rem;flex-shrink:0;display:flex;align-items:center;justify-content:flex-end}.dest-host-header:hover{background:#f8fafc}.dest-host-ip{color:#1e293b;white-space:nowrap;font-family:var(--font-mono, "SF Mono", monospace);font-size:.75rem;overflow:hidden;text-overflow:ellipsis}.dest-host-shape{font-size:.6875rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dest-host-visibility{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.0625rem .375rem;border-radius:3px;white-space:nowrap;text-align:center}.dest-host-visibility.public{background:#dcfce7;color:#166534}.dest-host-visibility.private{background:#f1f5f9;color:#64748b}.dest-host-ssh-cell{display:flex;justify-content:center}.dest-host-meta{font-size:.6875rem;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dest-host-status{display:flex;align-items:center;justify-content:center}.dest-status-icon{width:.5rem;height:.5rem;border-radius:50%;display:inline-block}.dest-status-icon.running{background:#22c55e}.dest-status-icon.stopped,.dest-status-icon.terminated{background:#94a3b8}.dest-status-icon.pending,.dest-status-icon.starting{background:#f59e0b;animation:pulse-deploying 1.5s ease-in-out infinite}.dest-status-icon.failed,.dest-status-icon.unhealthy{background:#ef4444}.dest-status-icon.stopping{background:#ef4444;animation:stopping-pulse 1s ease-in-out infinite}@keyframes stopping-pulse{0%,to{opacity:1}50%{opacity:.3}}.dest-host-stopping-bar{padding:.25rem .75rem .25rem 2.25rem;font-size:.75rem;color:#ef4444;background:#ef44440d;border-top:1px solid rgba(239,68,68,.1);animation:stopping-pulse 1s ease-in-out infinite}.dest-remove-btn{background:none;border:1px solid #fca5a5;color:#ef4444;font-size:.6875rem;line-height:1;cursor:pointer;padding:.1875rem .5rem;border-radius:3px;transition:background .15s;white-space:nowrap}.dest-remove-btn:hover{background:#fef2f2}.dest-remove-btn:disabled{opacity:.4;cursor:not-allowed}.dest-host-expanded{padding:.75rem .875rem;border-top:1px solid #e2e8f0;background:#fafbfc}.dest-instance-details{display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;font-size:.75rem}.dest-instance-details dt{color:#64748b;font-weight:500}.dest-instance-details dd{color:#1e293b;margin:0;font-family:var(--font-mono, "SF Mono", monospace)}.ssh-btn-done{color:#166534!important;border-color:#86efac!important}.ssh-btn-failed{color:#dc2626!important;border-color:#fca5a5!important}.destination-lb-link{font-size:.75rem;color:#2563eb;text-decoration:none;padding:.125rem .375rem;border:1px solid #bfdbfe;border-radius:4px;flex-shrink:0}.destination-lb-link:hover{background:#eff6ff}.destination-expand{color:#94a3b8;font-size:.625rem;flex-shrink:0}.destination-provisioning{margin-bottom:.5rem}.deployment-history{display:flex;flex-direction:column;gap:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.deployment-row-header{display:grid;grid-template-columns:22rem 3rem 7rem 5rem 1fr auto 1.2rem;align-items:center;gap:.5rem;padding:.75rem 1rem;cursor:pointer;transition:background-color .15s}.deployment-row-header:hover{background:#f8fafc}.deployment-id{font-weight:600;font-family:SF Mono,Fira Code,monospace;font-size:.875rem;color:#0f172a}.deployment-user{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deployment-avatar{width:20px;height:20px;border-radius:50%}.deployment-time{font-size:.8rem;color:#94a3b8;white-space:nowrap}.deployment-status-badge{display:block;padding:.15rem 0;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:capitalize;text-align:center}.status-live{background:#dcfce7;color:#166534}.status-deploying{background:#dbeafe;color:#1e40af;animation:pulse-deploying 1.5s ease-in-out infinite}@keyframes pulse-deploying{0%,to{opacity:1}50%{opacity:.5}}.status-stopping{background:#fef9c3;color:#854d0e}.status-running{background:#dbeafe;color:#1e40af}.status-completed{background:#dcfce7;color:#166534}.status-failed{background:#fee2e2;color:#991b1b}.deployment-result-label{display:block;font-size:.7rem;font-weight:500;padding:.1rem 0;border-radius:3px;white-space:nowrap;text-align:center}.result-partial{background:#fef9c3;color:#854d0e}.result-failed{background:#fee2e2;color:#991b1b}.deployment-error-summary{font-size:.7rem;color:#dc2626}.deployment-actions{display:flex;gap:.35rem;justify-content:flex-end}.btn-disabled-hint{font-size:.7rem;color:#94a3b8;white-space:nowrap}.deployment-expand{font-size:.65rem;color:#94a3b8;text-align:right}.deployment-row-expanded{padding:.75rem 1rem 1rem;background:#f8fafc;border-top:1px solid #e2e8f0;overflow-anchor:none}.deployment-section{margin-bottom:.75rem;overflow-anchor:none}.deployment-section:last-child{margin-bottom:0}.deployment-section-title{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem}.deployment-section-hint{font-size:.7rem;color:#94a3b8;font-family:monospace;margin-bottom:.4rem}.deployment-log-paths{margin-bottom:.4rem}.deployment-log-path-row{display:flex;align-items:center;gap:.3rem}.deployment-log-path{font-size:.78rem;color:#94a3b8}.deployment-log-copy-btn{background:none;border:none;color:#64748b;cursor:pointer;font-size:.85rem;padding:0 .2rem;line-height:1;opacity:.5;transition:opacity .15s,color .15s}.deployment-log-copy-btn:hover{opacity:1}.deployment-log-copy-btn.copied{color:#16a34a;opacity:1;font-size:.75rem}.deployment-log-copy-btn.failed{color:#dc2626;opacity:1;font-size:.75rem}.deployment-section-title.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.deployment-section-count{font-size:.65rem;color:#94a3b8;background:#f1f5f9;border-radius:8px;padding:0 6px;font-weight:500}.deployment-artifact-table{width:100%;border-collapse:collapse;font-size:.8rem}.deployment-artifact-table th{text-align:left;padding:.35rem .5rem;color:#94a3b8;font-weight:500;border-bottom:1px solid #e2e8f0}.deployment-artifact-table td{padding:.35rem .5rem;border-bottom:1px solid #f1f5f9}.deployment-artifact-table .mono{font-family:SF Mono,Fira Code,monospace;font-size:.75rem}.artifact-block{padding:.5rem 0;border-bottom:1px solid #f1f5f9}.artifact-block:last-child{border-bottom:none}.artifact-header{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:1.5rem;font-size:.8rem}.artifact-project{font-weight:500}.artifact-tag{color:#64748b;text-align:right}.artifact-commit-count{font-size:.7rem;color:#94a3b8;text-align:right;min-width:6rem}.artifact-commits{margin-top:.25rem;padding-left:.25rem;max-height:200px;overflow-y:auto}.artifact-commit-row{display:flex;align-items:baseline;gap:.5rem;padding:.125rem 0;font-size:.75rem;line-height:1.4}.artifact-commit-sha{flex-shrink:0;font-size:.7rem;color:#0369a1}a.artifact-commit-sha:hover{text-decoration:underline}.artifact-commit-msg{color:#475569;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deployment-result-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:500;justify-self:start}.result-success{background:#dcfce7;color:#166534}.result-failure{background:#fee2e2;color:#991b1b}.deployment-result-message{font-size:.75rem;color:#64748b;word-break:break-word}.commit-msg-cell{color:#64748b;font-size:.8rem;word-break:break-word}.deployment-action-entry{padding:.5rem 0;border-bottom:1px solid #f1f5f9}.deployment-action-entry.most-recent{background:#f8fafc;border-left:2px solid #64748b;padding-left:.5rem;margin-left:-.5rem}.deployment-action-entry:last-child{border-bottom:none}.event-log-toggle{padding:.4rem 0;text-align:center;font-size:.75rem;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none}.event-log-toggle:hover{color:#334155}.deployment-action-header{display:grid;grid-template-columns:4rem 5.5rem 1fr auto 1rem;align-items:center;gap:.5rem;padding:.35rem 0;border-radius:4px}.deployment-action-header:hover{background:#f8fafc}.deployment-action-type{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:600;text-transform:uppercase}.action-deploy{background:#dbeafe;color:#1e40af}.action-stop{background:#f1f5f9;color:#475569}.action-undeploy{background:#fce7f3;color:#9d174d}.action-start,.action-rollback,.action-redeploy{background:#fef3c7;color:#92400e}.action-run_task{background:#e0e7ff;color:#3730a3}.deployment-action-user{font-size:.8rem;color:#64748b}.deployment-system-label{font-size:.65rem;color:#94a3b8;border:1px solid #cbd5e1;border-radius:3px;padding:0 4px;margin-left:4px;vertical-align:middle}.deployment-action-time{font-size:.75rem;color:#94a3b8;white-space:nowrap}.deployment-action-expand{font-size:.6rem;color:#94a3b8;width:1rem;text-align:center}.deployment-action-header.clickable{cursor:pointer}.deployment-action-header:not(.clickable){cursor:default}.deployment-action-commands{padding:.35rem 0 .1rem 1.5rem;display:flex;flex-direction:column;gap:.5rem}.container-command-header{display:flex;align-items:center;gap:.3rem;margin-bottom:.2rem}.container-command-label{font-size:.75rem;color:#64748b}.container-command-name{font-weight:600;color:#334155}.container-command-text{margin:0;padding:.5rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;color:#334155;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.72rem;line-height:1.5;white-space:pre-wrap;word-break:break-all}.deployment-action-failures{padding:.35rem 0 .25rem 1.5rem;display:flex;flex-direction:column;gap:.35rem}.deployment-failed-host{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;min-width:0;flex-wrap:wrap}.deployment-failed-host .mono{flex-shrink:0;min-width:9rem}.deployment-failed-host .deployment-result-message{flex:1;color:#64748b;font-size:.75rem;min-width:0}.deployment-failed-host .deployment-result-logs{flex-basis:100%;margin:.25rem 0 0;padding:.5rem;background:#1e293b;color:#e2e8f0;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.7rem;line-height:1.4;border-radius:4px;overflow-x:auto;white-space:pre;max-height:300px;overflow-y:auto}.deployment-list{display:flex;flex-direction:column;gap:5px;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#e2e8f0}.deployment-row{border-left:3px solid transparent;background:#fff}.deployment-active{border-left:3px solid #22c55e}.deployment-active>.deployment-row-header{background:#f0fdf4}.deployment-start-btn,.deployment-stop-btn{flex-shrink:0}.task-running-pulse{animation:task-running-pulse 2s ease-in-out infinite}@keyframes task-running-pulse{0%,to{opacity:1}50%{opacity:.5}}.btn-xs{padding:.15rem .5rem;font-size:.7rem}.status-stopped{background:#f1f5f9;color:#64748b}.label-with-tooltip{display:inline-flex;align-items:center;gap:.3rem}.info-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:help;color:#94a3b8;font-size:.6rem;font-style:normal;width:.875rem;height:.875rem;border:1.5px solid #94a3b8;border-radius:50%;line-height:1;flex-shrink:0}.info-tooltip:hover{color:#a5b4fc;border-color:#a5b4fc}.info-tooltip-text{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e1e2e;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:.6rem .75rem;font-size:.78rem;line-height:1.45;width:280px;z-index:1000;box-shadow:0 4px 12px #0000004d;white-space:normal;font-weight:400}.info-tooltip:hover .info-tooltip-text{display:block}.info-tooltip-text:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:#1e1e2e;border-right:1px solid #334155;border-bottom:1px solid #334155}.env-tabs{display:flex;gap:0;border-bottom:2px solid var(--border-color, #e2e8f0);margin-bottom:1.5rem}.env-tab{padding:.75rem 1.5rem;background:none;border:none;cursor:pointer;font-size:.9375rem;font-weight:600;color:var(--text-tertiary, #94a3b8);border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s}.env-tab:hover{color:var(--text-secondary, #475569)}.env-tab.active{color:var(--accent-color, #2563eb);border-bottom-color:var(--accent-color, #2563eb)}.config-panel{max-width:600px}.config-section{margin-bottom:2rem}.config-section h3{margin-bottom:1rem;font-size:1rem}.config-form{display:flex;flex-direction:column;gap:1rem}.config-field{display:flex;flex-direction:column;gap:.25rem}.config-field label{font-size:.8125rem;font-weight:600;color:var(--text-secondary, #475569)}.config-field input,.config-field select{padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:.875rem;background-color:var(--bg-secondary, #f8fafc);color:var(--text-primary, #1e293b)}.config-field input:focus,.config-field select:focus{outline:none;border-color:var(--accent-color, #2563eb)}.dns-instructions{background:var(--bg-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:1rem;font-size:.875rem}.dns-instructions code{background:var(--bg-tertiary, #e2e8f0);padding:.125rem .375rem;border-radius:3px;font-size:.8125rem}.destination-form .form-hint{font-size:.85rem;color:#64748b;margin:0}.dest-task-info{font-size:.8rem;color:#64748b;padding:.5rem 0;display:flex;align-items:center}.stage-action-log-section{margin-top:1rem;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.stage-action-log-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none}.stage-action-log-header:hover{background:#f1f5f9}.stage-action-log-title{font-size:.8rem;font-weight:600;color:#334155}.stage-action-log-count{background:#e2e8f0;color:#475569;font-size:.7rem;font-weight:600;padding:.05rem .4rem;border-radius:10px}.stage-action-log-entries{padding:.25rem .75rem}.stage-action-log-row{display:grid;grid-template-columns:16rem 3rem 4rem 4.5rem 6rem 1fr;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid #f1f5f9;font-size:.8rem}.stage-action-log-row:last-child{border-bottom:none}.stage-action-log-time{font-size:.75rem;color:#94a3b8;white-space:nowrap}.stage-action-log-user,.stage-action-log-summary{font-size:.75rem;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-secrets{padding:.5rem 0}.stage-secrets-hint{font-size:.8rem;color:#64748b;margin:0 0 1rem}.secrets-table{width:100%;border-collapse:collapse;margin-bottom:1rem;font-size:.8125rem}.secrets-table th{text-align:left;font-weight:600;font-size:.75rem;color:#64748b;text-transform:uppercase;letter-spacing:.03em;padding:.4rem .5rem;border-bottom:1px solid #e2e8f0}.secrets-table td{padding:.5rem;border-bottom:1px solid #f1f5f9}.secrets-value-cell{color:#94a3b8;letter-spacing:.1em}.secrets-updated-cell{font-size:.75rem;color:#94a3b8;white-space:nowrap}.secrets-actions-cell{width:5rem;text-align:right}.secrets-add-form{border-top:1px solid #e2e8f0;padding-top:1rem;margin-top:.25rem}.secrets-add-form .hint{display:block;margin-top:.25rem;font-size:.75rem;color:#94a3b8}.secrets-add-form h4{font-size:.8125rem;font-weight:600;color:#334155;margin:0 0 .625rem}.secrets-add-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.375rem}.secrets-add-row input{padding:.4375rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.8125rem;color:#111827;background:#fff;transition:border-color .15s,box-shadow .15s}.secrets-add-row input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.secrets-key-input{width:14rem;font-family:SF Mono,Fira Code,monospace}.secrets-value-input{flex:1}.task-runs-list{display:flex;flex-direction:column;gap:1px;margin-bottom:.5rem;max-height:240px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:4px}.task-run-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem;border:none;border-bottom:1px solid #f3f4f6;background:#fff;cursor:pointer;font-size:.75rem;transition:background .15s;text-align:left;width:100%}.task-run-item:last-child{border-bottom:none}.task-run-item:hover{background:#eff6ff}.task-run-item.selected{background:#dbeafe}.task-run-number{font-weight:600;min-width:4.5rem}.task-run-item .deployment-status-badge{min-width:4.5rem;text-align:center}.task-run-time{color:#6b7280;min-width:6rem}.task-run-user{color:#6b7280;min-width:5rem}.task-log-run-label{font-size:.8rem;font-weight:600;color:#374151;margin:.5rem 0 .25rem}.task-log-panel{display:flex;flex-direction:column;gap:.25rem}.task-log-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;min-height:1.2rem}.task-log-streaming{color:#3b82f6;font-weight:500}.task-log-streaming:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#3b82f6;margin-right:.35rem;animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.task-log-exit{font-weight:500}.task-log-exit.success{color:#16a34a}.task-log-exit.failure{color:#dc2626}.task-log-output{background:#1e1e2e;color:#cdd6f4;font-family:SF Mono,Fira Code,Fira Mono,Menlo,monospace;height:300px;overflow-anchor:none;font-size:.78rem;line-height:1.5;padding:.75rem;border-radius:6px;overflow-y:auto;max-height:400px;min-height:80px}.task-log-empty{color:#6c7086;font-style:italic}.task-log-line{display:flex;gap:.75rem;white-space:pre-wrap;word-break:break-all}.task-log-lineno{color:#585b70;min-width:2.5rem;text-align:right;flex-shrink:0;-webkit-user-select:none;user-select:none}.task-log-text{flex:1}.provisioned-lb-list{display:flex;flex-direction:column;gap:.5rem}.provisioned-lb-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-secondary, #f8fafc);border-radius:6px;font-size:.875rem}.provisioned-lb-item .lb-stage{font-weight:600;min-width:4rem}.docs-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:2rem;align-items:start}.docs-toc{position:sticky;top:1rem;display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.docs-toc a{font-size:.8125rem;color:#334155;text-decoration:none;padding:.35rem .5rem;border-radius:6px}.docs-toc a:hover{background:#f1f5f9;color:#0f172a}.docs-content{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.docs-section{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem 1.5rem;scroll-margin-top:1rem;font-size:.875rem;line-height:1.6;color:#334155}.docs-section h2{margin:0 0 .75rem;font-size:1.15rem;color:#0f172a}.docs-section h3{margin:1.25rem 0 .4rem;font-size:.95rem;color:#0f172a}.docs-section p{margin:0 0 .6rem}.docs-section ul{margin:0 0 .6rem;padding-left:1.25rem}.docs-section li{margin-bottom:.3rem}.docs-section code{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.8em;background:#f1f5f9;border-radius:4px;padding:.05rem .3rem;color:#0f172a;word-break:break-word}.docs-code{margin:.4rem 0 .8rem;padding:.75rem 1rem;background:#0f172a;color:#e2e8f0;border-radius:8px;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.78rem;line-height:1.55;overflow-x:auto}.docs-table{width:100%;border-collapse:collapse;margin:.4rem 0 .8rem;font-size:.8125rem}.docs-table th,.docs-table td{text-align:left;vertical-align:top;padding:.5rem .6rem;border-bottom:1px solid #e2e8f0}.docs-table th{background:#f8fafc;color:#0f172a;font-weight:600}@media(max-width:800px){.docs-layout{grid-template-columns:1fr}.docs-toc{position:static}.docs-table{display:block;overflow-x:auto}}.net{display:flex;flex-direction:column;gap:.75rem}.net-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.net-title{margin:0;font-size:.95rem;font-weight:600;color:#0f172a}.net-sub{margin:.2rem 0 0;font-size:.78rem;color:#64748b}.net-header-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.net-link{background:none;border:none;padding:0;font-size:.8125rem;color:#2563eb;cursor:pointer}.net-link:hover{text-decoration:underline}.net-link-danger{color:#dc2626}.net-link:disabled{color:#94a3b8;cursor:default}.net-history{margin:0;padding:.5rem .75rem;list-style:none;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:.78rem;color:#334155}.net-history li{display:flex;gap:.75rem;padding:.25rem 0}.net-history-version{font-weight:600;min-width:5rem}.net-history-meta{margin-left:auto;color:#94a3b8}.net-notice{font-size:.78rem;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.4rem .65rem}.net-notice-error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.net .network-table{font-size:.8125rem}.net .network-table th{padding:.4rem .75rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;border-bottom:1px solid #e2e8f0}.net .network-table td{padding:.6rem .75rem;vertical-align:middle;color:#0f172a}.net .network-table tbody{border-bottom:1px solid #f1f5f9}.net .network-table tbody:last-of-type{border-bottom:none}.net .network-port strong{font-weight:600}.net .network-origin{margin-left:.6rem}.net-lb{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem;padding-top:1rem;border-top:1px solid #e2e8f0}.net-lb .dest-region-group{margin-bottom:0}.net-lb-header{display:flex;justify-content:space-between;align-items:center}.net-lb-state{font-size:.72rem;font-weight:600;color:#64748b}.net-lb-state-ready{color:#166534}.net-lb-state-failed{color:#dc2626}.net-lb-state-provisioning{color:#b45309}.net-lb-body{padding:.6rem .875rem .7rem;display:flex;flex-direction:column;gap:.5rem}.net-lb-address{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:#475569}.net-lb-table{width:auto!important;border-collapse:collapse;font-size:.8125rem;color:#0f172a}.net-lb-table td{padding:.15rem .75rem .15rem 0}.net-lb-listen{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:#334155}.net-lb-arrow,.net-muted-inline{color:#94a3b8}.net .network-table{table-layout:fixed}.net .network-table td,.net .network-table th{overflow:hidden;text-overflow:ellipsis}.net .network-table td.network-port{white-space:nowrap}.net .port-form .network-add-btn{align-self:flex-start}.net .port-form-port{padding-left:.75rem}.net .port-form-field>label{width:6rem;flex-shrink:0}.net .port-form-field select{min-width:11rem}.net .network-actions{text-align:right}.net-lb-listeners{display:grid;grid-template-columns:max-content max-content 1fr;column-gap:.75rem;row-gap:.2rem;font-size:.8125rem;color:#0f172a}.net-lb-listener{display:contents}.net .port-form-remove{position:absolute;top:.55rem;right:.75rem;font-size:.75rem}.net .port-form-actions{align-items:center;gap:.5rem}.net .port-form-option{padding-right:5rem}.net-btn{font-size:.75rem;font-weight:500;line-height:1.2;padding:.25rem .75rem;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#1e293b;cursor:pointer}.net-btn:hover:not(:disabled){background:#f1f5f9}.net-btn:disabled{color:#94a3b8;border-color:#e2e8f0;cursor:default}.net-btn-danger{color:#dc2626;border-color:#fecaca}.net-btn-danger:hover:not(:disabled){background:#fef2f2}.net .port-form-field-top{align-items:flex-start}.net .port-form-field-top>label{padding-top:.15rem}.port-form-radios{display:flex;flex-direction:column;gap:.45rem}.port-form-radio{display:flex;align-items:flex-start;gap:.5rem;cursor:pointer}.port-form-radio input{margin-top:.2rem}.port-form-radio>span{display:flex;flex-direction:column;gap:.05rem}.port-form-radio strong{font-weight:500;color:#0f172a}.port-form-radio-disabled{cursor:default;opacity:.55}.port-form-lb{margin-left:1.5rem;flex-wrap:wrap}.port-form-envs{margin-left:1.5rem}.net .port-form-envs .networking-env-add{min-width:0}.pf{background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 2px #0f172a0a;margin:.25rem 0 .5rem;white-space:normal}.pf-head{display:flex;align-items:baseline;gap:.6rem;padding:.85rem 1.1rem;border-bottom:1px solid #f1f5f9}.pf-title{font-size:.9rem;font-weight:600;color:#0f172a}.pf-sub{font-size:.75rem;color:#94a3b8}.pf-empty{padding:.9rem 1.1rem;font-size:.8125rem;color:#64748b}.pf-option,.pf-port{padding:.9rem 1.1rem;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:.85rem}.pf-option-head{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.pf-row{display:grid;grid-template-columns:9rem 1fr;align-items:start;gap:1rem}.pf-label{padding-top:.45rem;font-size:.8125rem;font-weight:500;color:#334155}.pf-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,17rem));gap:.6rem}.pf-tile{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .8rem .65rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s}.pf-tile input{position:absolute;opacity:0;pointer-events:none}.pf-tile:hover{border-color:#94a3b8}.pf-tile-on,.pf-tile-on:hover{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 1px #2563eb}.pf-tile-off,.pf-tile-off:hover{cursor:not-allowed;border-color:#e2e8f0;background:#f8fafc}.pf-tile-off .pf-tile-title{color:#94a3b8}.pf-tile-title{font-size:.8125rem;font-weight:600;color:#0f172a}.pf-tile-on .pf-tile-title{color:#1d4ed8}.pf-tile-desc{font-size:.72rem;line-height:1.35;color:#64748b}.pf-envs{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.pf-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .4rem .25rem .65rem;border-radius:999px;background:#e0e7ff;color:#3730a3;font-size:.75rem;font-weight:500}.pf-chip button{border:none;background:none;color:#4f46e5;cursor:pointer;font-size:.9rem;line-height:1;padding:0 .1rem}.pf-select,.pf-input{font-size:.8125rem;padding:.35rem .55rem;border:1px solid #cbd5e1;border-radius:6px;background-color:#fff;color:#0f172a}.pf-select{padding-right:1.75rem}.pf-select:focus,.pf-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.pf-env-add{min-width:12rem}.pf-input-port{width:5.5rem}.pf-inline{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.1rem}.pf-field{display:inline-flex;align-items:center;gap:.5rem;font-size:.8125rem;color:#334155}.pf-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:#334155;cursor:pointer}.pf-check-off{color:#94a3b8;cursor:default}.pf-hint{font-size:.72rem;color:#94a3b8}.pf-add{margin:.75rem 1.1rem 0;padding:.5rem;border:1px dashed #cbd5e1;border-radius:8px;background:none;color:#2563eb;font-size:.8125rem;cursor:pointer;text-align:center}.pf-add:hover{border-color:#2563eb;background:#f8fafc}.pf-port{border-bottom:none;background:#f8fafc;margin-top:.75rem;border-top:1px solid #f1f5f9}.pf-foot{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;padding:.75rem 1.1rem;border-top:1px solid #f1f5f9;border-radius:0 0 10px 10px}.pf-error{font-size:.75rem;color:#dc2626;margin-right:auto}.pf-foot .pf-hint{margin-right:auto}.net .network-table tbody.network-editing{background:transparent}.net .network-table tbody.network-editing td{background:#f8fafc}.pf-row-center{align-items:center}.pf-row-center .pf-label{padding-top:0}.pf-add{margin:.85rem 1.1rem}.pf-port{margin-top:0}.pf-tiles{grid-template-columns:repeat(2,minmax(0,14.5rem));gap:.5rem}.pf-tile{padding:.45rem .65rem .5rem;gap:.1rem;border-radius:7px}.pf-tile-title{font-size:.78rem}.pf-tile-desc{font-size:.68rem}.pf-label{padding-top:.35rem}.pf-foot .pf-close{margin-right:auto}.pf-foot .pf-close+.pf-error,.pf-foot .pf-close+.pf-hint{margin-right:0}.pf-port{background:none;border-top:none;padding-top:0}.pf-foot .pf-close{margin-right:0}.pf-lb{display:flex;flex-direction:column;gap:.75rem;padding:.75rem .9rem .85rem;margin-left:-.9rem;margin-right:-.9rem;background:#f0f7ff;border:1px solid #dbeafe;border-radius:8px}.pf-lb-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#1e40af}.pf-lb .pf-input,.pf-lb .pf-select{background-color:#fff}.net-title-version{font-weight:500;color:#64748b}.net-artifacts{display:flex;flex-wrap:wrap;gap:.35rem .9rem;margin-top:.25rem;font-size:.78rem;color:#334155}.net-artifact-sha{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;color:#94a3b8}.net-versions{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem;padding-top:1rem;border-top:1px solid #e2e8f0}.net-version-header{grid-template-columns:19rem 3rem 7rem 8rem 1fr auto 1.2rem}.net-version-deployment{font-size:.8rem;color:#475569;white-space:nowrap}.net-version-note{font-size:.8rem;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-version-changes{margin:0;padding-left:1.1rem;font-size:.8rem;color:#334155;display:flex;flex-direction:column;gap:.2rem}.net-restore{display:flex;flex-direction:column;gap:.6rem;background:#f0f7ff}.net-restore-title{font-size:.85rem;font-weight:600;color:#0f172a}.net-restore-none{font-size:.8rem;color:#64748b}.net-restore-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:#334155}.net-restore-tag{display:inline-block;min-width:5.5rem;margin-right:.5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8}.net-restore-tag-on{color:#1d4ed8}.net-restore-foot{border-top:none;padding:0}.net-meta{flex-shrink:0;font-size:.75rem;font-weight:500;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:.2rem .65rem}.net-lb-embedded{margin-top:0;padding-top:0;border-top:none}.deployment-row-expanded .net .network-table,.deployment-row-expanded .network-table{background:#fff;border:1px solid #e2e8f0;border-radius:8px}.net-version-header{grid-template-columns:19rem 6rem 8rem 1fr auto 1.2rem}.net-version-id{white-space:nowrap}.pf-copy{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.6rem 1.1rem;background:#fffbeb;border-bottom:1px solid #fde68a;font-size:.8rem;color:#92400e}.deploy-network{margin:1rem 0;padding-top:.75rem;border-top:1px solid #e2e8f0}.deploy-network .network-table{background:#fff;border:1px solid #e2e8f0;border-radius:8px}.net-lb-title-row{align-items:center}.net-lb-title-row .deployment-section-title{margin-bottom:0}.header-tenant{margin-left:auto;margin-right:1rem;display:flex;align-items:center;gap:.625rem;position:relative}.header-tenant select{appearance:none;-webkit-appearance:none;padding:.375rem 1.75rem .375rem .75rem;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:#ffffff14 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%2394a3b8'/%3E%3C/svg%3E") no-repeat right .6rem center;color:#f8fafc;font-size:.875rem;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s}.header-tenant select:hover{border-color:#ffffff4d;background-color:#ffffff1f}.header-tenant select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.header-tenant select option{background:#1e293b;color:#f8fafc}.header-tenant .tenant-name{font-size:.875rem;font-weight:600;color:#f8fafc}.header-role{font-size:.6875rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.header-tenant+.header-auth{margin-left:0}.setup-checklist{text-align:left;max-width:640px;margin:2rem auto}.setup-checklist h2{margin-bottom:1rem}.setup-checklist ol{padding-left:1.25rem;display:grid;gap:.75rem}.setup-checklist li.done{color:#64748b}.logs-viewer{display:flex;flex-direction:column;min-width:0;border:1px solid #e2e8f0;border-radius:8px;outline:none}.logs-viewer:focus-within{border-color:#a5b4fc}.logs-lines{flex:none;height:min(70vh,640px);overflow:auto;background:#0f172a;color:#e2e8f0;font-size:12.5px}.logs-line{height:20px;line-height:20px;white-space:pre;padding:0 .75rem;display:flex;gap:.75rem}.logs-line:hover{background:#1e293b}.logs-line.stderr .logs-msg{color:#fca5a5}.logs-line.match{background:#3f3f1f}.logs-line mark{background:#facc15;color:#0f172a;border-radius:2px}.logs-ts{color:#64748b;flex:none}.logs-placeholder{padding:1rem;color:#94a3b8}.logs-status{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.35rem .75rem;font-size:.75rem;background:#1e293b;color:#cbd5e1}.logs-status>span:first-child{flex:1}.logs-size{color:#94a3b8;white-space:nowrap}.logs-quiet{color:#b45309;font-weight:600}.logs-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.625rem .75rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.logs-search{display:inline-flex;align-items:center;gap:.375rem;height:32px;margin-left:auto;padding:0 .5rem 0 .625rem;flex:1 1 160px;max-width:280px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:text;transition:border-color .15s,box-shadow .15s}.logs-search svg{width:14px;height:14px;flex:none;fill:none;stroke:#94a3b8;stroke-width:1.5;stroke-linecap:round}.logs-search input{flex:1;min-width:0;height:100%;border:none;outline:none;padding:0;background:transparent;font:inherit;font-size:.8125rem;color:#111827}.logs-search kbd{font-family:inherit;font-size:.6875rem;line-height:1;color:#64748b;padding:.15rem .375rem;border:1px solid #e2e8f0;border-radius:4px;background:#f8fafc}.logs-search:focus-within{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.logs-toolbar .btn-sm{height:32px}.logs-toolbar-buttons{display:inline-flex;gap:.375rem}.logs-search{flex:1 1 140px;min-width:140px}.logs-toolbar{border-radius:8px 8px 0 0}.logs-status{border-radius:0 0 8px 8px}.logs-menu{position:relative;display:inline-flex;align-items:center;gap:.5rem}.logs-menu-label{font-size:.8125rem;font-weight:500;color:#374151;white-space:nowrap}.logs-menu-label em{font-style:normal;font-weight:400;color:#94a3b8;margin-left:.25rem}.logs-menu-button{display:inline-flex;align-items:center;gap:.5rem;height:32px;max-width:240px;padding:0 .5rem 0 .75rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;font:inherit;font-size:.8125rem;color:#111827;cursor:pointer;transition:border-color .15s,box-shadow .15s}.logs-menu-button:hover{border-color:#9ca3af}.logs-menu-button:focus-visible,.logs-menu-button.open{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.logs-menu-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logs-menu-chevron{width:14px;height:14px;flex:none;margin-left:auto;fill:none;stroke:#64748b;stroke-width:1.5;transition:transform .15s}.logs-menu-button.open .logs-menu-chevron{transform:rotate(180deg)}.logs-menu-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#f59e0b}.logs-menu-list{position:absolute;top:calc(100% + 4px);right:0;z-index:30;min-width:max(100%,260px);max-width:420px;max-height:340px;overflow-y:auto;padding:.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 24px -6px #0f172a2e,0 2px 6px #0f172a0f}.logs-menu-group+.logs-menu-group{margin-top:.25rem;padding-top:.25rem;border-top:1px solid #f1f5f9}.logs-menu-heading{padding:.375rem .625rem .25rem;font-size:.75rem;font-weight:600;color:#64748b;white-space:nowrap}.logs-menu-option{display:flex;align-items:center;gap:.5rem;padding:.375rem .625rem .375rem .375rem;border-radius:5px;font-size:.8125rem;color:#111827;cursor:pointer;white-space:nowrap}.logs-menu-option[data-active=true]{background:#f1f5f9}.logs-menu-option.selected{font-weight:500}.logs-menu-check{width:1rem;flex:none;text-align:center;color:#2563eb;font-size:.75rem}.logs-menu-option-label{font-variant-numeric:tabular-nums}.logs-menu-note{margin-left:auto;padding-left:1rem;font-size:.75rem;color:#94a3b8}.logs-menu-note.warn{color:#b45309}.logs-follow{gap:.4rem}.logs-follow.on{border-color:#86efac;background:#f0fdf4;color:#166534}.logs-follow.on:hover{border-color:#d1d5db;background:#fff;color:#374151}.logs-follow-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:logs-pulse 1.6s ease-in-out infinite}.logs-follow.on:hover .logs-follow-dot{animation:none;background:#94a3b8}.logs-follow-labels{display:inline-grid}.logs-follow-labels>span{grid-area:1 / 1;text-align:center}.logs-follow-stop,.logs-follow.on:hover .logs-follow-on{visibility:hidden}.logs-follow.on:hover .logs-follow-stop{visibility:visible}@keyframes logs-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}@media(prefers-reduced-motion:reduce){.logs-follow-dot{animation:none}}.logs-shortcuts-link{padding:0;border:none;background:none;font:inherit;font-family:Inter,sans-serif;font-size:.75rem;color:#94a3b8;cursor:pointer;text-decoration:underline;text-decoration-color:#475569;text-underline-offset:2px}.logs-shortcuts-link:hover{color:#e2e8f0}.logs-shortcuts{position:absolute;right:.5rem;bottom:calc(100% + 6px);z-index:30;width:300px;padding:.75rem .875rem;background:#fff;color:#111827;border:1px solid #e2e8f0;border-radius:8px;font-family:Inter,sans-serif;box-shadow:0 10px 24px -6px #0f172a40,0 2px 6px #0f172a14}.logs-shortcuts-head{display:flex;justify-content:space-between;align-items:center;font-size:.8125rem;font-weight:600}.logs-shortcuts-head button{border:none;background:none;font-size:1.1rem;line-height:1;color:#94a3b8;cursor:pointer;padding:0 .125rem}.logs-shortcuts-head button:hover{color:#111827}.logs-shortcuts-hint{margin:.25rem 0 .5rem;font-size:.75rem;color:#64748b}.logs-shortcuts dl{margin:0}.logs-shortcuts-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.8125rem;border-top:1px solid #f1f5f9}.logs-shortcuts-row dt{color:#374151}.logs-shortcuts-row dd{margin:0;display:flex;gap:.25rem}.logs-shortcuts kbd{display:inline-block;min-width:1.4rem;padding:.1rem .375rem;text-align:center;font-family:inherit;font-size:.75rem;color:#374151;background:#f8fafc;border:1px solid #e2e8f0;border-bottom-width:2px;border-radius:4px}.logs-shortcuts-or{margin:0 .25rem;color:#cbd5e1}.setup-steps{padding-left:1.25rem;margin:.75rem 0 1rem;line-height:1.6}.setup-steps ul{list-style:disc;padding-left:1.25rem;margin:.25rem 0}.setup-steps code{word-break:break-all}.main>.warning-banner{margin-bottom:1.5rem}.warning-banner a{color:inherit;font-weight:600;text-decoration:underline}.github-links{list-style:none;padding:0;margin:.75rem 0 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:8px}.github-links li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem}.github-links li+li{border-top:1px solid var(--border-color, #e5e7eb)}.github-links .error-message{margin-top:.35rem}.secret-value{padding:.35rem .5rem;background:var(--code-bg, #f3f4f6);border-radius:6px;word-break:break-all;font-size:.8rem}.copy-value{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0}.copy-value code{word-break:break-all}
