@charset "UTF-8";#root{width:100%;min-height:100vh}.redacted-value{color:var(--text-muted);font-style:italic;font-size:.8125rem;-webkit-user-select:none;user-select:none}.avatar-image,.avatar-initials{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-default{width:40px;height:40px;font-size:16px}.avatar-small{width:32px;height:32px;font-size:13px}.avatar-initials{display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;text-transform:uppercase;-webkit-user-select:none;user-select:none;border:2px solid rgba(255,255,255,.2)}.avatar-image{border:2px solid var(--color-border, rgba(255, 255, 255, .1));background-color:var(--color-bg-secondary, #2a2a2a);transition:opacity .2s ease-in-out}.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:700;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .3s ease,filter .2s ease,background .3s ease,border-color .3s ease;font-family:inherit;text-transform:uppercase;letter-spacing:.06em;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:hover:not(:disabled){transform:translateY(-1px) scale(1.02);filter:saturate(1.1)}.btn:active:not(:disabled){transform:translateY(0) scale(.99)}.btn-sm{padding:.5rem 1rem;font-size:.75rem}.btn-md{padding:.75rem 1.5rem;font-size:.8125rem}.btn-lg{padding:1rem 2rem;font-size:.9375rem}.btn-primary{background:linear-gradient(135deg,var(--brand-red) 0%,var(--brand-red-dark) 100%);box-shadow:var(--shadow-sm);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-red-hover) 0%,var(--brand-red) 100%);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-blue);box-shadow:var(--shadow-md)}.btn-danger{background:linear-gradient(135deg,var(--brand-red),var(--brand-red-dark));box-shadow:var(--shadow-sm);color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-red-hover),var(--brand-red));box-shadow:var(--shadow-md)}.btn-success{background:linear-gradient(135deg,var(--accent-green),#388e3c);box-shadow:var(--shadow-sm);color:#fff}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,#66bb6a,var(--accent-green));box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;border-color:var(--border-color);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--accent-blue)}.monitoring-logs{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;height:100%}.logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.logs-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.logs-actions{display:flex;gap:.5rem}.logs-loading,.logs-error,.logs-empty{text-align:center;padding:2rem;color:var(--text-secondary)}.logs-error{color:var(--accent-red)}.logs-container{flex:1;overflow-y:auto;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem;font-family:var(--font-mono);font-size:.8125rem;line-height:1.6}.log-entry{display:flex;gap:.75rem;padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.log-entry:last-child{border-bottom:none}.log-time{color:var(--text-muted);flex-shrink:0}.log-level{font-weight:700;flex-shrink:0;width:50px}.log-source{color:var(--accent-purple);flex-shrink:0}.log-message{color:var(--text-primary);flex:1;word-break:break-word}.log-exception{margin-top:.5rem;padding:.5rem;background-color:#ef44441a;border:1px solid var(--accent-red);border-radius:var(--radius-sm);overflow-x:auto}.log-exception pre{margin:0;color:var(--accent-red);font-size:.75rem;white-space:pre-wrap}.log-trace .log-level{color:var(--text-muted)}.log-debug .log-level{color:#a0aec0}.log-info .log-level{color:var(--accent-blue)}.log-warning .log-level{color:var(--accent-yellow)}.log-error .log-level{color:var(--accent-red)}.log-critical .log-level{color:#e53e3e;background-color:#e53e3e33;padding:.125rem .25rem;border-radius:var(--radius-sm)}.logs-footer{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.logs-count{font-size:.875rem;color:var(--text-secondary)}.auto-scroll-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;color:var(--text-primary);font-size:.875rem;-webkit-user-select:none;user-select:none}.auto-scroll-toggle input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent-blue)}.floating-menu{position:fixed;top:1rem;right:1.5rem;z-index:var(--z-dropdown)}.floating-menu-trigger{width:48px;height:48px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:var(--shadow-md);padding:0}.floating-menu-trigger:hover{border-color:var(--accent-blue);box-shadow:0 0 12px #4fc3f740,var(--shadow-lg);transform:scale(1.05)}.floating-menu-logo{width:28px;height:28px;pointer-events:none}.floating-menu-panel{position:absolute;top:calc(100% + .5rem);right:0;width:320px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:.75rem;opacity:0;transform:translateY(-8px) scale(.96);pointer-events:none;transition:opacity .2s ease,transform .2s ease;max-height:calc(100vh - 6rem);overflow-y:auto}.floating-menu.open .floating-menu-panel{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.fm-separator{height:1px;background:var(--border-color);margin:.5rem 0}.fm-section-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.25rem .5rem}.fm-nav{display:flex;flex-direction:column;gap:2px}.fm-nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .625rem;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);font-size:.8125rem;font-weight:500;transition:all .15s ease}.fm-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.fm-nav-item.active{background:var(--bg-tertiary);color:var(--accent-blue);border-left:2px solid var(--accent-blue)}.fm-nav-icon{font-size:1rem;width:1.25rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fm-stats{display:flex;flex-direction:column;gap:.5rem}.fm-signalr{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.25rem .5rem}.fm-signalr.connected{color:var(--status-succeeded)}.fm-signalr.disconnected{color:var(--status-failed)}.fm-signalr-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.fm-signalr.connected .fm-signalr-dot{background:var(--status-succeeded);box-shadow:0 0 6px #4caf5080}.fm-signalr.disconnected .fm-signalr-dot{background:var(--status-failed);box-shadow:0 0 6px #ef535080}.fm-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.375rem}.fm-stat-card{display:flex;flex-direction:column;align-items:center;gap:.125rem;padding:.375rem .25rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.fm-stat-value{font-size:1rem;font-weight:700;line-height:1}.fm-stat-queued{color:var(--status-queued)}.fm-stat-running{color:var(--status-running)}.fm-stat-paused{color:var(--status-paused)}.fm-stat-total{color:var(--text-primary)}.fm-stat-label{font-size:.5625rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.fm-logs-btn{display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.375rem .625rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s ease;text-transform:uppercase;letter-spacing:.03em;width:100%}.fm-logs-btn:hover{background:var(--bg-hover);border-color:var(--accent-blue)}.fm-user{display:flex;gap:.625rem;padding:.5rem;align-items:center}.fm-user-avatar{width:36px;height:36px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--accent-blue)}.fm-user-avatar img{width:100%;height:100%;object-fit:cover}.fm-user-info{flex:1;min-width:0}.fm-user-name{font-size:.8125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.375rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-admin-badge{font-size:.5625rem;padding:.0625rem .375rem;background:linear-gradient(135deg,var(--accent-blue),var(--accent-blue-hover));border-radius:10px;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.fm-user-email{font-size:.6875rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-logout{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;background:#ef53501a;border:1px solid rgba(239,83,80,.25);border-radius:var(--radius-md);color:var(--brand-red);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .15s ease}.fm-logout:hover{background:#ef535033;border-color:#ef535066}.logs-modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:stretch;justify-content:stretch;z-index:var(--z-modal);padding:0}.logs-modal{background:var(--bg-primary);width:100%;height:100%;display:flex;flex-direction:column}.logs-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border-color);background:linear-gradient(135deg,var(--bg-secondary),var(--bg-primary));flex-shrink:0}.logs-modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.logs-modal-close{background:#ef53501a;border:1px solid rgba(239,83,80,.3);color:var(--brand-red);font-size:1.25rem;cursor:pointer;padding:.5rem .75rem;border-radius:var(--radius-sm);transition:all .2s ease;line-height:1;font-weight:700}.logs-modal-close:hover{background:#ef535033;border-color:var(--brand-red);transform:scale(1.05)}.logs-modal-content{flex:1;overflow-y:auto;padding:2rem;background:var(--bg-primary)}@media(max-width:768px){.floating-menu{top:.75rem;right:.75rem}.floating-menu-panel{width:calc(100vw - 2rem);max-width:320px}.logs-modal-header{padding:1rem 1.5rem}.logs-modal-content{padding:1.5rem}}.layout{min-height:100vh;background:radial-gradient(ellipse at top,var(--bg-primary),#0a0a0a)}.main-content{max-width:1280px;margin:0 auto;padding:2.5rem 1.5rem;min-height:100vh}@media(max-width:768px){.main-content{padding:1.5rem 1rem}}@keyframes fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes error-slide-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes glow-pulse{0%,to{opacity:.4}50%{opacity:.7}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at top,var(--bg-primary),#0a0a0a);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-card{display:flex;flex-direction:column;align-items:center;width:380px;padding:48px 40px}.login-card img{margin-bottom:2rem;opacity:.5}.login-logo-section{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.login-logo-glow{position:absolute;width:160px;height:160px;background:radial-gradient(circle,rgba(79,195,247,.15) 0%,transparent 70%);border-radius:50%;animation:glow-pulse 4s ease-in-out infinite;pointer-events:none}.login-logo{position:relative;width:100px;height:100px;filter:drop-shadow(0 0 12px rgba(79,195,247,.3));transition:transform .3s ease}.login-logo:hover{transform:scale(1.05)}.login-divider{width:100%;height:1px;margin:24px 0;background:linear-gradient(90deg,transparent 0%,var(--border-color) 20%,var(--accent-blue) 50%,var(--border-color) 80%,transparent 100%);opacity:.6}.login-auth-section{display:flex;flex-direction:column;align-items:center;gap:16px;width:100%}.login-title{font-family:var(--font-sans);font-size:20px;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:-.01em}.login-subtitle{font-family:var(--font-sans);font-size:13px;color:var(--text-muted);margin:0 0 8px}.login-error{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:#ef535014;border:1px solid rgba(239,83,80,.25);border-radius:var(--radius-sm);animation:error-slide-in .3s ease-out}.login-error-dot{width:6px;height:6px;background:var(--accent-red);border-radius:50%;flex-shrink:0}.login-error-text{font-size:13px;color:var(--brand-red-light);line-height:1.4}.login-button-wrapper{animation:fade-in .4s ease-out .2s both}.login-loading{display:flex;align-items:center;justify-content:center;padding-top:4px}.login-spinner{width:28px;height:28px;border:2px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spinner-rotate .8s linear infinite}@media(max-width:480px){.login-card{width:calc(100% - 32px);padding:36px 24px;margin:16px}.login-logo{width:80px;height:80px}.login-logo-glow{width:120px;height:120px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.stage-pipeline{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}.stage-pipeline-empty{font-size:.75rem;color:var(--text-muted);font-style:italic;padding:.25rem 0}.stage-group{display:flex;flex-direction:column;gap:.25rem}.stage-label{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.stage-steps{display:flex;flex-wrap:wrap;gap:3px}.stage-arrow{display:flex;align-items:center;color:var(--text-muted);font-size:2.75rem;padding-top:1rem;opacity:.5;-webkit-user-select:none;user-select:none;line-height:1.75rem}.step-box{position:relative;width:2rem;height:2rem;border-radius:var(--radius-sm);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.step-box:hover{transform:scale(1.4);z-index:var(--z-base)}.step-box--succeeded{background-color:var(--status-succeeded)}.step-box--running{background-color:var(--status-running);animation:stepRunningPulse 2s ease-in-out infinite;display:flex;align-items:center;justify-content:center}.step-spinner{display:block;width:1rem;height:1rem;border:2px solid rgba(255,255,255,.25);border-top-color:#ffffffe6;border-radius:50%;animation:stepSpin .8s linear infinite;will-change:transform}@keyframes stepSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-box--failed{background-color:var(--status-failed)}.step-box--pending,.step-box--queued{background-color:var(--status-queued)}.step-box--skipped,.step-box--cancelled{background-color:var(--status-cancelled)}@keyframes stepRunningPulse{0%,to{box-shadow:0 0 4px #42a5f566}50%{box-shadow:0 0 10px #42a5f5cc,0 0 20px #42a5f54d}}.step-box:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background-color:var(--bg-secondary);color:var(--text-primary);font-size:.6875rem;line-height:1.4;padding:.375rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);white-space:pre-line;pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:var(--z-tooltip);box-shadow:0 4px 12px #0006;min-width:120px;max-width:220px;text-align:left}.step-box:before{content:"";position:absolute;bottom:calc(100% + 3px);left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--border-color);pointer-events:none;opacity:0;transition:opacity .15s ease;z-index:var(--z-tooltip)}.step-box:hover:after,.step-box:hover:before{opacity:1}.badge{display:inline-flex;align-items:center;padding:.375rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-md);text-transform:uppercase;letter-spacing:.025em}.badge-default{background-color:var(--bg-tertiary);color:var(--text-secondary)}.badge-queued{background-color:#6b728033;color:var(--status-queued);border:1px solid var(--status-queued)}.badge-paused{background-color:#fbbf2433;color:var(--status-paused);border:1px solid var(--status-paused)}.badge-running{background-color:#42a5f533;color:var(--status-running);border:1px solid var(--status-running)}.badge-succeeded{background-color:#10b98133;color:var(--status-succeeded);border:1px solid var(--status-succeeded)}.badge-failed{background-color:#ef444433;color:var(--status-failed);border:1px solid var(--status-failed)}.badge-cancelled{background-color:#9ca3af33;color:var(--status-cancelled);border:1px solid var(--status-cancelled)}.badge-idle{background-color:#6b728033;color:var(--status-queued);border:1px solid var(--status-queued)}.badge-active{background-color:#10b98133;color:var(--status-succeeded);border:1px solid var(--status-succeeded)}.badge-offline{background-color:#ef444433;color:var(--status-failed);border:1px solid var(--status-failed)}.step-detail-overlay{position:fixed;inset:0;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:1rem}.step-detail-modal{background:linear-gradient(135deg,var(--bg-secondary),var(--bg-primary));border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:800px;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.step-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);flex-shrink:0}.step-detail-header-left{display:flex;align-items:center;gap:.75rem;min-width:0}.step-detail-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.step-detail-close{background:none;border:1px solid var(--border-color);color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all .15s ease;flex-shrink:0;line-height:1}.step-detail-close:hover{color:var(--text-primary);border-color:var(--status-failed);background-color:#ef44441a}.step-detail-body{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.step-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.step-info-item{display:flex;flex-direction:column;gap:.125rem}.step-info-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.step-info-value{font-size:.875rem;color:var(--text-primary)}.step-section-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.5rem}.step-error-content{background-color:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-md);padding:.875rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--status-failed);white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;line-height:1.5}.step-output-content{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;line-height:1.5}.step-metadata-grid{display:grid;grid-template-columns:auto 1fr;gap:.375rem 1rem;font-size:.8125rem}.step-metadata-key{color:var(--text-muted);font-family:var(--font-mono)}.step-metadata-value{color:var(--text-primary);word-break:break-word}.step-artifacts-list{display:flex;flex-direction:column;gap:.5rem}.step-artifact-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);gap:.75rem}.step-artifact-name{font-size:.8125rem;font-family:var(--font-mono);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.step-artifact-actions{display:flex;gap:.5rem;flex-shrink:0}.step-artifact-btn{background:none;border:1px solid var(--border-color);color:var(--accent-blue);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:.25rem .5rem;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.step-artifact-btn:hover{border-color:var(--accent-blue);background-color:#4fc3f71a}.step-artifact-content-viewer{margin-top:.5rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto;line-height:1.5}.step-artifacts-empty,.step-artifacts-loading{font-size:.8125rem;color:var(--text-muted);font-style:italic}.step-timings{display:flex;flex-direction:column;gap:2px}.timing-row{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto;align-items:center;gap:.75rem;padding:.25rem 0;font-size:.8125rem}.timing-name{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timing-bar-track{height:6px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden;min-width:60px}.timing-bar-fill{height:100%;background-color:var(--accent-blue);border-radius:3px;min-width:2px;transition:width .3s ease}.timing-duration{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);white-space:nowrap;text-align:right;min-width:50px}.timing-row--unaccounted .timing-name{color:var(--text-muted);font-style:italic;font-family:var(--font-sans)}.timing-row--unaccounted .timing-bar-fill{background-color:var(--status-queued);opacity:.5}.confirm-modal-overlay{position:fixed;inset:0;background-color:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:1rem}.confirm-modal{background:linear-gradient(135deg,var(--bg-secondary),var(--bg-primary));border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;display:flex;flex-direction:column;overflow:hidden}.confirm-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.confirm-modal-title{font-size:1.125rem;font-weight:700;color:var(--text-primary)}.confirm-modal-close{background:none;border:1px solid var(--border-color);color:var(--text-secondary);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:all .15s ease;flex-shrink:0;line-height:1}.confirm-modal-close:hover{color:var(--text-primary);border-color:var(--status-failed);background-color:#ef44441a}.confirm-modal-body{padding:1.5rem}.confirm-modal-message{margin:0;font-size:.9rem;line-height:1.6;color:var(--text-secondary)}.confirm-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color)}.branch-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem 1rem;transition:all .2s ease;box-shadow:var(--shadow-sm)}.branch-card:hover{box-shadow:var(--shadow-md)}.branch-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.05)}.branch-card-left{display:flex;align-items:center;gap:1rem}.branch-card-name{font-family:var(--font-mono);font-size:.9375rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;transition:color .2s ease}.branch-card-name:hover{color:var(--accent-blue);text-decoration:underline}.branch-disabled-badge{display:inline-block;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .375rem;background-color:#6b728033;color:var(--text-muted);border:1px solid rgba(107,114,128,.3);border-radius:var(--radius-sm)}.branch-card-disabled{opacity:.6;filter:grayscale(.3);cursor:default}.branch-card-disabled:hover{border-color:var(--border-color)!important;background:var(--bg-secondary)!important;box-shadow:var(--shadow-sm)!important;transform:none!important}.branch-card-disabled .force-build-btn:disabled,.branch-card-disabled .stop-build-btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1);box-shadow:none}.branch-card-disabled .force-build-btn:disabled:hover,.branch-card-disabled .stop-build-btn:disabled:hover{transform:none;box-shadow:none}.branch-card-time{font-size:.8125rem;color:var(--text-secondary)}.force-build-btn{position:relative;background:linear-gradient(135deg,var(--accent-green),#388e3c);border:none;box-shadow:var(--shadow-sm);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.75rem;padding:.5rem .9rem;border-radius:var(--radius-sm);cursor:pointer;transition:transform .15s ease,box-shadow .3s ease;white-space:nowrap}.force-build-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1);box-shadow:none}.force-build-btn:hover:not(:disabled){background:linear-gradient(135deg,#66bb6a,var(--accent-green));box-shadow:var(--shadow-md);transform:translateY(-1px)}.force-build-btn:active:not(:disabled){transform:translateY(0)}.stop-build-btn{position:relative;background:linear-gradient(135deg,var(--brand-red),var(--brand-red-dark));border:none;box-shadow:var(--shadow-sm);color:#fff;text-transform:uppercase;letter-spacing:.06em;font-weight:700;font-size:.75rem;padding:.5rem .9rem;border-radius:var(--radius-sm);cursor:pointer;transition:transform .15s ease,box-shadow .3s ease;white-space:nowrap}.stop-build-btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1);box-shadow:none}.stop-build-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-red-hover),var(--brand-red));box-shadow:var(--shadow-md);transform:translateY(-1px)}.stop-build-btn:active:not(:disabled){transform:translateY(0)}.branch-card-body{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.branch-card-details{flex:1;display:flex;flex-direction:column;gap:.375rem}.branch-detail-line{font-size:.8125rem;color:var(--text-secondary);line-height:1.4}.branch-detail-line.branch-reason{color:var(--brand-red);font-weight:500}.branch-detail-line.branch-na{color:var(--text-muted);font-style:italic}.branch-card-status{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;flex-shrink:0;cursor:pointer;transition:all .2s ease}.branch-card-status:hover{transform:scale(1.1)}.branch-card-status .status-icon-large{font-size:1.5rem;line-height:1}.branch-card-status.status-succeeded{background-color:#22c55e33;color:var(--status-succeeded);border-color:#22c55e80;box-shadow:0 0 24px #22c55e40 inset}.branch-card-status.status-failed{background-color:#ef444433;color:var(--status-failed);border-color:#ef444480;box-shadow:0 0 24px #ef444440 inset}.branch-card-status.status-running{background-color:#22c55e33;color:var(--status-succeeded);border-color:#22c55e80;box-shadow:0 0 24px #22c55e40 inset;animation:pulse 2s ease-in-out infinite}.branch-card-status .spinner{width:24px;height:24px}.branch-card-status.status-paused{background-color:#fbbf2433;color:var(--status-paused);border-color:#fbbf2480;box-shadow:0 0 24px #fbbf2440 inset}.branch-card-status.status-queued,.branch-card-status.status-cancelled{background-color:#9ca3af33;color:var(--text-muted);border-color:#9ca3af59;box-shadow:0 0 18px #9ca3af26 inset}.branch-card-status.status-default{background-color:#6b728026;color:var(--text-muted);border-color:#6b728040;box-shadow:0 0 12px #6b72801a inset}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.branch-card-no-builds{background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.branch-card-status-running{background:var(--bg-secondary);border-left:3px solid var(--status-running);box-shadow:var(--shadow-sm);animation:none}.branch-card-status-running:hover{box-shadow:var(--shadow-md)}.branch-card-status-succeeded{background:var(--bg-secondary);border-left:3px solid var(--status-succeeded);box-shadow:var(--shadow-sm)}.branch-card-status-paused{background:var(--bg-secondary);border-left:3px solid var(--status-paused);box-shadow:var(--shadow-sm);animation:none}.branch-card-status-paused:hover{box-shadow:var(--shadow-md)}.branch-card-status-failed,.branch-card-status-cancelled{background:var(--bg-secondary);border-left:3px solid var(--status-failed);box-shadow:var(--shadow-sm)}.branch-card-status-failed:hover,.branch-card-status-cancelled:hover{box-shadow:var(--shadow-md)}.branch-card-status-queued{background:var(--bg-secondary);border-left:3px solid var(--status-queued);box-shadow:var(--shadow-sm)}.branch-card-body--with-pipeline{flex-direction:column;align-items:stretch}.branch-card-body--with-pipeline .branch-card-details{margin-bottom:.5rem}@media(max-width:600px){.branch-card-header{flex-wrap:wrap;gap:.5rem}.branch-card-left{flex-direction:column;align-items:flex-start;gap:.25rem;min-width:0}.branch-card-name{word-break:break-all}.force-build-btn,.stop-build-btn{flex-shrink:0}}.projects-grid{display:flex;flex-direction:column;gap:1.5rem}.project-section{display:flex;flex-direction:column;gap:.75rem}.project-section-title{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin:0;padding:0 .5rem}.branches-list{display:flex;flex-direction:column;gap:.75rem;border-left:2px solid var(--border-color);background:none;border:0}.section-footer{display:flex;justify-content:flex-end;padding-top:.75rem}.builds-list{display:flex;flex-direction:column;gap:.75rem}.build-card-enhanced{position:relative;display:flex;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.build-card-enhanced:before,.build-card-enhanced:after{display:none}.build-card-enhanced:hover{background-color:var(--bg-hover);border-color:var(--accent-blue);box-shadow:var(--shadow-md)}.build-status-bar{width:4px;flex-shrink:0}.build-status-bar.status-succeeded{background-color:var(--status-succeeded)}.build-status-bar.status-failed{background-color:var(--status-failed)}.build-status-bar.status-running{background-color:var(--status-running);animation:pulse 2s ease-in-out infinite}.build-status-bar.status-paused{background-color:var(--status-paused)}.build-status-bar.status-queued{background-color:var(--text-muted)}.build-info-enhanced{flex:1;padding:.625rem .875rem;display:flex;flex-direction:column;gap:.375rem}.build-header{display:flex;justify-content:space-between;align-items:center}.build-name-enhanced{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary);font-size:.875rem}.status-indicator-large{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.status-indicator-large.status-succeeded{background-color:#22c55e33;color:var(--status-succeeded)}.status-indicator-large.status-failed{background-color:#ef444433;color:var(--status-failed)}.status-indicator-large.status-running{background-color:#42a5f533;color:var(--status-running);animation:pulse 2s ease-in-out infinite}.status-indicator-large.status-paused{background-color:#fbbf2433;color:var(--status-paused)}.status-indicator-large.status-queued{background-color:#9ca3af33;color:var(--text-muted)}.build-meta-enhanced{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.build-branch{font-family:var(--font-mono);color:var(--accent-blue)}.build-separator{color:var(--text-muted)}.build-number{color:var(--text-secondary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.dashboard-grid{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.dashboard-grid-2col{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}.dashboard-section{background:linear-gradient(145deg,var(--bg-secondary),var(--bg-primary));border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-md)}.dashboard-section.full-width{width:100%}.section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;background:linear-gradient(90deg,var(--bg-tertiary),transparent);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color)}.section-header .section-title{margin-bottom:0}.chart-container{margin-top:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.5rem}.empty-state-small{text-align:center;padding:3rem 2rem;color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px dashed var(--border-color)}@media(max-width:1400px){.dashboard-grid-2col{grid-template-columns:1fr}}.table-container{width:100%;overflow-x:auto;background-color:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.table{width:100%;border-collapse:collapse;font-size:.9375rem}.table-header{background-color:var(--bg-tertiary);border-bottom:2px solid var(--border-color)}.table-header-cell{padding:1rem 1.5rem;text-align:left;font-weight:600;color:var(--text-primary);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.table-body .table-row{border-bottom:1px solid var(--border-color);transition:background-color .2s ease}.table-body .table-row:last-child{border-bottom:none}.table-body .table-row:hover{background-color:var(--bg-tertiary)}.table-row.clickable{cursor:pointer}.table-cell{padding:1rem 1.5rem;color:var(--text-primary)}.table-cell.muted{color:var(--text-secondary)}.page{max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.page-header h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-subtitle{font-size:.9375rem;color:var(--text-secondary)}.loading{text-align:center;padding:4rem;color:var(--text-secondary);font-size:1.125rem}.error-message{background-color:#ef44441a;border:1px solid var(--accent-red);color:var(--accent-red);padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem}.empty-state{background-color:var(--bg-secondary);border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:4rem 2rem;text-align:center;color:var(--text-secondary)}.empty-state p{margin-bottom:1.5rem;font-size:1.125rem}.empty-state-hint{font-size:.9375rem;margin-top:.5rem;margin-bottom:0}.actions{display:flex;gap:.5rem}.build-configuration{background:var(--bg-secondary);border-radius:8px;padding:1.5rem}.no-configuration{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--text-secondary)}.no-configuration svg{margin-bottom:1rem;opacity:.5}.no-configuration p{font-size:1rem;margin:0 0 .5rem;color:var(--text-primary)}.no-configuration-hint{font-size:.875rem;color:var(--text-secondary)}.configuration-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.configuration-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.configuration-meta{font-size:.875rem;color:var(--text-secondary);margin:0}.stages-list{display:flex;flex-direction:column;gap:.75rem}.stage-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;transition:all .2s ease}.stage-item.expanded{background:var(--bg-secondary)}.stage-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.stage-header:hover{background:var(--bg-secondary)}.stage-item.expanded .stage-header{border-bottom:1px solid var(--border-color)}.stage-header-left{display:flex;align-items:center;gap:.75rem}.expand-icon{color:var(--text-secondary);transition:transform .2s ease}.stage-item.expanded .expand-icon{transform:rotate(90deg)}.stage-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--accent-blue);color:#fff;font-size:.875rem;font-weight:600}.stage-name{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary)}.stage-header-right{display:flex;align-items:center;gap:1rem}.task-count{font-size:.875rem;color:var(--text-secondary)}.stage-content{padding:1.25rem}.stage-conditions{background:#f59e0b14;border:1px solid rgba(245,158,11,.3);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem}.condition-label{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9375rem;margin-bottom:1rem;color:var(--text-primary)}.condition-label svg{color:var(--accent-yellow);flex-shrink:0}.conditional-actions-list{display:flex;flex-direction:column;gap:.75rem}.conditional-action-item{display:flex;align-items:center;gap:.75rem;background:var(--bg-primary);border:1px solid rgba(245,158,11,.2);border-radius:6px;padding:.875rem 1rem;transition:all .2s ease}.conditional-action-item:hover{border-color:#f59e0b66;background:#f59e0b0d}.condition-expression{display:flex;align-items:center;gap:.5rem;flex:1}.condition-if{font-size:.8125rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.condition-property{font-family:Courier New,Consolas,monospace;font-size:.875rem;font-weight:600;color:var(--accent-blue);background:var(--bg-tertiary);padding:.25rem .625rem;border-radius:4px}.condition-operator{display:flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:1rem;font-weight:600;color:var(--accent-yellow);background:#f59e0b26;border-radius:4px;cursor:help}.condition-value{font-family:Courier New,Consolas,monospace;font-size:.875rem;font-weight:600;color:var(--accent-green);background:#22c55e1a;padding:.25rem .625rem;border-radius:4px}.condition-arrow{font-size:1.25rem;color:var(--text-secondary);opacity:.5;flex-shrink:0}.condition-action{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;padding:.375rem .75rem;border-radius:4px;flex-shrink:0;transition:all .2s ease}.condition-action svg{flex-shrink:0}.condition-action.action-0{color:var(--text-error);background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.condition-action.action-1{color:var(--accent-green);background:#22c55e1a;border:1px solid rgba(34,197,94,.2)}.condition-action.action-2{color:var(--accent-yellow);background:#f59e0b1a;border:1px solid rgba(245,158,11,.2)}.conditional-action-item:hover .condition-action.action-0{background:#ef444426;border-color:#ef44444d}.conditional-action-item:hover .condition-action.action-1{background:#22c55e26;border-color:#22c55e4d}.conditional-action-item:hover .condition-action.action-2{background:#f59e0b26;border-color:#f59e0b4d}.tasks-list{display:flex;flex-direction:column;gap:.75rem}.task-item{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;transition:all .15s ease}.task-item:hover{border-color:var(--accent-blue);box-shadow:0 2px 8px #00000014}.task-header{display:flex;align-items:flex-start;gap:.75rem}.task-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:var(--bg-tertiary);color:var(--accent-blue);flex-shrink:0}.task-info{flex:1}.task-name{font-size:1.0625rem;font-weight:600;margin-bottom:.25rem;color:var(--text-primary);line-height:1.3}.task-type-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:.625rem;opacity:.7}.task-config{display:flex;flex-direction:column;gap:.375rem}.config-item{font-size:.875rem;color:var(--text-secondary)}.config-item strong{color:var(--text-primary);font-weight:500}.task-condition{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);font-size:.8125rem;color:var(--text-secondary)}.task-condition svg{color:var(--accent-yellow)}.parallel-tasks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.875rem;margin-top:.5rem}.nested-task-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:1rem;transition:all .2s ease;display:flex;flex-direction:column}.nested-task-card:hover{border-color:var(--accent-blue);background:var(--bg-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.nested-task-header{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.nested-task-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:6px;background:var(--bg-secondary);color:var(--accent-blue);flex-shrink:0}.nested-task-info{flex:1;min-width:0}.nested-task-name{font-size:.9375rem;font-weight:600;margin-bottom:.25rem;color:var(--text-primary);line-height:1.3;word-break:break-word}.nested-task-type-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--accent-blue);opacity:.8}.task-condition.nested{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);font-size:.75rem}.task-condition.nested svg{width:12px;height:12px}.build-properties{background:var(--color-surface);border-radius:8px;padding:1.5rem}.no-properties{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--color-text-secondary)}.no-properties svg{margin-bottom:1rem;opacity:.5}.no-properties p{font-size:1rem;margin:0 0 .5rem;color:var(--color-text)}.no-properties-hint{font-size:.875rem;color:var(--color-text-secondary)}.properties-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border);gap:1rem}.properties-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text)}.properties-meta{font-size:.875rem;color:var(--color-text-secondary);margin:0}.properties-edit-actions{display:flex;gap:.5rem}.properties-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.properties-table{width:100%;border-collapse:collapse;font-size:.875rem}.properties-table thead{background:var(--color-background);border-bottom:2px solid var(--color-border)}.properties-table th{padding:.875rem 1rem;text-align:left;font-weight:600;color:var(--color-text);white-space:nowrap}.properties-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .15s ease}.properties-table tbody tr:last-child{border-bottom:none}.properties-table tbody tr:hover{background:var(--color-surface)}.properties-table tbody tr.required-row{border-left:3px solid var(--color-primary)}.properties-table tbody tr.editing-row{background:var(--color-surface)}.properties-table td{padding:.875rem 1rem;vertical-align:middle}.property-name-column{width:20%;min-width:150px}.property-value-column{width:30%;min-width:200px}.property-default-column{width:20%;min-width:150px}.property-description-column{width:30%}.property-name-cell{font-weight:500}.property-name{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-text);cursor:help;position:relative}.property-name:hover{color:var(--color-primary)}.required-indicator{color:var(--color-danger, #dc3545);font-size:1rem;font-weight:700;line-height:1}.property-value,.default-value{display:inline-block;background:var(--color-background);padding:.375rem .625rem;border-radius:4px;font-family:Courier New,monospace;font-size:.8125rem;color:var(--color-primary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-value.masked{opacity:.5;-webkit-user-select:none;user-select:none;letter-spacing:.1em}.not-set,.no-default,.no-description{color:var(--color-text-secondary);font-style:italic;font-size:.8125rem}.property-value-input{width:100%;padding:.5rem .75rem;font-size:.8125rem;font-family:Courier New,monospace;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);transition:all .15s ease}.property-value-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0d6efd1a}.property-value-input::placeholder{color:var(--color-text-secondary);opacity:.7}.property-description-cell{color:var(--color-text-secondary);line-height:1.5}.properties-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.info-box{display:flex;gap:.75rem;padding:1rem;background:#0d6efd1a;border:1px solid rgba(13,110,253,.3);border-radius:6px;font-size:.875rem;color:var(--color-text)}.info-box svg{flex-shrink:0;margin-top:.125rem;color:var(--color-primary)}.info-text{line-height:1.6}.info-text strong{font-weight:600;color:var(--color-text)}@media(max-width:1024px){.properties-table{font-size:.8125rem}.properties-table th,.properties-table td{padding:.75rem}.property-name-column,.property-value-column,.property-default-column,.property-description-column{width:auto;min-width:120px}}@media(max-width:768px){.properties-header{flex-direction:column;align-items:stretch}.properties-edit-actions{justify-content:flex-start}.properties-table-wrapper{border:none}.properties-table,.properties-table thead,.properties-table tbody,.properties-table th,.properties-table td,.properties-table tr{display:block}.properties-table thead tr{display:none}.properties-table tbody tr{margin-bottom:1rem;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.properties-table tbody tr.required-row{border-left:3px solid var(--color-primary)}.properties-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--color-border);position:relative;padding-left:40%}.properties-table td:last-child{border-bottom:none}.properties-table td:before{content:attr(data-label);position:absolute;left:1rem;width:35%;padding-right:1rem;font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.property-name-cell:before{content:"Property:"}.property-value-cell:before{content:"Value:"}.property-default-cell:before{content:"Default:"}.property-description-cell:before{content:"Description:"}.property-value-input{width:100%}.property-source-cell:before{content:"Source:"}.property-actions-cell:before{content:"Actions:"}}.property-source-column{width:10%;min-width:80px}.source-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.source-badge.source-build{background:#ffc10733;color:#ff9800;border:1px solid rgba(255,152,0,.3)}.source-badge.source-branch{background:#2196f333;color:#2196f3;border:1px solid rgba(33,150,243,.3)}.source-badge.source-project{background:#4caf5033;color:#4caf50;border:1px solid rgba(76,175,80,.3)}.source-badge.source-default{background:#9e9e9e33;color:#9e9e9e;border:1px solid rgba(158,158,158,.3)}.property-actions-column{width:15%;min-width:150px}.property-actions{display:flex;gap:.5rem;flex-wrap:wrap}.promote-button{padding:.25rem .625rem;font-size:.75rem;font-weight:500;background:var(--color-primary);color:#fff;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.promote-button:hover:not(:disabled){background:var(--color-primary-dark, #0056b3);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.promote-button:disabled{background:var(--color-text-secondary);cursor:not-allowed;opacity:.5}.paused-notice{color:var(--color-warning, #ff9800);font-weight:500}.paused-info{margin-top:.5rem;padding:.5rem;background:#ffc1071a;border-left:3px solid #ff9800;border-radius:4px}.log-viewer-overlay{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.log-viewer-modal{background:#1a1a1a;border:1px solid #333;border-radius:8px;display:flex;flex-direction:column;max-width:90vw;max-height:85vh;width:85vw;box-shadow:0 4px 20px #00000080}.log-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #333;background:#1e1e1e;border-radius:8px 8px 0 0}.log-viewer-title{display:flex;align-items:center;gap:.75rem}.log-icon{font-size:1.5rem}.log-viewer-title h3{margin:0;font-size:1rem;font-weight:600;color:#e0e0e0;font-family:Consolas,Monaco,Courier New,monospace}.log-viewer-actions{display:flex;align-items:center;gap:.75rem}.log-search{padding:.4rem .75rem;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:4px;color:#e0e0e0;font-size:.85rem;width:200px;transition:border-color .2s ease}.log-search:focus{outline:none;border-color:#64b5f6}.log-search::placeholder{color:#666}.log-action-btn{padding:.4rem .9rem;background:transparent;border:1px solid #64b5f6;color:#64b5f6;border-radius:4px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.log-action-btn:hover{background:#64b5f61a;border-color:#90caf9;color:#90caf9}.log-close-btn{padding:.4rem .75rem;background:transparent;border:1px solid #666;color:#999;border-radius:4px;font-size:1.2rem;line-height:1;cursor:pointer;transition:all .2s ease}.log-close-btn:hover{background:#ffffff0d;border-color:#999;color:#ccc}.log-viewer-body{flex:1;overflow:auto;background:#0d0d0d;min-height:0}.log-loading,.log-error,.log-empty{padding:2rem;text-align:center;color:#999;font-size:.9rem}.log-error{color:#f44336}.log-content{font-family:Consolas,Monaco,Courier New,monospace;font-size:.85rem;line-height:1.5}.log-lines{display:table;width:100%}.log-line{display:table-row}.log-line:hover{background:#ffffff08}.line-number{display:table-cell;padding:.25rem 1rem;text-align:right;color:#666;-webkit-user-select:none;user-select:none;border-right:1px solid #2a2a2a;background:#1a1a1a;min-width:60px;vertical-align:top}.line-content{display:table-cell;padding:.25rem 1rem;color:#e0e0e0;white-space:pre-wrap;word-break:break-all;vertical-align:top}.search-highlight{background:#ff9800;color:#000;padding:0 2px;border-radius:2px}.log-viewer-footer{padding:.75rem 1.25rem;border-top:1px solid #333;background:#1e1e1e;border-radius:0 0 8px 8px}.log-info{font-size:.8rem;color:#999}.log-viewer-body::-webkit-scrollbar{width:12px;height:12px}.log-viewer-body::-webkit-scrollbar-track{background:#1a1a1a}.log-viewer-body::-webkit-scrollbar-thumb{background:#3a3a3a;border-radius:6px}.log-viewer-body::-webkit-scrollbar-thumb:hover{background:#4a4a4a}.artifacts-list{margin-top:1rem;background:#1e1e1e;border:1px solid #333;border-radius:8px;padding:1rem}.artifacts-header{margin-bottom:.75rem}.artifacts-header h4{margin:0;font-size:.95rem;font-weight:600;color:#e0e0e0}.artifacts-loading,.artifacts-error{padding:.5rem;font-size:.9rem;color:#999}.artifacts-error{color:#f44336}.artifacts-items{display:flex;flex-direction:column;gap:.5rem}.artifact-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:6px;transition:all .2s ease}.artifact-item:hover{background:#2f2f2f;border-color:#4a4a4a}.artifact-icon{font-size:1.5rem;line-height:1}.artifact-info{flex:1;min-width:0}.artifact-name{font-size:.9rem;font-weight:500;color:#e0e0e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Consolas,Monaco,Courier New,monospace}.artifact-meta{display:flex;gap:1rem;margin-top:.25rem;font-size:.8rem;color:#999}.artifact-size{font-weight:500}.artifact-path{opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifact-actions{display:flex;gap:.5rem}.artifact-action-btn{padding:.4rem .8rem;font-size:.85rem;font-weight:500;border:1px solid;border-radius:4px;cursor:pointer;transition:all .2s ease;background:transparent}.view-btn{color:#64b5f6;border-color:#64b5f6}.view-btn:hover{background:#64b5f61a;border-color:#90caf9;color:#90caf9}.download-btn{color:#81c784;border-color:#81c784}.download-btn:hover{background:#81c7841a;border-color:#a5d6a7;color:#a5d6a7}.build-events{margin-top:1.5rem}.build-events-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.build-events-header h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.event-filters{display:flex;gap:.5rem}.filter-btn{padding:.5rem 1rem;border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;transition:all .15s ease}.filter-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-btn.active{background:var(--brand-red);color:#fff;border-color:var(--brand-red)}.build-events-loading,.build-events-error,.build-events-empty{padding:2rem;text-align:center;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.build-events-error{color:var(--accent-red);border-color:var(--accent-red);background:#ef44441a}.events-timeline{display:flex;flex-direction:column;gap:.75rem}.event-item{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all .15s ease}.event-item:hover{border-color:var(--bg-hover);background:var(--bg-tertiary)}.event-item.event-failed{border-color:var(--accent-red);background:#ef44441a}.event-icon{font-size:1.5rem;flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.event-content{flex:1;min-width:0}.event-main{display:flex;flex-direction:column;gap:.5rem}.event-title-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.event-title{font-weight:500;color:var(--text-primary);font-size:.95rem}.event-duration{font-size:.875rem;color:var(--text-muted);font-family:var(--font-mono)}.event-meta{display:flex;gap:1rem;font-size:.875rem;color:var(--text-muted);flex-wrap:wrap}.event-timestamp{font-family:var(--font-mono)}.event-stage,.event-step{color:var(--text-secondary)}.event-toggle{margin-top:.5rem;padding:.375rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:.875rem;transition:all .15s ease;align-self:flex-start}.event-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.event-details{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem}.event-detail-section{display:flex;flex-direction:column;gap:.5rem}.event-detail-section strong{color:var(--text-secondary);font-size:.875rem;font-weight:600}.event-output,.event-error-text,.event-stacktrace{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;font-size:.875rem;font-family:var(--font-mono);color:var(--text-secondary);white-space:pre-wrap;word-break:break-word;overflow-x:auto;margin:0}.event-detail-section.event-error strong{color:var(--accent-red)}.event-error-text{color:var(--status-failed);border-color:var(--accent-red);background:#ef44441a}.event-stacktrace{color:var(--text-muted);font-size:.8125rem;max-height:300px;overflow-y:auto}.event-metadata{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.5rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.metadata-item{display:flex;gap:.5rem;font-size:.875rem}.metadata-key{color:var(--text-secondary);font-weight:500;min-width:fit-content}.metadata-value{color:var(--text-primary);font-family:var(--font-mono);word-break:break-all}.event-stacktrace::-webkit-scrollbar{width:8px;height:8px}.event-stacktrace::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}.event-stacktrace::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:var(--radius-sm)}.event-stacktrace::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.build-timings{--timing-label-width: 280px;display:flex;flex-direction:column;gap:1rem}.timing-header-labels{display:flex;align-items:center;gap:.75rem;width:var(--timing-label-width);min-width:var(--timing-label-width);max-width:var(--timing-label-width);flex-shrink:0;overflow:hidden}.build-timings-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted);text-align:center;gap:.75rem}.build-timings-empty p{font-size:.9375rem;margin:0}.build-timings-empty span{font-size:.8125rem;color:var(--text-muted)}.timing-stage{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.timing-stage-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;cursor:pointer;transition:background-color .15s ease}.timing-stage-header:hover{background-color:var(--bg-tertiary)}.timing-chevron{font-size:.75rem;color:var(--text-muted);flex-shrink:0;width:1rem;text-align:center;-webkit-user-select:none;user-select:none}.timing-stage-name{flex:1;font-weight:600;font-size:.9375rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.timing-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.timing-status-dot--queued{background-color:var(--status-queued)}.timing-status-dot--paused{background-color:var(--status-paused)}.timing-status-dot--running{background-color:var(--status-running)}.timing-status-dot--succeeded{background-color:var(--status-succeeded)}.timing-status-dot--failed{background-color:var(--status-failed)}.timing-status-dot--cancelled{background-color:var(--status-cancelled)}.timing-status-dot--default{background-color:var(--status-queued)}.timing-header-bar{flex:1;min-width:60px}.timing-header-bar .timing-bar-track{height:6px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden;min-width:60px}.timing-header-bar .timing-bar-fill{height:100%;background-color:var(--accent-blue);border-radius:3px;min-width:2px;transition:width .3s ease}.timing-header-duration{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.timing-stage-content{border-top:1px solid var(--border-color);padding:.75rem 1.25rem 1rem;display:flex;flex-direction:column;gap:.5rem}.timing-step{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.timing-step-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;cursor:pointer;transition:background-color .15s ease}.timing-step-header:hover{background-color:#ffffff08}.timing-step-name{flex:1;font-weight:500;font-size:.875rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.timing-step-type{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex-shrink:0}.timing-step-content{border-top:1px solid var(--border-color);padding:.5rem 1rem .75rem}.build-timings .timing-rows{display:flex;flex-direction:column;gap:2px}.build-timings .timing-row{display:grid;grid-template-columns:minmax(120px,auto) 1fr auto;align-items:center;gap:.75rem;padding:.25rem 0;font-size:.8125rem}.build-timings .timing-name{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.build-timings .timing-bar-track{height:6px;background-color:var(--bg-secondary);border-radius:3px;overflow:hidden;min-width:60px}.build-timings .timing-bar-fill{height:100%;background-color:var(--accent-blue);border-radius:3px;min-width:2px;transition:width .3s ease}.build-timings .timing-duration{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);white-space:nowrap;text-align:right;min-width:50px}.build-timings .timing-row--unaccounted .timing-name{color:var(--text-muted);font-style:italic;font-family:var(--font-sans)}.build-timings .timing-row--unaccounted .timing-bar-fill{background-color:var(--status-queued);opacity:.5}.build-artifacts-tab{display:flex;flex-direction:column;gap:1.25rem}.bat-loading,.bat-error{padding:1.5rem;font-size:.9rem;color:var(--text-secondary);text-align:center}.bat-error{color:var(--accent-red)}.bat-empty{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:3rem;text-align:center}.bat-empty-text{color:var(--text-secondary);font-size:.9375rem}.bat-step-group{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}.bat-step-header{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.25rem;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:.875rem}.bat-stage-name{color:var(--text-secondary);font-weight:500}.bat-separator{color:var(--text-muted)}.bat-step-name{color:var(--text-primary);font-weight:600}.bat-step-type{margin-left:auto;color:var(--text-muted);font-family:var(--font-mono);font-size:.8125rem}.bat-artifact-list{display:flex;flex-direction:column}.bat-artifact-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;transition:background-color .15s ease}.bat-artifact-row:not(:last-child){border-bottom:1px solid var(--border-color)}.bat-artifact-row:hover{background-color:var(--bg-tertiary)}.bat-artifact-icon{font-size:1.25rem;line-height:1;flex-shrink:0}.bat-artifact-info{flex:1;min-width:0}.bat-artifact-name{font-size:.875rem;font-weight:500;color:var(--text-primary);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bat-artifact-meta{display:flex;gap:1rem;margin-top:.2rem;font-size:.8rem;color:var(--text-muted)}.bat-artifact-size{font-weight:500;flex-shrink:0}.bat-artifact-s3{font-family:var(--font-mono);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7}.bat-artifact-actions{display:flex;gap:.5rem;flex-shrink:0}.bat-action-btn{padding:.35rem .75rem;font-size:.8125rem;font-weight:500;border:1px solid;border-radius:4px;cursor:pointer;transition:all .2s ease;background:transparent}.bat-view-btn{color:#64b5f6;border-color:#64b5f6}.bat-view-btn:hover{background:#64b5f61a;border-color:#90caf9;color:#90caf9}.bat-download-btn{color:#81c784;border-color:#81c784}.bat-download-btn:hover{background:#81c7841a;border-color:#a5d6a7;color:#a5d6a7}.validation-issues-container{margin:2rem 0;padding:2rem;background:var(--bg-secondary);border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.validation-issues-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(239,68,68,.2)}.validation-issues-header h2{margin:0;font-size:1.5rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.issues-summary{display:flex;gap:.5rem;align-items:center}.unresolved-count{color:#ef4444;font-weight:700;font-size:1.125rem}.all-resolved{color:#22c55e;font-weight:700;font-size:1.125rem}.total-count{color:var(--text-secondary);font-size:1rem}.edit-path-form{display:flex;flex-direction:column;gap:.75rem}.build-path-input{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:Courier New,monospace;font-size:.875rem}.build-path-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4fc3f733}.build-path-input::placeholder{color:var(--text-muted)}.action-btn.primary-btn{background:linear-gradient(135deg,var(--accent-blue),var(--accent-blue-hover));border-color:var(--accent-blue);color:#0b1220}.action-btn.primary-btn:hover{box-shadow:var(--shadow-md)}.action-btn.save-btn{background:linear-gradient(135deg,#22c55ecc,#16a34acc);border-color:#22c55e99}.action-btn.save-btn:hover{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 20px #22c55e80}.action-btn.cancel-btn{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-secondary)}.action-btn.cancel-btn:hover{background:var(--bg-hover);border-color:var(--text-muted)}.generate-all-section{margin-bottom:2rem;padding:1.5rem;background:linear-gradient(135deg,#22c55e1f,#16a34a14);border:1px solid rgba(34,197,94,.4);border-radius:var(--radius-md);box-shadow:0 0 20px #22c55e26 inset}.generate-all-controls{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.generate-all-controls label{color:var(--text-primary);font-weight:600;font-size:.9rem}.generate-all-btn{background:linear-gradient(135deg,#22c55ee6,#16a34ae6);color:#0b1220;border:1px solid rgba(34,197,94,.7);box-shadow:0 0 20px #22c55e59;padding:.625rem 1.25rem;font-weight:700}.generate-all-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 28px #22c55e80}.generate-all-btn:disabled{opacity:.5;cursor:not-allowed}.generate-all-help{margin:.75rem 0 0;color:var(--text-secondary);font-size:.875rem;font-style:italic}.validation-issues-list{display:flex;flex-direction:column;gap:1rem}.validation-issue-card{position:relative;padding:1.5rem;background:var(--bg-tertiary);border-radius:var(--radius-md);transition:all .2s ease}.validation-issue-card.unresolved.severity-error{border:1px solid rgba(239,68,68,.5);box-shadow:0 0 0 1px #ef444440 inset,0 4px 20px #ef444433}.validation-issue-card.unresolved.severity-warning{border:1px solid rgba(251,191,36,.5);box-shadow:0 0 0 1px #fbbf2440 inset,0 4px 20px #fbbf2433}.validation-issue-card.resolved{border:1px solid rgba(34,197,94,.3);box-shadow:0 0 0 1px #22c55e26 inset,0 4px 20px #22c55e1a;opacity:.7}.issue-header{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem}.issue-icon{font-size:2rem;flex-shrink:0}.issue-info{flex:1}.issue-info h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary);font-weight:600}.issue-type{display:inline-block;padding:.25rem .5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.issue-body{margin-top:1rem}.issue-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.source-env-select{padding:.5rem 2.5rem .5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm);outline:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234fc3f7' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px 8px}.source-env-select:hover{border-color:var(--accent-blue);background-color:var(--bg-hover);box-shadow:var(--shadow-md)}.source-env-select:focus{border-color:var(--accent-blue);background-color:var(--bg-hover);box-shadow:0 0 0 3px #4fc3f733}.source-env-select option{background-color:var(--bg-secondary);color:var(--text-primary);padding:.75rem 1rem;font-weight:500}.source-env-select option:hover,.source-env-select option:focus,.source-env-select option:checked{background-color:var(--bg-tertiary);color:var(--text-primary)}.source-env-select option:checked{background:var(--bg-hover)}.action-btn{padding:.5rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;transition:all .2s ease;border:none;text-decoration:none;display:inline-block}.generate-btn{background:linear-gradient(135deg,#22c55ed9,#16a34ad9);color:#0b1220;border:1px solid rgba(34,197,94,.6);box-shadow:0 0 16px #22c55e4d}.generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 24px #22c55e73}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.resolve-btn{background:linear-gradient(135deg,var(--accent-blue),var(--accent-blue-hover));color:#0b1220;border:1px solid var(--accent-blue);box-shadow:var(--shadow-sm)}.resolve-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.resolve-btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{background:linear-gradient(135deg,#a855f7d9,#8b5cf6d9);color:#0b1220;border:1px solid rgba(168,85,247,.6);box-shadow:0 0 16px #a855f74d}.link-btn:hover{transform:translateY(-1px);box-shadow:0 0 24px #a855f773}.resolved-badge{display:inline-block;padding:.5rem 1rem;background:#22c55e33;border:1px solid rgba(34,197,94,.5);border-radius:var(--radius-sm);color:#22c55e;font-weight:600;font-size:.875rem}.issue-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(34,197,94,.2);color:var(--text-secondary);font-size:.8125rem}.restart-build-section{margin-top:2rem;padding:2rem;background:linear-gradient(135deg,#22c55e26,#16a34a1a);border:1px solid rgba(34,197,94,.5);border-radius:var(--radius-md);text-align:center;box-shadow:0 0 24px #22c55e33 inset}.restart-message{margin:0 0 1rem;color:#22c55e;font-size:1.125rem;font-weight:600}.restart-build-btn{padding:.75rem 2rem;background:linear-gradient(135deg,#22c55ee6,#16a34ae6);color:#0b1220;border:1px solid rgba(34,197,94,.8);border-radius:var(--radius-md);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease;box-shadow:0 0 24px #22c55e66}.restart-build-btn:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 0 32px #22c55e99}.restart-build-btn:disabled{opacity:.5;cursor:not-allowed}.detail-content{display:flex;flex-direction:column;gap:2rem}.detail-section{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem}.section-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-item label{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.info-item span{font-size:.9375rem;color:var(--text-primary)}.steps-list{display:flex;flex-direction:column;gap:1rem}.step-item{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem}.step-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.step-number{font-weight:600;color:var(--text-primary)}.step-error{background-color:#ef44441a;border:1px solid var(--accent-red);color:var(--accent-red);padding:.75rem;border-radius:var(--radius-sm);margin-bottom:.75rem;font-size:.875rem}.step-logs{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.75rem;font-family:var(--font-mono);font-size:.8125rem;max-height:300px;overflow-y:auto}.log-line{color:var(--text-secondary);line-height:1.5}.commits-list{display:flex;flex-direction:column;gap:1rem}.commit-item{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem}.commit-header{display:flex;gap:1rem;align-items:center;margin-bottom:.5rem;font-size:.875rem}.commit-hash{font-family:var(--font-mono);background-color:var(--bg-primary);padding:.25rem .5rem;border-radius:var(--radius-sm);color:var(--brand-red-light)}.commit-author{color:var(--text-secondary)}.commit-date{color:var(--text-muted);margin-left:auto}.commit-message{color:var(--text-primary);line-height:1.5}.validation-issues{background-color:#f59e0b1a;border:2px solid var(--status-paused);border-left:4px solid var(--brand-red);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 0 0 1px #e639461a}.validation-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--status-paused)}.validation-header svg{flex-shrink:0}.validation-header h3{font-size:1.125rem;font-weight:600;margin:0}.validation-issues-list{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}.validation-issue-item{display:flex;gap:.75rem;padding:.5rem 0;color:var(--text-primary);font-size:.875rem;line-height:1.6}.validation-issue-item:not(:last-child){border-bottom:1px solid var(--border-color)}.issue-bullet{color:var(--status-paused);font-weight:700;font-size:1.25rem;line-height:1.4;flex-shrink:0}.issue-text{flex:1;font-family:var(--font-mono)}.validation-help{color:var(--text-secondary);font-size:.875rem;margin:0}.tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color)}.tab{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-size:.9375rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.tab:hover{color:var(--text-primary);background:var(--bg-tertiary);border-bottom-color:var(--brand-red-light)}.tab.active{color:var(--brand-red);border-bottom-color:var(--brand-red)}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .375rem;background:var(--bg-tertiary);border-radius:10px;font-size:.75rem;font-weight:600;color:var(--text-secondary)}.tab.active .tab-badge{background:var(--brand-red);color:#fff}.detail-section.full-width{padding:0;background:transparent;border:none}.build-preparation-error{background-color:#ef44441a;border:2px solid var(--accent-red);border-left:4px solid var(--accent-red);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.preparation-error-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--accent-red)}.preparation-error-header h3{font-size:1.125rem;font-weight:600;margin:0}.preparation-error-details{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}.preparation-error-item{display:flex;gap:.75rem;padding:.5rem 0;color:var(--text-primary);font-size:.875rem;line-height:1.6}.preparation-error-item:not(:last-child){border-bottom:1px solid var(--border-color)}.preparation-error-item .issue-type{color:var(--accent-red);font-weight:600;font-size:.8125rem;font-family:var(--font-mono);white-space:nowrap;flex-shrink:0}.preparation-error-item .issue-description{flex:1;font-family:var(--font-mono);font-size:.8125rem}.preparation-error-hint{color:var(--text-secondary);font-size:.875rem;margin:0}.agents-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:var(--accent-blue);margin-bottom:.5rem}.stat-label{font-size:.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.input-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.input-label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.required{color:var(--accent-red);margin-left:.25rem}.input{width:100%;padding:.75rem 1rem;font-size:.9375rem;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all .2s ease;font-family:inherit}.input:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #e639461a}.input:disabled{opacity:.5;cursor:not-allowed}.input-error{border-color:var(--accent-red)}.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.input-error-text{font-size:.75rem;color:var(--accent-red)}.select-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.select-label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.select{width:100%;padding:.75rem 3rem .75rem 1rem;font-size:.9375rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-weight:500;transition:all .2s ease;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-sm);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234fc3f7' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:12px 8px}.select:hover{border-color:var(--accent-blue);background-color:var(--bg-hover);box-shadow:var(--shadow-md)}.select:focus{outline:none;border-color:var(--accent-blue);background-color:var(--bg-hover);box-shadow:0 0 0 3px #4fc3f733}.select option{background-color:var(--bg-secondary);color:var(--text-primary);padding:.75rem 1rem;font-weight:500}.select option:hover,.select option:focus,.select option:checked{background-color:var(--bg-tertiary);color:var(--text-primary)}.select option:checked{background:var(--bg-hover)}.select:disabled{opacity:.5;cursor:not-allowed}.select-error{border-color:var(--accent-red)}.select-error:focus{box-shadow:0 0 0 3px #ef44441a}.select-error-text{font-size:.75rem;color:var(--accent-red)}.checkbox-group{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.checkbox-group label{display:flex;align-items:center;gap:.75rem;cursor:pointer;color:var(--text-primary);font-size:.9375rem}.checkbox-group input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer;accent-color:var(--accent-blue)}.checkbox-group span{-webkit-user-select:none;user-select:none}.branches-list{display:flex;flex-wrap:wrap;gap:.5rem}.text-muted{color:var(--text-secondary);font-style:italic}.actions-cell{display:flex;gap:.5rem}.disabled-row{opacity:.6}.project-row{font-weight:600;background:var(--bg-tertiary);border-bottom:2px solid var(--border-color)!important}.project-row:hover{background:var(--bg-hover)}.branch-count{font-weight:400;font-size:.875rem;color:var(--text-secondary);margin-left:.5rem}.branch-row{background:var(--bg-secondary)}.branch-row:hover{background:var(--bg-tertiary)}.branch-indent{font-family:var(--font-mono);font-size:.9375rem;color:var(--text-primary);padding-left:1rem;display:inline-flex;align-items:center}.branch-indent:before{content:"";display:inline-block;width:20px;height:1px;background:var(--border-color);margin-right:.5rem}.project-properties{background:var(--color-surface);border-radius:8px;padding:1.5rem}.project-properties .no-properties{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;color:var(--color-text-secondary)}.project-properties .no-properties svg{margin-bottom:1rem;opacity:.5}.project-properties .no-properties p{font-size:1rem;margin:0 0 .5rem;color:var(--color-text)}.project-properties .no-properties-hint{font-size:.875rem;color:var(--color-text-secondary)}.project-properties .properties-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border);gap:1rem}.project-properties .properties-title{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--color-text)}.project-properties .properties-meta{font-size:.875rem;color:var(--color-text-secondary);margin:0}.project-properties .properties-edit-actions{display:flex;gap:.5rem}.project-properties .properties-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.project-properties .properties-table{width:100%;border-collapse:collapse;font-size:.875rem}.project-properties .properties-table thead{background:var(--color-background);border-bottom:2px solid var(--color-border)}.project-properties .properties-table th{padding:.875rem 1rem;text-align:left;font-weight:600;color:var(--color-text);white-space:nowrap}.project-properties .properties-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .15s ease}.project-properties .properties-table tbody tr:last-child{border-bottom:none}.project-properties .properties-table tbody tr:hover{background:var(--color-surface)}.project-properties .properties-table tbody tr.required-row{border-left:3px solid var(--color-primary)}.project-properties .properties-table tbody tr.editing-row{background:var(--color-surface)}.project-properties .properties-table td{padding:.875rem 1rem;vertical-align:middle}.project-properties .property-name-column{width:25%;min-width:150px}.project-properties .property-value-column{width:30%;min-width:200px}.project-properties .property-default-column{width:20%;min-width:150px}.project-properties .property-description-column{width:25%}.project-properties .property-name-cell{font-weight:500}.project-properties .property-name{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-text);cursor:help;position:relative}.project-properties .property-name:hover{color:var(--color-primary)}.project-properties .required-indicator{color:var(--color-danger, #dc3545);font-size:1rem;font-weight:700;line-height:1}.project-properties .property-value,.project-properties .default-value{display:inline-block;background:var(--color-background);padding:.375rem .625rem;border-radius:4px;font-family:Courier New,monospace;font-size:.8125rem;color:var(--color-primary);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-properties .property-value.masked{opacity:.5;-webkit-user-select:none;user-select:none;letter-spacing:.1em}.project-properties .not-set,.project-properties .no-default,.project-properties .no-description{color:var(--color-text-secondary);font-style:italic;font-size:.8125rem}.project-properties .property-value-input{width:100%;padding:.5rem .75rem;font-size:.8125rem;font-family:Courier New,monospace;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text);transition:all .15s ease}.project-properties .property-value-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #0d6efd1a}.project-properties .property-value-input::placeholder{color:var(--color-text-secondary);opacity:.7}.project-properties .property-description-cell{color:var(--color-text-secondary);line-height:1.5}.project-properties .properties-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.project-properties .info-box{display:flex;gap:.75rem;padding:1rem;background:#0d6efd1a;border:1px solid rgba(13,110,253,.3);border-radius:6px;font-size:.875rem;color:var(--color-text)}.project-properties .info-box svg{flex-shrink:0;margin-top:.125rem;color:var(--color-primary)}.project-properties .info-text{line-height:1.6}.project-properties .info-text strong{font-weight:600;color:var(--color-text)}@media(max-width:768px){.project-properties .properties-header{flex-direction:column;align-items:stretch}.project-properties .properties-edit-actions{justify-content:flex-start}}.tab-navigation{display:flex;gap:.5rem;margin-bottom:2rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.tab-button{flex:1;padding:.875rem 1.5rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.9375rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.tab-button:before{display:none}.tab-button:hover:not(.active){color:var(--text-primary);border-color:var(--border-color);background:var(--bg-tertiary)}.tab-button.active{background:var(--bg-tertiary);border-color:var(--accent-blue);color:var(--text-primary);box-shadow:var(--shadow-sm)}.form-container{max-width:1400px}.form-section{position:relative;isolation:isolate;background:var(--bg-secondary);border:1px solid var(--border-color);box-shadow:var(--shadow-md);border-radius:var(--radius-lg);padding:2rem;margin-bottom:1.5rem}.form-section:before{display:none}.form-section h2{margin-top:0;margin-bottom:1rem;font-size:1.25rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.section-description{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--text-primary);text-transform:uppercase;font-size:.875rem;letter-spacing:.03em}.form-group small{display:block;margin-top:.25rem;color:var(--text-secondary);font-size:.85rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.info-item{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.info-item label{font-size:.75rem;color:var(--text-secondary);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.info-item span{color:var(--text-primary);font-size:.95rem;font-weight:500}.branch-input-group{display:flex;gap:.75rem;margin-bottom:1.5rem}.branch-input-group input{flex:1}.checkbox-group{display:flex;flex-direction:column;gap:.25rem}.checkbox-group label{display:flex!important;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.checkbox-group span{font-weight:500}.branches-table{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);box-shadow:var(--shadow-sm)}.branches-table table{width:100%;border-collapse:collapse}.branches-table th{background:var(--bg-tertiary);padding:.875rem 1rem;text-align:left;font-weight:700;color:var(--text-primary);border-bottom:1px solid var(--border-color);text-transform:uppercase;font-size:.8125rem;letter-spacing:.05em}.branches-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.branches-table tbody tr:last-child td{border-bottom:none}.branches-table tbody tr{transition:all .2s ease}.branches-table tbody tr:hover{background:var(--bg-tertiary)}.disabled-branch{opacity:.5}.timestamp-cell{display:flex;flex-direction:column;gap:.25rem}.commit-sha{font-family:var(--font-mono);color:var(--text-secondary);font-size:.75rem}.branch-actions{display:flex;gap:.5rem;align-items:center}.empty-state-small{padding:3rem 2rem;text-align:center;color:var(--text-secondary);background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-md);font-size:.9rem}.header-actions{display:flex;gap:.75rem}.select-input{width:100%;padding:.75rem 1rem;font-size:.9375rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);transition:all .2s ease;font-family:inherit;cursor:pointer;box-shadow:var(--shadow-sm)}.select-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4fc3f733}.select-input:disabled{opacity:.5;cursor:not-allowed}.select-input option{background-color:var(--bg-secondary);color:var(--text-primary)}.loading-text{color:var(--text-secondary);font-style:italic;padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.floating-action-bar{position:fixed;bottom:2rem;right:2rem;display:flex;gap:.75rem;z-index:100;animation:slideInUp .3s ease-out}.floating-action-bar .btn{box-shadow:var(--shadow-lg)}.floating-action-bar .btn:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-lg)}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.branch-properties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.branch-property-card,.build-property-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm)}.branch-property-card h4,.build-property-card h4{margin:0 0 1rem;color:var(--text-primary);font-size:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.branch-property-list,.build-property-grid{display:flex;flex-direction:column;gap:.75rem}.branch-property-item,.build-property-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.property-info{display:flex;gap:.5rem;align-items:baseline;flex:1;overflow:hidden}.property-label{font-weight:600;color:var(--text-secondary);font-size:.8125rem;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.property-value-compact{color:var(--text-primary);font-family:var(--font-mono);font-size:.875rem;background:var(--bg-tertiary);padding:.125rem .375rem;border-radius:var(--radius-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-note{font-size:.75rem;color:var(--text-muted);font-style:italic;flex-shrink:0}.promote-button-compact{padding:.375rem .75rem;background:linear-gradient(135deg,#22c55ecc,#16a34acc);border:1px solid rgba(34,197,94,.6);border-radius:var(--radius-sm);color:#0b1220;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease;flex-shrink:0}.promote-button-compact:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 0 16px #22c55e66}.promote-button-compact:disabled{opacity:.5;cursor:not-allowed}.property-promote-actions{display:flex;gap:.5rem;flex-shrink:0}.build-properties-list{display:flex;flex-direction:column;gap:1.5rem}.build-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;border-bottom:1px solid var(--border-color);padding-bottom:.5rem}.build-branch-label{font-size:.8125rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:.25rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.no-properties{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-md)}.no-properties svg{margin-bottom:1rem;color:var(--text-secondary);opacity:.6}.no-properties p{margin:0 0 .5rem;color:var(--text-primary);font-size:1rem;font-weight:600}.no-properties-hint{color:var(--text-secondary);font-size:.875rem}@media(max-width:768px){.floating-action-bar{bottom:1rem;right:1rem;left:1rem;justify-content:stretch}.floating-action-bar .btn{flex:1}.branch-properties-grid{grid-template-columns:1fr}}.property-input-group{display:flex;gap:.75rem;align-items:center;margin-bottom:1.5rem;padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.properties-table{margin-top:1.5rem;overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary)}.properties-table table{width:100%;border-collapse:collapse}.properties-table th{text-align:left;padding:1rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-primary);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}.properties-table td{padding:.875rem 1rem;border-bottom:1px solid var(--border-color)}.properties-table tbody tr{transition:background .2s ease}.properties-table tbody tr:hover{background:var(--bg-tertiary)}.properties-table tbody tr:last-child td{border-bottom:none}.property-schema-info{margin-bottom:2rem;padding:1.5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.property-schema-info h3{margin-top:0;margin-bottom:.5rem;font-size:1rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.property-schema-info p{margin-bottom:1rem;color:var(--text-secondary);font-size:.875rem}.property-list{display:flex;flex-direction:column;gap:.75rem}.property-schema-item{display:flex;flex-direction:column;gap:.375rem;padding:.875rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.property-schema-item .property-name{font-family:var(--font-mono);font-weight:600;color:var(--text-primary);font-size:.9375rem;display:flex;align-items:center;gap:.5rem}.property-description{margin:0;color:var(--text-secondary);font-size:.8125rem;font-style:italic}.commit-sha{font-family:var(--font-mono);font-size:.875rem;color:var(--text-secondary)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1.5rem;padding:1.5rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.info-item{display:flex;flex-direction:column;gap:.375rem}.info-item label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.info-item span{color:var(--text-primary);font-size:.9375rem}.property-value-display{font-family:var(--font-mono);font-size:.875rem;color:var(--text-primary);background:var(--bg-tertiary);padding:.375rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);display:inline-block;max-width:100%;overflow-wrap:break-word}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:2rem;line-height:1;cursor:pointer;padding:0;color:var(--text-secondary);transition:color .2s}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-error{background-color:#ef44441a;border:1px solid var(--status-failed);color:var(--status-failed);padding:1rem;border-radius:var(--radius-md);margin-bottom:1rem}.instructions-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:1.5rem}.instructions-section h3{margin:0 0 1rem;font-size:1rem;font-weight:500;color:var(--text-primary)}.instructions-list{margin:0;padding-left:1.5rem;color:var(--text-primary)}.instructions-list li{margin-bottom:.5rem;line-height:1.5}.instructions-list li:last-child{margin-bottom:0}.redirect-uri-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.redirect-uri-label{display:block;font-weight:500;color:var(--text-primary);margin-bottom:.5rem;font-size:.875rem}.redirect-uri-box{display:flex;align-items:center;gap:.5rem;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.75rem}.redirect-uri-code{flex:1;font-family:var(--font-mono);font-size:.875rem;color:var(--accent-blue);word-break:break-all}.copy-button{background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .2s}.copy-button:hover{background:var(--accent-blue-dark, #1e40af)}.copy-button:active{transform:scale(.98)}.docs-link{margin:1rem 0 0;padding-top:1rem;border-top:1px solid var(--border-color)}.docs-link a{color:var(--accent-blue);text-decoration:none;font-size:.875rem}.docs-link a:hover{text-decoration:underline}.form-section{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--border-color)}.error-banner,.success-banner{padding:1rem 1.5rem;border-radius:var(--radius-md);margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;border:1px solid}.error-banner{background-color:#ef44441a;border-color:var(--status-failed);color:var(--status-failed)}.success-banner{background-color:#10b9811a;border-color:var(--status-succeeded);color:var(--status-succeeded)}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0;line-height:1;color:inherit;opacity:.7;transition:opacity .2s}.close-button:hover{opacity:1}.oauth-providers{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:2rem}.oauth-providers h2{font-size:1rem;font-weight:500;margin:0 0 1rem;color:var(--text-primary)}.provider-buttons{display:flex;gap:1rem;flex-wrap:wrap}.connections-section{margin-top:2rem}.connections-section h2{font-size:1rem;font-weight:500;margin:0 0 1rem;color:var(--text-primary)}.empty-state{text-align:center;padding:3rem 1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.empty-state p{margin:.5rem 0}.empty-state .muted{color:var(--text-secondary);font-size:.875rem}.user-management .page-header{margin-bottom:2rem}.user-management .page-title{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.user-management .page-subtitle{font-size:.9375rem;color:var(--text-secondary)}.user-management .loading,.user-management .error,.user-management .no-users{padding:3rem;text-align:center;color:var(--text-secondary);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.user-management .error{color:var(--danger);border-color:#ef44444d;background:linear-gradient(135deg,rgba(239,68,68,.08) 0%,transparent 100%)}.user-management .users-table-container{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-md)}.user-management .user-cell{display:flex;align-items:center;gap:.75rem}.user-management .user-avatar-small,.user-management .user-avatar-small-placeholder{width:32px;height:32px;border-radius:50%;flex-shrink:0}.user-management .user-avatar-small{object-fit:cover;border:2px solid var(--border-color);box-shadow:var(--shadow-sm)}.user-management .user-avatar-small-placeholder{display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);color:var(--text-primary);font-weight:600;font-size:.875rem;border:2px solid var(--border-color)}.user-management .user-name{font-weight:500;color:var(--text-primary)}.user-management .current-user-badge{font-size:.625rem;padding:.125rem .5rem;margin-left:.25rem}.user-management .role-select{min-width:120px;font-size:.875rem;padding:.375rem .75rem}.user-management .role-select:disabled{opacity:.6;cursor:not-allowed}.user-management .status-badge{font-size:.75rem;padding:.25rem .75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.user-management .last-login{color:var(--text-secondary);font-size:.875rem}.user-management table th{padding:.875rem 1rem;font-size:.8125rem;text-transform:uppercase;letter-spacing:.5px}.user-management table td{padding:.75rem 1rem;font-size:.875rem}.system-settings .page-header{margin-bottom:2rem}.system-settings .page-title{font-size:1.875rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.system-settings .page-subtitle{font-size:.9375rem;color:var(--text-secondary)}.system-settings .settings-loading{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:3rem 2rem;text-align:center;color:var(--text-secondary)}.system-settings .settings-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);padding:.75rem 1rem;color:#ef4444;margin-bottom:1.5rem;font-size:.875rem}.system-settings .settings-section{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-md);margin-bottom:2rem;overflow:hidden}.system-settings .section-header{display:flex;align-items:center;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.system-settings .section-icon{font-size:1.5rem;flex-shrink:0}.system-settings .section-title{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.system-settings .section-description{font-size:.8125rem;color:var(--text-secondary);margin-top:.125rem}.system-settings .section-content{padding:1.5rem}.system-settings .form-row{margin-bottom:1.25rem}.system-settings .helper-text{font-size:.8125rem;color:var(--text-secondary);margin-top:.5rem;line-height:1.4}.system-settings .default-note{color:var(--accent-blue)}.system-settings .default-note strong{font-weight:600}.system-settings .save-actions{display:flex;align-items:center;gap:1rem;margin-top:1rem}.system-settings .save-success{font-size:.875rem;color:#22c55e;font-weight:500}.system-settings .last-updated{font-size:.75rem;color:var(--text-secondary);margin-top:1rem;opacity:.7}.system-settings .coming-soon-section{margin-top:2.5rem}.system-settings .coming-soon-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:1rem}.system-settings .coming-soon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.system-settings .coming-soon-card{display:flex;align-items:flex-start;gap:.75rem;padding:1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);opacity:.5}.system-settings .card-icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem}.system-settings .card-content{flex:1;min-width:0}.system-settings .card-label{font-size:.9375rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.system-settings .card-description{font-size:.8125rem;color:var(--text-secondary);line-height:1.4}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}code{font-family:var(--font-mono)}:root{--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--font-mono: "Consolas", "Monaco", "Courier New", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--z-base: 1;--z-dropdown: 1000;--z-modal: 2000;--z-tooltip: 3000}:root{--bg-primary: #1e1e1e;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--bg-hover: #474747;--text-primary: #e4e4e4;--text-secondary: #b8b8b8;--text-muted: #8c8c8c;--border-color: #404040;--border-focus: #4fc3f7;--brand-red: #ef5350;--brand-red-hover: #f44336;--brand-red-dark: #d32f2f;--brand-red-light: #ff6f6c;--accent-blue: #4fc3f7;--accent-blue-hover: #29b6f6;--accent-green: #4caf50;--accent-red: #ef5350;--accent-yellow: #ffb74d;--accent-purple: #ab47bc;--status-queued: #757575;--status-paused: #ffa726;--status-running: #42a5f5;--status-succeeded: #4caf50;--status-failed: #ef5350;--status-cancelled: #9e9e9e;--shadow-sm: 0 2px 4px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 8px 0 rgba(0, 0, 0, .4);--shadow-lg: 0 8px 16px 0 rgba(0, 0, 0, .5)}body{background-color:var(--bg-primary);color:var(--text-primary)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-md);border:2px solid var(--bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--bg-hover)}input:focus,textarea:focus,select:focus{border-color:var(--accent-blue)!important;box-shadow:0 0 0 3px #4fc3f733!important;background:var(--bg-secondary)!important}table{border-color:var(--border-color)!important;background:var(--bg-secondary)!important}th{background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%)!important;border-bottom:2px solid var(--accent-blue)!important;color:var(--text-primary)!important}td{border-color:var(--border-color)!important;color:var(--text-secondary)!important}tr:hover{background:var(--bg-tertiary)!important}.card{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-sm)!important}.container{background:var(--bg-primary)!important}.modal,.dialog{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-lg)!important}.modal-header{border-bottom:1px solid var(--border-color)!important;background:var(--bg-tertiary)!important}.tooltip{background:var(--bg-tertiary)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;box-shadow:var(--shadow-md)!important}.dropdown-menu{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-lg)!important}.dropdown-item{color:var(--text-secondary)!important}.dropdown-item:hover{background:var(--bg-tertiary)!important;color:var(--text-primary)!important}pre,code{background:var(--bg-tertiary)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important}a:not([class]){color:var(--accent-blue)}a:not([class]):hover{color:var(--accent-blue-hover)}.badge-queued{background:#75757533!important;color:var(--status-queued)!important;border:1px solid var(--status-queued)!important}.badge-paused{background:#ffa72633!important;color:var(--status-paused)!important;border:1px solid var(--status-paused)!important}.badge-running{background:#42a5f533!important;color:var(--status-running)!important;border:1px solid var(--status-running)!important}.badge-succeeded{background:#4caf5033!important;color:var(--status-succeeded)!important;border:1px solid var(--status-succeeded)!important}.badge-failed{background:#ef535033!important;color:var(--status-failed)!important;border:1px solid var(--status-failed)!important}.badge-cancelled{background:#9e9e9e33!important;color:var(--status-cancelled)!important;border:1px solid var(--status-cancelled)!important}.status-indicator-large{background:var(--bg-tertiary)!important;border:2px solid var(--border-color)!important}.status-indicator-large.status-running{border-color:var(--status-running)!important;box-shadow:0 0 8px #42a5f54d!important}.status-indicator-large.status-succeeded{border-color:var(--status-succeeded)!important;box-shadow:0 0 8px #4caf504d!important}.status-indicator-large.status-failed{border-color:var(--status-failed)!important;box-shadow:0 0 8px #ef53504d!important}.status-indicator-large.status-queued{border-color:var(--status-queued)!important}.status-indicator-large.status-paused{border-color:var(--status-paused)!important}.build-status-bar{background:var(--bg-secondary)!important;border-left:4px solid var(--border-color)!important}.build-status-bar.status-running{border-left-color:var(--status-running)!important}.build-status-bar.status-succeeded{border-left-color:var(--status-succeeded)!important}.build-status-bar.status-failed{border-left-color:var(--status-failed)!important}.build-status-bar.status-queued{border-left-color:var(--status-queued)!important}.build-status-bar.status-paused{border-left-color:var(--status-paused)!important}@keyframes glow{to{opacity:1;transform:none}}@keyframes rotate-glow{to{opacity:1;transform:none}}
