@import"https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700;800&family=DM+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&family=DM+Mono:wght@400;500&display=swap";.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0a0c2e}.login-card{background:#12153f;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:2.5rem 2rem;text-align:center;max-width:360px;width:100%}.login-logo{border-radius:10px;margin-bottom:1rem}.login-title{font-size:1.6rem;color:#fff;margin:0 0 .25rem}.login-subtitle{font-size:.85rem;color:#ffffff80;margin:0 0 1.5rem;font-weight:500;letter-spacing:.3px}.login-hint{font-size:.8rem;color:#fff6;margin:0 0 1.25rem}.login-button-wrap{display:flex;justify-content:center;margin-bottom:.5rem}.login-error{margin-top:1rem;padding:.6rem 1rem;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:.8rem}.home{flex:1;max-width:860px;width:100%;margin:0 auto;padding:3rem 1.5rem}.home-hero{text-align:center;margin-bottom:2.5rem}.home-hero h1{font-size:2rem;color:var(--dark);margin-bottom:.5rem}.home-hero p{color:var(--text-secondary);font-size:1rem}.demo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}.demo-card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;flex-direction:column;gap:.6rem}.demo-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px);text-decoration:none}.demo-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.demo-icon{width:44px;height:44px;border-radius:10px;background:var(--primary-bg);color:var(--primary);display:flex;align-items:center;justify-content:center}.demo-status{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.2rem .6rem;border-radius:20px}.demo-status.live{background:var(--success-bg);color:var(--success)}.demo-status.wip{background:var(--warning-bg);color:var(--warning)}.demo-status.soon{background:#6366f11a;color:#818cf8}.demo-card h3{font-size:1.1rem;color:var(--dark)}.demo-card p{font-size:.88rem;color:var(--text-secondary);line-height:1.55;flex:1}.demo-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.demo-tag{font-size:.72rem;font-weight:500;color:var(--text-secondary);background:var(--bg);padding:.2rem .55rem;border-radius:6px;border:1px solid var(--border-light)}.upload-container{max-width:640px;margin:0 auto}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:2.5rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-white)}.drop-zone:hover,.drop-zone.active{border-color:var(--primary);background:var(--primary-bg)}.drop-icon{color:var(--text-muted);margin-bottom:.75rem;transition:color .2s}.drop-zone:hover .drop-icon,.drop-zone.active .drop-icon{color:var(--primary)}.drop-text{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.75rem}.drop-types{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.type-badge{font-size:.72rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;letter-spacing:.2px}.type-doc{background:var(--primary-bg);color:var(--primary)}.type-sheet{background:var(--success-bg);color:var(--success)}.file-section{margin-top:1.5rem}.file-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.file-section-header h3{font-size:.95rem;color:var(--text)}.file-section-actions{display:flex;align-items:center;gap:.75rem}.file-count{display:flex;gap:.4rem;font-size:.8rem;color:var(--text-muted)}.add-more-btn{font-family:inherit;font-size:.78rem;font-weight:600;color:var(--primary);background:var(--primary-bg);border:1px solid var(--primary-light);border-radius:6px;padding:.3rem .7rem;cursor:pointer;transition:all .15s}.add-more-btn:hover{background:var(--primary);color:#fff}.count-sep{color:var(--border)}.file-grid{display:flex;flex-direction:column;gap:.5rem;max-height:280px;overflow-y:auto;padding-right:.25rem}.file-card{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .15s}.file-card:hover{border-color:var(--primary-light)}.file-card-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--bg)}.file-card-info{flex:1;min-width:0}.file-card-name{display:block;font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-card-size{font-size:.72rem;color:var(--text-muted)}.file-card-remove{flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--text-muted);padding:.25rem;border-radius:6px;display:flex;transition:all .15s}.file-card-remove:hover{color:var(--error);background:var(--error-bg)}.submit-btn{margin-top:1.25rem;width:100%;padding:.85rem 1.5rem;background:linear-gradient(to bottom,#1e65ff,#1953d1);border:1px solid #164cbf;color:#fff;border-radius:10px;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;position:relative;overflow:hidden;transition:all .2s}.submit-btn:hover{background:linear-gradient(to bottom,#1954d1,#174dbf);border-color:#174dbf}.submit-btn:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:skew(-25deg);animation:shine 3s infinite}@keyframes shine{0%,to{left:-100%}50%{left:130%}}.processing-card{margin-top:1.5rem;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;align-items:center;gap:1.5rem}.processing-spinner{flex-shrink:0}.processing-info{flex:1}.processing-info h3{font-size:1rem;margin-bottom:.25rem}.processing-step{font-size:.85rem;color:var(--primary);font-weight:500;margin-bottom:.75rem}.processing-progress{height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.processing-bar{height:100%;background:var(--gradient-loading);background-size:200% 100%;border-radius:3px;transition:width .8s ease;animation:shimmer 2s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.processing-time{display:flex;justify-content:space-between;margin-top:.5rem;font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.report h3{font-size:1.1rem;color:var(--dark);margin-bottom:.75rem}.report-item{background:var(--bg-white);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:.75rem;overflow:hidden}.report-item.report-validated{border-left:4px solid var(--success)}.report-item.report-flagged{border-left:4px solid var(--warning)}.report-item.report-unmatched{border-left:4px solid var(--error)}.report-item.report-extraction_failed{border-left:4px solid #b71c1c}.report-header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.1rem;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.report-header:hover{background:var(--bg)}.report-title{display:flex;align-items:center;gap:.6rem;min-width:0}.expand-icon{display:flex;align-items:center;color:var(--text-muted);transition:transform .2s;flex-shrink:0}.expand-icon.open{transform:rotate(180deg)}.doc-name{font-weight:500;font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-type{font-size:.72rem;font-weight:600;color:var(--primary);background:var(--primary-bg);padding:.15rem .55rem;border-radius:20px;flex-shrink:0;letter-spacing:.2px}.report-meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.census-row{font-size:.78rem;color:var(--text-muted)}.confidence-wrap{display:flex;align-items:center;gap:.4rem}.confidence-bar-track{width:48px;height:5px;background:var(--border-light);border-radius:3px;overflow:hidden}.confidence-bar-fill{height:100%;border-radius:3px;transition:width .3s}.confidence-value{font-size:.78rem;font-weight:700;font-family:monospace;min-width:2.2rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:20px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.badge-validated{background:var(--success-bg);color:var(--success)}.badge-flagged{background:var(--warning-bg);color:var(--warning)}.badge-unmatched{background:var(--error-bg);color:var(--error)}.badge-extraction_failed{background:#fef2f2;color:#b71c1c}.report-details{padding:1rem 1.25rem;border-top:1px solid var(--border-light);background:var(--bg)}.comparisons,.flags{margin-bottom:1rem}.comparisons h4,.flags h4{font-size:.85rem;margin-bottom:.5rem;color:var(--text-secondary);font-weight:600}.table-wrap{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:.85rem}th{background:var(--border-light);text-align:left;padding:.55rem .7rem;font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.3px;color:var(--text-secondary)}td{padding:.5rem .7rem;border-bottom:1px solid var(--border-light);background:var(--bg-white)}.field-name{font-weight:500;color:var(--text)}.mono{font-family:monospace;font-size:.8rem;color:var(--text)}.match-cell{text-align:center}.row-mismatch td{background:#fffbeb}.notes{font-size:.78rem;color:var(--text-muted);font-style:italic}.flags ul{list-style:none}.flag{display:flex;align-items:baseline;gap:.5rem;padding:.4rem 0;font-size:.85rem}.severity{font-size:.6rem;font-weight:700;padding:.15rem .45rem;border-radius:20px;flex-shrink:0;letter-spacing:.3px}.severity-critical{background:var(--error-bg);color:var(--error)}.severity-high{background:#fff3e0;color:#e65100}.severity-medium{background:var(--warning-bg);color:var(--warning)}.severity-info{background:var(--info-bg);color:var(--info)}.flag-field{font-weight:600;flex-shrink:0;color:var(--text)}.flag-msg{color:var(--text-secondary)}.raw-data{margin-top:.5rem}.raw-data summary{cursor:pointer;font-size:.85rem;color:var(--text-muted);font-weight:500}.raw-data pre{background:var(--dark);color:#e0f7fa;padding:.85rem;border-radius:var(--radius-sm);font-size:.78rem;overflow-x:auto;margin-top:.5rem}.excel-preview{background:var(--bg-white);border-radius:var(--radius);border:1px solid var(--border);padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;transition:border-color .15s}.excel-preview:hover{border-color:var(--success)}.excel-info{display:flex;align-items:center;gap:1rem}.excel-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:var(--success-bg);color:var(--success)}.excel-info h4{font-size:.95rem;color:var(--text);margin-bottom:.2rem}.excel-info p{font-size:.8rem;color:var(--text-muted);line-height:1.5}.download-btn{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;background:var(--success);color:#fff;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s}.download-btn:hover{background:#059669;text-decoration:none}.results-container{display:flex;flex-direction:column;gap:1.5rem}.results-header{display:flex;justify-content:space-between;align-items:flex-start}.results-header h2{font-size:1.4rem;color:var(--dark)}.job-id{font-size:.8rem;color:var(--text-muted);font-family:monospace;margin-top:.25rem}.reset-btn{padding:.6rem 1.2rem;background:linear-gradient(to bottom,#1e65ff,#1953d1);border:1px solid #164cbf;border-radius:8px;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;color:#fff;display:flex;align-items:center;gap:.5rem;transition:all .15s}.reset-btn:hover{background:linear-gradient(to bottom,#1954d1,#174dbf);border-color:#174dbf}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.card{background:var(--bg-white);border-radius:var(--radius);padding:1.25rem 1rem;text-align:center;border:1px solid var(--border);transition:border-color .15s,box-shadow .15s}.card:hover{box-shadow:var(--shadow-md)}.card-icon{margin-bottom:.5rem}.card-value{font-size:2rem;font-weight:700;line-height:1.1}.card-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:.3rem;font-weight:500}.card-total .card-icon,.card-total .card-value{color:var(--primary)}.card-census .card-icon,.card-census .card-value{color:var(--info)}.card-validated .card-icon,.card-validated .card-value{color:var(--success)}.card-flagged .card-icon,.card-flagged .card-value{color:var(--warning)}.card-unmatched .card-icon,.card-unmatched .card-value{color:var(--error)}.card-failed .card-icon,.card-failed .card-value{color:#b71c1c}.sdr-tool{flex:1;background:#0b0f1a;padding:2rem 1.5rem}.sdr-inner{max-width:640px;margin:0 auto}.sdr-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:24px;margin-bottom:20px}.sdr-field{margin-bottom:16px}.sdr-label{display:block;font-size:.7rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.sdr-optional{font-weight:400;opacity:.6}.sdr-input{width:100%;padding:12px 16px;font-size:15px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#f1f5f9;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;font-family:inherit}.sdr-input.dashed{border-style:dashed}.sdr-input::placeholder{color:#475569}.sdr-input:focus{border-color:#38bdf866;box-shadow:0 0 0 3px #38bdf81a}.sdr-role-buttons{display:flex;gap:8px}.sdr-role-btn{flex:1;padding:11px 12px;font-size:14px;font-weight:500;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#94a3b8;cursor:pointer;transition:all .2s;font-family:inherit}.sdr-role-btn:hover{border-color:#ffffff26;color:#cbd5e1}.sdr-role-btn.active{background:#38bdf81f;border-color:#38bdf866;color:#38bdf8;font-weight:700}.sdr-submit{width:100%;padding:14px 24px;font-size:15px;font-weight:700;background:linear-gradient(135deg,#38bdf8,#818cf8);color:#0b0f1a;border:none;border-radius:10px;cursor:pointer;transition:all .2s;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;font-family:inherit}.sdr-submit:disabled{background:#ffffff0a;color:#475569;cursor:not-allowed}.sdr-submit.loading{background:#38bdf826;color:#38bdf8;cursor:wait}.sdr-spinner{width:16px;height:16px;border:2px solid rgba(56,189,248,.3);border-top-color:#38bdf8;border-radius:50%;animation:sdr-spin .8s linear infinite}@keyframes sdr-spin{to{transform:rotate(360deg)}}.sdr-recent{margin-bottom:20px}.sdr-recent-label{font-size:.7rem;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}.sdr-recent-chips{display:flex;flex-wrap:wrap;gap:8px}.sdr-recent-chip{padding:6px 14px;font-size:13px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:8px;color:#94a3b8;cursor:pointer;transition:all .15s;font-family:inherit}.sdr-recent-chip:hover{background:#38bdf814;border-color:#38bdf833}.sdr-error{padding:16px 20px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:12px;color:#fca5a5;font-size:14px;margin-bottom:20px}.sdr-skeleton{background:#ffffff08;border:1px solid rgba(255,255,255,.04);border-radius:12px;padding:24px;animation:sdr-pulse 1.5s ease-in-out infinite}.sdr-skeleton-row{display:flex;align-items:center;gap:14px;margin-bottom:16px}.sdr-skeleton-row:last-child{margin-bottom:0}.sdr-skeleton-dot{width:7px;height:7px;border-radius:50%;background:#ffffff14;flex-shrink:0}.sdr-skeleton-label{height:8px;width:60px;background:#ffffff0a;border-radius:3px;margin-bottom:6px}.sdr-skeleton-line{height:16px;background:#ffffff0d;border-radius:4px}@keyframes sdr-pulse{0%,to{opacity:1}50%{opacity:.5}}.sdr-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.sdr-results-meta{font-size:13px;color:#64748b}.sdr-meta-company{color:#818cf8;font-weight:600}.sdr-meta-role{color:#38bdf8;font-weight:600}.sdr-new-search{padding:6px 12px;font-size:12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:6px;color:#64748b;cursor:pointer;font-family:inherit;transition:color .15s}.sdr-new-search:hover{color:#f1f5f9}.sdr-results-card{background:#ffffff06;border:1px solid rgba(255,255,255,.05);border-radius:12px;padding:24px;animation:sdr-fadeIn .3s ease-out}@keyframes sdr-fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.sdr-bullet{display:flex;align-items:flex-start;gap:14px;margin-bottom:20px}.sdr-bullet:last-child{margin-bottom:0}.sdr-bullet-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:8px}.sdr-bullet-label{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.sdr-bullet-text{font-size:17px;line-height:1.5;color:#cbd5e1}.sdr-bullet-text strong{font-weight:700;color:#f1f5f9}.sdr-empty{text-align:center;padding:40px 20px;color:#475569;font-size:14px;line-height:1.6}.sdr-empty-icon{font-size:32px;margin-bottom:12px;opacity:.5}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.testing-layout{display:grid;grid-template-columns:280px 1fr;height:calc(100vh - 110px);overflow:hidden}.testing-layout.with-panel{grid-template-columns:280px 1fr 400px}.testing-sidebar{background:var(--bg-white);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:16px;border-bottom:1px solid var(--border-light)}.sidebar-header h3{font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:10px}.sidebar-view-select{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.75rem;outline:none;background:var(--bg);color:var(--text);cursor:pointer;margin-bottom:8px;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.sidebar-view-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e65ff1a}.sidebar-search{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;outline:none;background:var(--bg)}.sidebar-search:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e65ff1a}.sidebar-list{flex:1;overflow-y:auto;padding:8px}.sidebar-feature-card{padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;margin-bottom:4px;transition:all .15s}.sidebar-feature-card:hover{background:var(--bg)}.sidebar-feature-card.selected{background:var(--primary-bg);border-color:var(--primary)}.sidebar-feature-card-header{display:flex;align-items:center;gap:8px}.coverage-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.coverage-dot.green{background:var(--success)}.coverage-dot.yellow{background:var(--warning)}.coverage-dot.red{background:var(--error)}.sidebar-feature-card-name{font-size:.82rem;font-weight:500;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-feature-card-meta{display:flex;align-items:center;gap:6px;margin-top:4px;padding-left:16px}.severity-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:1px 5px;border-radius:3px;background:var(--bg);color:var(--text-secondary)}.severity-badge.critical{background:var(--error-bg);color:var(--error)}.severity-badge.high{background:#fff1f2;color:#e11d48}.severity-badge.medium{background:var(--warning-bg);color:#b45309}.severity-badge.low{background:var(--info-bg);color:var(--info)}.test-count{font-size:.7rem;color:var(--text-muted)}.sidebar-feature-progress{font-size:.65rem;font-weight:600;color:var(--text-muted);flex-shrink:0}.sidebar-progress-bar{height:3px;background:var(--border-light);border-radius:2px;margin-top:6px;overflow:hidden}.sidebar-progress-fill{height:100%;border-radius:2px;transition:width .3s ease}.sidebar-progress-fill.green{background:var(--success)}.sidebar-progress-fill.red{background:var(--error)}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border-light)}.sidebar-add-btn{width:100%;padding:8px;background:var(--gradient-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .15s}.sidebar-add-btn:hover{opacity:.9}.testing-canvas{position:relative;background:var(--bg)}.testing-canvas .react-flow__node{cursor:pointer}.feature-node{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;min-width:180px;max-width:300px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s}.feature-node:hover{box-shadow:var(--shadow-md)}.feature-node.selected{border-color:var(--primary);box-shadow:0 0 0 2px #1e65ff26}.feature-node-coverage{position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px 0 0 3px}.feature-node-coverage.green{background:var(--success)}.feature-node-coverage.yellow{background:var(--warning)}.feature-node-coverage.red{background:var(--error)}.feature-node-name{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:4px;word-break:break-word}.feature-node-footer{display:flex;align-items:center;justify-content:space-between;gap:6px}.feature-node-tc-count{font-size:.7rem;color:var(--text-muted)}.feature-node.glow-green{box-shadow:0 0 8px #22c55e66,0 0 2px #22c55e33;animation:pulse-green 2s ease-in-out infinite}.feature-node.glow-red{box-shadow:0 0 6px #ef44444d}@keyframes pulse-green{0%,to{box-shadow:0 0 8px #22c55e66,0 0 2px #22c55e33}50%{box-shadow:0 0 14px #22c55e99,0 0 4px #22c55e4d}}.feature-node.glow-green.selected{box-shadow:0 0 0 2px #1e65ff26,0 0 8px #22c55e66}.feature-node.glow-red.selected{box-shadow:0 0 0 2px #1e65ff26,0 0 6px #ef44444d}.feature-node-progress{font-size:.65rem;font-weight:600;color:var(--text-muted)}.test-case-panel{background:var(--bg-white);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:16px;border-bottom:1px solid var(--border-light)}.panel-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.panel-header h3{font-size:.95rem;font-weight:600;color:var(--text)}.panel-close-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.2rem;padding:2px 6px;border-radius:4px}.panel-close-btn:hover{background:var(--bg);color:var(--text)}.panel-feature-desc{font-size:.78rem;color:var(--text-secondary);line-height:1.4}.panel-actions{display:flex;gap:6px;margin-top:10px}.panel-edit-btn,.panel-delete-btn{font-size:.72rem;padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:var(--bg-white);cursor:pointer;color:var(--text-secondary)}.panel-edit-btn:hover{border-color:var(--primary);color:var(--primary)}.panel-delete-btn:hover{border-color:var(--error);color:var(--error)}.jira-section{margin-top:10px;padding-top:10px;border-top:1px solid var(--border-light)}.jira-actions-row{display:flex;align-items:center;gap:8px}.panel-jira-btn{font-size:.72rem;padding:4px 10px;border-radius:4px;border:1px solid #0052CC;background:#0052cc;color:#fff;cursor:pointer;font-weight:500;transition:opacity .15s;white-space:nowrap;flex-shrink:0}.panel-jira-btn:hover{opacity:.85}.panel-jira-btn:disabled{opacity:.5;cursor:not-allowed}.jira-link-group{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.jira-link-input{flex:1;min-width:0;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:.72rem;outline:none;background:var(--bg-white)}.jira-link-input:focus{border-color:#0052cc;box-shadow:0 0 0 2px #0052cc1a}.jira-link-btn{font-size:.72rem;padding:4px 8px;border-radius:4px;border:1px solid #0052CC;background:transparent;color:#0052cc;cursor:pointer;font-weight:500;white-space:nowrap}.jira-link-btn:hover{background:#0052cc0f}.jira-link-btn:disabled{opacity:.5;cursor:not-allowed}.jira-linked{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#0052cc0f;border:1px solid rgba(0,82,204,.2);border-radius:var(--radius-sm)}.jira-linked-icon{font-size:.85rem}.jira-linked-url{flex:1;font-size:.75rem;font-weight:600;color:#0052cc;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jira-linked-url:hover{text-decoration:underline}.jira-unlink-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:0 2px;line-height:1}.jira-unlink-btn:hover{color:var(--error)}.jira-success-banner{margin-top:8px;padding:6px 10px;background:var(--success-bg);color:var(--success);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.jira-success-banner a{color:inherit;font-weight:600;text-decoration:underline}.panel-body{flex:1;overflow-y:auto;padding:12px 16px}.panel-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-section-header h4{font-size:.82rem;font-weight:600;color:var(--text)}.panel-add-tc-btn{font-size:.72rem;padding:4px 10px;border-radius:4px;border:1px solid var(--primary);background:transparent;color:var(--primary);cursor:pointer;font-weight:500}.panel-add-tc-btn:hover{background:var(--primary-bg)}.tc-card{background:var(--bg);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;cursor:pointer;transition:border-color .15s}.tc-card:hover{border-color:var(--border)}.tc-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.tc-card-title{font-size:.8rem;font-weight:500;color:var(--text);flex:1}.result-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:3px}.result-badge.pass{background:var(--success-bg);color:var(--success)}.result-badge.fail{background:var(--error-bg);color:var(--error)}.result-badge.skip{background:var(--bg);color:var(--text-muted)}.result-badge.blocked{background:var(--warning-bg);color:var(--warning)}.tc-card-meta{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:.7rem;color:var(--text-muted)}.tc-card-actions{display:flex;gap:4px;margin-top:6px}.tc-action-btn{font-size:.7rem;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-white);cursor:pointer;color:var(--text-secondary)}.tc-action-btn:hover{border-color:var(--primary);color:var(--primary)}.tc-action-btn.quick-pass{border-color:var(--success);color:var(--success);font-weight:600}.tc-action-btn.quick-pass:hover{background:var(--success-bg)}.tc-action-btn.quick-fail{border-color:var(--error);color:var(--error);font-weight:600}.tc-action-btn.quick-fail:hover{background:#fef2f2}.panel-empty{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:.82rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-white);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:90%;max-width:480px;max-height:85vh;overflow-y:auto}.modal-header{padding:20px 24px 0}.modal-header h3{font-size:1rem;font-weight:600}.modal-body{padding:16px 24px}.modal-footer{padding:0 24px 20px;display:flex;gap:8px;justify-content:flex-end}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:.78rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;font-family:inherit;outline:none;background:var(--bg-white)}.form-group textarea{min-height:80px;resize:vertical}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #1e65ff1a}.btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:.82rem;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-white);color:var(--text);transition:all .15s}.btn:hover{background:var(--bg)}.btn-primary{background:var(--gradient-primary);color:#fff;border:none}.btn-primary:hover{opacity:.9}.btn-danger{border-color:var(--error);color:var(--error)}.btn-danger:hover{background:var(--error-bg)}.run-result-buttons{display:flex;gap:8px;margin-bottom:14px}.run-result-btn{flex:1;padding:10px;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-white);cursor:pointer;text-align:center;font-size:.78rem;font-weight:600;text-transform:uppercase;transition:all .15s}.run-result-btn.active-pass{border-color:var(--success);background:var(--success-bg);color:var(--success)}.run-result-btn.active-fail{border-color:var(--error);background:var(--error-bg);color:var(--error)}.run-result-btn.active-skip{border-color:var(--text-muted);background:var(--bg);color:var(--text-secondary)}.run-result-btn.active-blocked{border-color:var(--warning);background:var(--warning-bg);color:var(--warning)}.run-result-btn:hover{border-color:var(--text-muted)}.run-history{margin-top:20px;border-top:1px solid var(--border-light);padding-top:16px}.run-history h4{font-size:.82rem;font-weight:600;margin-bottom:10px}.run-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:.78rem}.run-item:last-child{border-bottom:none}.run-item-meta{flex:1;color:var(--text-secondary)}.run-item-meta strong{color:var(--text);font-weight:500}.run-item-attachments{display:flex;gap:4px;margin-top:4px}.attachment-chip{font-size:.68rem;padding:2px 6px;background:var(--info-bg);color:var(--info);border-radius:3px;cursor:pointer;text-decoration:none}.attachment-chip:hover{text-decoration:underline}.file-upload-zone{border:2px dashed var(--border);border-radius:var(--radius-sm);padding:16px;text-align:center;cursor:pointer;color:var(--text-muted);font-size:.78rem;transition:border-color .15s}.file-upload-zone:hover{border-color:var(--primary)}.file-upload-zone.has-files{border-style:solid;border-color:var(--success)}.uploaded-files{margin-top:8px}.uploaded-file{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background:var(--bg);border-radius:4px;font-size:.75rem;margin-bottom:4px}.uploaded-file button{background:none;border:none;cursor:pointer;color:var(--error);font-size:.8rem}.feature-attachments{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-light)}.feature-attachments .file-upload-zone{padding:10px;font-size:.75rem}.attachment-list{margin-top:8px}.attachment-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-light);margin-bottom:4px;font-size:.78rem}.attachment-item:hover{background:var(--bg)}.attachment-thumbnail{width:48px;height:48px;object-fit:cover;border-radius:4px;cursor:pointer;border:1px solid var(--border-light);flex-shrink:0}.attachment-thumbnail:hover{border-color:var(--primary)}.attachment-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg);border-radius:4px;font-size:1.2rem;flex-shrink:0}.attachment-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.attachment-name{font-size:.78rem;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-meta{font-size:.68rem;color:var(--text-muted)}.attachment-actions{display:flex;gap:2px;flex-shrink:0}.attachment-actions button{background:none;border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--text-secondary);font-size:.78rem;padding:2px 6px}.attachment-actions button:hover{border-color:var(--primary);color:var(--primary)}.attachment-actions button:last-child:hover{border-color:var(--error);color:var(--error)}.attachment-preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer}.attachment-preview-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;cursor:default}.attachment-preview-content img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:var(--radius);box-shadow:0 8px 32px #0006}.attachment-preview-close{position:absolute;top:-12px;right:-12px;background:var(--bg-white);border:none;border-radius:50%;width:28px;height:28px;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);color:var(--text);z-index:1}.attachment-preview-close:hover{background:var(--error-bg);color:var(--error)}.attachment-preview-filename{margin-top:8px;color:#fff;font-size:.82rem;opacity:.8}.sidebar-header-top{display:flex;align-items:center;justify-content:space-between}.auto-arrange-btn{padding:4px 10px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.7rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s}.auto-arrange-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-bg)}.canvas-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:.85rem;gap:8px}.canvas-empty-icon{font-size:2rem;opacity:.4}.cs-claude-root,.cs-claude-root *,.cs-claude-root *:before,.cs-claude-root *:after{margin:0;padding:0;box-sizing:border-box}.cs-claude-root{--bg-0: #0d0e11;--bg-1: #13151a;--bg-2: #1a1c23;--bg-3: #22252e;--bg-4: #2a2d37;--accent: #e8c547;--accent-dim: rgba(232, 197, 71, .15);--accent-hover: #f0d060;--risk-high: #e05555;--risk-med: #d4894a;--risk-low: #4db87a;--text-primary: #e8e8ec;--text-secondary: #8b8d97;--text-tertiary: #5a5c66;--border-subtle: rgba(255, 255, 255, .06);--border-light: rgba(255, 255, 255, .1);--border-medium: rgba(255, 255, 255, .18);--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 30px rgba(0,0,0,.5);background:var(--bg-0);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;height:100%;min-height:calc(100vh - 120px)}.cs-claude-root h1,.cs-claude-root h2,.cs-claude-root h3,.cs-claude-root h4,.cs-claude-root h5{font-family:var(--font-display);font-weight:600}.cs-claude-root input,.cs-claude-root textarea,.cs-claude-root select,.cs-claude-root button{font-family:inherit;font-size:inherit;color:inherit;border:none;outline:none;background:none}.cs-claude-root button{cursor:pointer}.cs-claude-root a{color:var(--accent);text-decoration:none}.cs-claude-root ::-webkit-scrollbar{width:6px;height:6px}.cs-claude-root ::-webkit-scrollbar-track{background:transparent}.cs-claude-root ::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.cs-claude-root .badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.02em}.cs-claude-root .badge-high{background:#e0555526;color:var(--risk-high)}.cs-claude-root .badge-med{background:#d4894a26;color:var(--risk-med)}.cs-claude-root .badge-low{background:#4db87a26;color:var(--risk-low)}.cs-claude-root .badge-draft{background:#e8c5471f;color:var(--accent)}.cs-claude-root .badge-queued{background:#8282ff1f;color:#99f}.cs-claude-root .badge-approved{background:#4db87a1f;color:var(--risk-low)}.cs-claude-root .badge-sent{background:#4db87a33;color:var(--risk-low)}.cs-claude-root .badge-stub{background:#ffffff0f;color:var(--text-secondary)}.cs-claude-root .btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-weight:500;font-size:13px;transition:all .15s ease;white-space:nowrap}.cs-claude-root .btn-primary{background:var(--accent);color:#0d0e11}.cs-claude-root .btn-primary:hover{background:var(--accent-hover)}.cs-claude-root .btn-primary:disabled{opacity:.4;cursor:not-allowed}.cs-claude-root .btn-secondary{background:var(--bg-3);border:1px solid var(--border-light);color:var(--text-primary)}.cs-claude-root .btn-secondary:hover{background:var(--bg-4);border-color:var(--border-medium)}.cs-claude-root .btn-ghost{color:var(--text-secondary);padding:6px 10px}.cs-claude-root .btn-ghost:hover{color:var(--text-primary);background:#ffffff0a}.cs-claude-root .btn-danger{background:#e055551f;color:var(--risk-high)}.cs-claude-root .btn-danger:hover{background:#e0555538}.cs-claude-root .btn-sm{padding:5px 10px;font-size:12px}.cs-claude-root .input{width:100%;padding:10px 12px;background:var(--bg-1);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color .15s}.cs-claude-root .input:focus{border-color:var(--accent)}.cs-claude-root .input::placeholder{color:var(--text-tertiary)}.cs-claude-root .select{padding:10px 12px;background:var(--bg-1);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.cs-claude-root .card{background:var(--bg-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:20px}.cs-claude-root .label{display:block;font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.cs-claude-root .fade-in{animation:fadeIn .25s ease both}.cs-claude-root .slide-in-right{animation:slideInRight .3s ease both}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#080a3a;position:sticky;top:0;z-index:100}.header-inner{max-width:1140px;margin:0 auto;padding:.7rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:.6rem;text-decoration:none}.logo:hover{text-decoration:none}.logo-icon{border-radius:6px}.logo-text{font-size:1.25rem;color:#fff}.logo-lead{font-weight:700}.logo-beam{font-weight:300}.header-right{display:flex;align-items:center;gap:1rem}.header-tag{font-size:.75rem;font-weight:600;color:#fff;background:#ffffff1f;padding:.3rem .75rem;border-radius:20px;letter-spacing:.3px}.header-user{display:flex;align-items:center;gap:.5rem}.header-avatar{width:24px;height:24px;border-radius:50%}.header-email{font-size:.75rem;color:#fff9}.header-logout{font-size:.7rem;color:#ffffff73;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:.2rem .5rem;cursor:pointer;transition:all .15s}.header-logout:hover{color:#fff;background:#ffffff26}.header-nav{border-top:1px solid rgba(255,255,255,.08)}.header-nav-inner{max-width:1140px;margin:0 auto;padding:0 1.5rem;display:flex;gap:.25rem}.nav-link{color:#ffffff8c;font-size:.8rem;font-weight:500;padding:.6rem .85rem;text-decoration:none;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.nav-link:hover{color:#ffffffd9;text-decoration:none}.nav-link.active{color:#fff;border-bottom-color:var(--primary)}.app-main{flex:1;max-width:1140px;width:100%;margin:0 auto;padding:2rem 1.5rem}.page-intro{text-align:center;margin-bottom:2rem}.page-intro h2{font-size:1.5rem;color:var(--dark);margin-bottom:.5rem}.page-intro p{color:var(--text-secondary);font-size:.95rem;max-width:560px;margin:0 auto}.error-banner{display:flex;align-items:center;gap:.75rem;background:var(--error-bg);border:1px solid #fecaca;color:var(--error);padding:.85rem 1.25rem;border-radius:var(--radius);margin-top:1rem;font-size:.9rem;font-weight:500}.steps-bar{background:var(--bg-white);border-bottom:1px solid var(--border)}.steps-inner{max-width:600px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:center}.step{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.step-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;border:2px solid var(--border);color:var(--text-muted);background:var(--bg-white);transition:all .3s}.step.active .step-dot{border-color:transparent;background:linear-gradient(to bottom,#1e65ff,#1953d1);color:#fff}.step.done .step-dot{border-color:var(--success);background:var(--success);color:#fff}.step-label{font-size:.8rem;font-weight:500;color:var(--text-muted);transition:color .3s}.step.active .step-label{color:var(--primary);font-weight:600}.step.done .step-label{color:var(--success)}.step-line{width:40px;height:2px;background:var(--border);margin:0 .75rem;border-radius:1px;flex-shrink:0}.step.done+.step .step-line,.step.done .step-line{background:var(--success)}.app-footer{text-align:center;padding:1.5rem;font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border-light)}.app-footer strong{color:var(--primary);font-weight:600}:root{--primary: #1e65ff;--primary-light: #4d8aff;--primary-dark: #1953d1;--primary-border: #164cbf;--primary-bg: rgba(30, 101, 255, .06);--primary-bg-hover: rgba(30, 101, 255, .1);--dark: #111111;--text: #111111;--text-secondary: #777777;--text-muted: #a8a8a8;--bg: #f9f9f9;--bg-white: #ffffff;--border: #e5e7eb;--border-light: #f0f0f5;--success: #10b981;--success-bg: #ecfdf5;--warning: #f59e0b;--warning-bg: #fffbeb;--error: #ef4444;--error-bg: #fef2f2;--info: #3b82f6;--info-bg: #eff6ff;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px rgba(0, 0, 0, .05), 0 2px 4px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .06), 0 4px 6px rgba(0, 0, 0, .03);--gradient-primary: linear-gradient(to bottom, #1e65ff, #1953d1);--gradient-loading: linear-gradient(90deg, #FFE2B1 0%, #AC52FF 33.33%, #2647F8 66.67%, #3B9CF6 100%)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:SF Pro Display,SF Pro,Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-weight:700;line-height:1.3}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
