.journey-header{background:var(--surface-1);border-bottom:1px solid var(--border-default);scrollbar-width:none;align-items:center;gap:0;padding:.625rem 1rem;display:flex;overflow-x:auto}.journey-header::-webkit-scrollbar{display:none}.journey-stage-wrapper{flex-shrink:0;align-items:center;display:flex}.journey-connector{background:var(--border-default);width:24px;height:2px;transition:background var(--duration-slow) var(--ease-out)}.journey-connector--done{background:var(--color-primary-500)}.journey-connector--future{background:var(--border-default)}.journey-stage{color:var(--text-tertiary);white-space:nowrap;transition:all var(--duration-base) var(--ease-out);background:0 0;border:1.5px solid #0000;border-radius:999px;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.75rem;font-weight:500;display:flex}.journey-stage--current{background:var(--color-primary-50);border-color:var(--color-primary-200);font-weight:600}.journey-stage--current .journey-stage-label{background:linear-gradient(90deg, var(--color-primary-600), var(--color-primary-400));-webkit-text-fill-color:transparent;color:var(--color-primary-700);-webkit-background-clip:text;background-clip:text}[data-theme=dark] .journey-stage--current{background:#221c40;border-color:#382e6b}[data-theme=dark] .journey-stage--current .journey-stage-label{-webkit-text-fill-color:var(--color-primary-300);color:var(--color-primary-300);background:0 0}.journey-stage--done{color:var(--color-primary-500)}.journey-stage--future{opacity:.5}.journey-stage-icon{align-items:center;line-height:1;display:flex}.journey-stage-label{line-height:1}.journey-refine-loop{color:var(--color-primary-500);align-items:center;margin:0 .375rem;display:flex}.phase-progress{flex-direction:column;gap:1rem;height:100%;padding:1.25rem;display:flex;overflow-y:auto}.phase-progress-header{justify-content:space-between;align-items:center;display:flex}.phase-progress-title{align-items:center;gap:.5rem;display:flex}.phase-progress-title h3{color:var(--text-primary);margin:0;font-size:1rem;font-weight:600;line-height:1.2}.phase-progress-icon{align-items:center;font-size:1.25rem;line-height:1;display:inline-flex}.phase-progress-actions{align-items:center;gap:.5rem;display:flex}.phase-progress-techy-btn{border:1px solid var(--border-default);background:var(--surface-2);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-base) var(--ease-out);border-radius:999px;padding:.25rem .75rem;font-size:.7rem;font-weight:500}.phase-progress-techy-btn:hover{border-color:var(--color-primary-400);color:var(--color-primary-600)}.phase-progress-techy-btn.active{background:var(--color-primary-50);border-color:var(--color-primary-300);color:var(--color-primary-600)}[data-theme=dark] .phase-progress-techy-btn.active{color:var(--color-primary-300);background:#221c40}.phase-progress-cancel-btn{color:#d14747;cursor:pointer;transition:all var(--duration-base) var(--ease-out);background:0 0;border:1px solid #e08585;border-radius:999px;padding:.25rem .75rem;font-size:.7rem;font-weight:500}.phase-progress-cancel-btn:hover{background:#faebeb}.phase-progress-bar-label{color:var(--text-tertiary);font-size:.65rem;font-weight:500;position:absolute;top:12px;right:0}.phase-progress-feedback{background:var(--color-primary-50);color:var(--color-primary-700);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8rem;font-style:italic;animation:.3s fadeInSlide;display:flex}[data-theme=dark] .phase-progress-feedback{color:var(--color-primary-300);background:#1c1736}.phase-progress-feedback-dot{background:var(--color-primary-500);border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse}.phase-progress-steps{flex-direction:column;gap:0;padding:.25rem 0;display:flex}.phase-progress-step{transition:opacity var(--duration-base) var(--ease-out);gap:.75rem;padding:.75rem 0;display:flex}.phase-progress-step.pending{opacity:.5}.phase-progress-step.current{opacity:1}.phase-progress-step-indicator{flex-direction:column;flex-shrink:0;align-items:center;width:28px;display:flex}.phase-progress-step-circle{border:2px solid var(--border-default);background:var(--surface-0);width:28px;height:28px;color:var(--text-tertiary);transition:all var(--duration-slow) var(--ease-out);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.phase-progress-step-circle.running{border-color:var(--color-primary-500);background:var(--color-primary-50);color:var(--color-primary-600);animation:2s infinite pulseRing;box-shadow:0 0 0 4px #705cd626}[data-theme=dark] .phase-progress-step-circle.running{background:#251f47;box-shadow:0 0 0 4px #705cd61a}.phase-progress-step-circle.completed{color:#fff;background:#2eb867;border-color:#2eb867}.phase-progress-step-circle.failed{color:#d14747;background:#fee7e7;border-color:#d14747}.phase-progress-step-number{font-size:.7rem;font-weight:600}.phase-progress-step-line{background:var(--border-default);width:2px;min-height:12px;transition:background var(--duration-slow) var(--ease-out);flex:1}.phase-progress-step-line.completed{background:#2eb867}.phase-progress-step-content{flex:1;padding-top:.25rem}.phase-progress-step-title{color:var(--text-primary);font-size:.85rem;font-weight:500;line-height:1.4}.phase-progress-step.current .phase-progress-step-title{font-weight:600}.phase-progress-step-files{transition:all var(--duration-base) var(--ease-out);margin-top:.25rem}.phase-progress-step-files-count{color:#33995e;font-size:.7rem;font-weight:500}.phase-progress-step-files-list{flex-wrap:wrap;gap:.25rem;margin-top:.25rem;animation:.2s fadeInSlide;display:flex}.phase-progress-step-file{background:var(--surface-2);color:var(--text-secondary);font-size:.65rem;font-family:var(--font-mono);border-radius:4px;padding:.125rem .375rem}.phase-progress-step-error{color:#d14747;background:#fdf1f1;border:1px solid #f5d6d6;border-radius:6px;margin-top:.25rem;padding:.375rem .5rem;font-size:.75rem}.phase-progress-spinner{border:2px solid var(--color-primary-200);border-top-color:var(--color-primary-600);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}.phase-progress-retry{background:#fdf1f1;border:1px solid #f5d6d6;border-radius:10px;align-items:center;gap:.75rem;padding:.75rem;display:flex}.phase-progress-retry-hint{color:var(--text-secondary);font-size:.75rem}.phase-progress-done{text-align:center;background:#effbf4;border:1px solid #c6ecd6;border-radius:10px;padding:.75rem}.phase-progress-done-text{color:#2e6b47;font-size:.85rem;font-weight:500}.test-checklist{flex-direction:column;gap:1rem;height:100%;padding:1.25rem;display:flex;overflow-y:auto}.test-checklist-header{justify-content:space-between;align-items:center;display:flex}.test-checklist-title{align-items:center;gap:.5rem;display:flex}.test-checklist-title h3{color:var(--text-primary);font-size:1rem;font-weight:600}.test-checklist-icon{font-size:1.25rem}.test-checklist-progress{align-items:center;gap:.5rem;display:flex}.test-checklist-progress-label{color:var(--text-tertiary);font-size:.7rem;font-weight:500}.test-checklist-intro{color:var(--text-secondary);font-size:.8rem;line-height:1.5}.test-checklist-items{flex-direction:column;gap:.25rem;display:flex}.test-checklist-section-header{color:var(--text-secondary);letter-spacing:.01em;padding:.625rem 0 .25rem;font-size:.75rem;font-weight:600}.test-checklist-section-header:first-child{padding-top:0}.test-checklist-item{border:1px solid var(--border-subtle);background:var(--surface-0);transition:all var(--duration-base) var(--ease-out);border-radius:10px;flex-wrap:wrap;align-items:flex-start;gap:.625rem;padding:.625rem .75rem;display:flex}.test-checklist-item:hover{border-color:var(--border-default);background:var(--surface-1)}.test-checklist-item.checked{opacity:.7}.test-checklist-item.has-issue{background:#fef6f6;border-color:#ebadad}[data-theme=dark] .test-checklist-item.has-issue{background:#2e1919;border-color:#6b2e2e}.test-checklist-checkbox{cursor:pointer;color:#29a35c;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;padding:0;display:flex}.test-checklist-checkbox-empty{border:2px solid var(--border-default);width:18px;height:18px;transition:border-color var(--duration-base) var(--ease-out);border-radius:4px}.test-checklist-checkbox:hover .test-checklist-checkbox-empty{border-color:var(--color-primary-400)}.test-checklist-item-text{color:var(--text-primary);flex:1;font-size:.8rem;line-height:1.5}.test-checklist-item-text.checked{color:var(--text-tertiary);text-decoration:line-through}.test-checklist-item-actions{flex-shrink:0}.test-checklist-flag-btn{cursor:pointer;opacity:.3;transition:opacity var(--duration-base) var(--ease-out);background:0 0;border:none;padding:.125rem .375rem;font-size:.75rem}.test-checklist-item:hover .test-checklist-flag-btn{opacity:1}.test-checklist-issue-badge{color:#c33;background:#fce8e8;border-radius:4px;padding:.125rem .375rem;font-size:.65rem;font-weight:500}.test-checklist-issue-input{width:100%;margin-top:.375rem;padding-left:calc(22px + .625rem)}.test-checklist-issue-textarea{border:1px solid var(--border-default);background:var(--surface-0);width:100%;color:var(--text-primary);font-family:var(--font-sans);resize:none;border-radius:8px;padding:.5rem;font-size:.8rem}.test-checklist-issue-textarea:focus{border-color:var(--color-primary-400);outline:none;box-shadow:0 0 0 3px #705cd61a}.test-checklist-issue-actions{justify-content:flex-end;gap:.5rem;margin-top:.375rem;display:flex}.test-checklist-issue-cancel,.test-checklist-issue-submit{cursor:pointer;border:none;border-radius:6px;padding:.25rem .75rem;font-size:.75rem;font-weight:500}.test-checklist-issue-cancel{background:var(--surface-2);color:var(--text-secondary)}.test-checklist-issue-submit{color:#fff;background:#d14747}.test-checklist-issue-submit:disabled{opacity:.5;cursor:not-allowed}.test-checklist-empty{text-align:center;padding:2rem}.test-checklist-empty p{color:var(--text-tertiary);font-size:.85rem}.test-checklist-footer{justify-content:center;padding-top:.5rem;display:flex}.sidebar-github-row{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.25rem;padding:.375rem .75rem;display:flex}.sidebar-github-btn{border:1px solid var(--border-default);background:var(--surface-0);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-base) var(--ease-out);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;align-items:center;gap:.375rem;padding:.3rem .5rem;font-size:.7rem;font-weight:500;display:flex;overflow:hidden}.sidebar-github-btn:hover{border-color:var(--color-primary-400);color:var(--text-primary)}.sidebar-github-btn:disabled{opacity:.5;cursor:not-allowed}.sidebar-github-icon{flex-shrink:0;font-size:.8rem}.sidebar-github-badge{background:var(--color-primary-100,#e0e7ff);color:var(--color-primary-600,#4f46e5);border-radius:999px;flex-shrink:0;margin-left:auto;padding:.05rem .3rem;font-size:.62rem;font-weight:600}.sidebar-github-link{border:1px solid var(--border-default);background:var(--surface-0);color:var(--text-secondary);transition:all var(--duration-base) var(--ease-out);border-radius:6px;padding:.3rem .5rem;font-size:.7rem;text-decoration:none}.sidebar-github-link:hover{border-color:var(--color-primary-400);color:var(--color-primary-600)}.deploy-action-bar{border-top:1px solid var(--border-default);background:var(--surface-1);flex-shrink:0;padding:.75rem 1rem}.deploy-action-bar-inner{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.deploy-action-btn{cursor:pointer;transition:all var(--duration-base) var(--ease-out);white-space:nowrap;border:none;border-radius:8px;padding:.4rem .875rem;font-size:.78rem;font-weight:600;text-decoration:none}.deploy-action-btn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.deploy-action-btn:disabled{opacity:.35;cursor:not-allowed}.deploy-action-link{background:var(--surface-0);color:var(--color-primary-600);border:1px solid var(--border-default);font-weight:500}.deploy-action-link:hover{border-color:var(--color-primary-400)}.deploy-action-gate-msg{color:var(--text-tertiary);margin-left:auto;font-size:.7rem;font-style:italic}.audit-pass-badge{color:#fff;background:#2eb867;border-radius:100px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:4px;padding:0 4px;font-size:.6rem;font-weight:700;display:inline-flex}.deploy-security-badge{color:#22c55e;white-space:nowrap;align-self:center;font-size:.72rem}.blocker-panel{background:#ef44440d;border-top:1px solid #ef44444d;flex-shrink:0;padding:.75rem 1rem}.blocker-panel-header{align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.blocker-severity-badge{text-transform:uppercase;letter-spacing:.06em;color:#ef4444;background:#ef444426;border:1px solid #ef44444d;border-radius:100px;flex-shrink:0;padding:.15rem .5rem;font-size:.6rem;font-weight:700}.blocker-panel-title{color:#ef4444;font-size:.78rem;font-weight:500}.blocker-findings-list{flex-direction:column;gap:.4rem;max-height:240px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.blocker-finding-item{background:var(--surface-0);border:1px solid #ef444433;border-radius:6px;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.5rem .625rem;display:flex}.blocker-finding-body{flex:1;min-width:0}.blocker-finding-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin:0 0 .15rem;font-size:.82rem;font-weight:600;overflow:hidden}.blocker-finding-detail{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 .15rem;font-size:.77rem;line-height:1.45;display:-webkit-box;overflow:hidden}.blocker-finding-file{font-size:.7rem;font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.blocker-finding-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.25rem;display:flex}.blocker-finding-error{color:#ef4444;text-align:right;word-break:break-word;max-width:140px;font-size:.68rem}.blocker-resolve-btn{color:#ef4444;cursor:pointer;white-space:nowrap;transition:all var(--duration-fast,.12s) ease;font-size:.75rem;font-weight:600;font-family:var(--font-sans);background:0 0;border:1px solid #ef444466;border-radius:6px;padding:.3rem .75rem}.blocker-resolve-btn:hover:not(:disabled){background:#ef444414;border-color:#ef444499}.blocker-resolve-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes stageEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stage-enter{animation:stageEnter var(--duration-slow) var(--ease-out) both}@media (prefers-reduced-motion:reduce){.stage-enter{animation:none}}@keyframes fadeInSlide{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulseRing{0%{box-shadow:0 0 #705cd64d}70%{box-shadow:0 0 0 8px #705cd600}to{box-shadow:0 0 #705cd600}}@keyframes spin{to{transform:rotate(360deg)}}
