.drawing-table-container{overflow-y:auto;flex:1}.drawing-table{width:100%;border-collapse:collapse;font-size:13px}.drawing-table thead{background:#0f172a;position:sticky;top:0;z-index:1}.drawing-table th{padding:10px 12px;text-align:left;color:#94a3b8;font-weight:500;border-bottom:2px solid #334155}.drawing-table td{padding:10px 12px;border-bottom:1px solid #334155;color:#e0e0e0}.drawing-table tbody tr{cursor:pointer;transition:background .2s}.drawing-table tbody tr:hover{background:#1e293b}.drawing-table tbody tr.selected{background:#1e3a8a}.drawing-id{font-family:monospace;font-weight:500}.revision-badge{display:inline-block;padding:2px 8px;background:#334155;border-radius:4px;font-size:11px;color:#94a3b8}.match-score{font-weight:600}.loading-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px;font-weight:500}.loading-spinner .spinner{width:36px;height:36px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 40px;color:#64748b;font-size:14px}.empty-state p{margin:0}.equipment-diff-panel{display:flex;flex-direction:column;height:100%}.score-info{color:#10b981}.tag-cell{font-family:monospace;font-weight:600;color:#60a5fa}.untagged-equipment-panel{display:flex;flex-direction:column;height:100%}.match-info{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#0f172a;border-radius:6px;margin-bottom:12px;font-size:13px}.type-filter{padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e0e0e0;font-size:12px}.assoc-text-cell{display:flex;flex-wrap:wrap;gap:4px}.assoc-badge{display:inline-block;padding:2px 6px;border-radius:3px;font-size:10px}.assoc-badge.sizing{background:#60a5fa33;color:#60a5fa;font-weight:500}.assoc-badge.tag{background:#fbbf2433;color:#fbbf24}.assoc-badge.text{background:#94a3b833;color:#94a3b8}.assoc-badge.annotation{background:#a855f733;color:#a855f7}.view-btn{padding:4px 10px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:4px;color:#fff;font-size:11px;cursor:pointer;transition:opacity .2s}.modal-content{background:#1e293b;border-radius:8px;width:90%;max-width:480px;box-shadow:0 20px 40px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #334155}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#f1f5f9}.close-btn{background:none;border:none;font-size:24px;color:#94a3b8;cursor:pointer;padding:0;line-height:1}.close-btn:hover{color:#f1f5f9}.modal-body{padding:20px}.warning-banner{background:#422006;border:1px solid #854d0e;color:#fcd34d;padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:16px}.shape-info{background:#0f172a;border-radius:6px;padding:12px;margin-bottom:20px}.info-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #1e293b}.info-row:last-child{border-bottom:none}.info-row .label{color:#94a3b8;font-size:13px}.info-row .value{color:#f1f5f9;font-size:13px;font-family:SF Mono,Monaco,monospace}.form-group label{display:block;color:#cbd5e1;font-size:13px;font-weight:500;margin-bottom:6px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6}.form-group .hint{display:block;color:#64748b;font-size:12px;margin-top:4px}.error-message{background:#450a0a;border:1px solid #dc2626;color:#fca5a5;padding:10px 12px;border-radius:6px;font-size:13px;margin-top:12px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid #334155}.cancel-btn{padding:8px 16px;background:#334155;border:none;border-radius:6px;color:#f1f5f9;font-size:14px;cursor:pointer}.cancel-btn:hover{background:#475569}.save-btn{padding:8px 16px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.save-btn:hover{background:#2563eb}.save-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.clusters-panel{display:flex;flex-direction:column;height:100%}.match-info{display:flex;justify-content:space-between;padding:10px;background:#0f172a;border-radius:6px;margin-bottom:12px;font-size:13px}.revision-info{color:#60a5fa;font-weight:500}.diff-sub-tabs{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}.diff-sub-tab{padding:6px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}.diff-sub-tab:hover{border-color:#475569;color:#f1f5f9}.diff-sub-tab.active{background:var(--tab-color);border-color:var(--tab-color);color:#fff}.diff-sub-tab .count{margin-left:4px;opacity:.8}.diff-table-container{flex:1;overflow-y:auto}.diff-table{width:100%;border-collapse:collapse;font-size:12px}.diff-table th{padding:8px;text-align:left;color:#94a3b8;font-weight:500;border-bottom:1px solid #334155;background:#0f172a;position:sticky;top:0}.diff-table td{padding:8px;border-bottom:1px solid #1e293b;color:#e0e0e0}.diff-table tbody tr:hover{background:#1e293b}.type-cell{font-weight:600}.sizing-cell{color:#60a5fa;font-weight:500}.tag-cell{color:#fbbf24}.position-cell{font-family:monospace;font-size:11px;color:#94a3b8}.view-btn{padding:4px 10px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border:none;border-radius:4px;color:#fff;font-size:11px;cursor:pointer}.view-btn:hover{opacity:.9}.error-state{color:#ef4444;padding:20px;text-align:center}.actions-cell{display:flex;gap:6px}.save-ref-btn{padding:4px 10px;background:#334155;border:1px solid #475569;border-radius:4px;color:#94a3b8;font-size:11px;cursor:pointer;transition:all .2s}.save-ref-btn:hover{background:#10b981;border-color:#10b981;color:#fff}.side-by-side-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#1e293b;border-radius:12px;width:95vw;height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:#0f172a;border-bottom:1px solid #334155}.modal-header h3{margin:0;color:#f1f5f9;font-size:16px}.zoom-controls{display:flex;align-items:center;gap:8px}.zoom-controls button{padding:6px 12px;background:#334155;border:none;border-radius:4px;color:#e0e0e0;cursor:pointer}.zoom-controls span{min-width:60px;text-align:center;color:#94a3b8}.close-btn{width:36px;height:36px;background:#ef4444;border:none;border-radius:50%;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#dc2626}.viewers-container{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:2px;overflow:hidden}.viewer-panel{display:flex;flex-direction:column;overflow:hidden}.viewer-label{padding:8px 15px;font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.viewer-label.source{background:linear-gradient(135deg,#7f1d1d,#991b1b);color:#fca5a5}.viewer-label.target{background:linear-gradient(135deg,#064e3b,#065f46);color:#6ee7b7}.canvas-viewport{flex:1;overflow:hidden;cursor:grab;background:#0f172a}.canvas-viewport canvas{transform-origin:0 0}.modal-footer{padding:10px 20px;background:#0f172a;border-top:1px solid #334155;text-align:center;color:#64748b;font-size:12px}.pipeline-dashboard{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0a0e27;color:#e0e0e0;min-height:100vh;padding:20px}.pipeline-header{background:linear-gradient(135deg,#1e293b,#0f172a);padding:20px 30px;border-radius:12px;margin-bottom:20px;border:1px solid #334155}.pipeline-header h1{font-size:28px;font-weight:600;color:#60a5fa;margin:0 0 8px}.pipeline-header .subtitle{color:#94a3b8;font-size:14px;margin:0}.match-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat-card{padding:16px;border-radius:10px;border:1px solid}.stat-card.excellent{background:linear-gradient(135deg,#064e3b,#065f46);border-color:#10b981}.stat-card.good{background:linear-gradient(135deg,#78350f,#92400e);border-color:#f59e0b}.stat-card.poor{background:linear-gradient(135deg,#7f1d1d,#991b1b);border-color:#ef4444}.stat-card.no-match{background:linear-gradient(135deg,#1e293b,#334155);border-color:#475569}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;opacity:.8}.stat-value{font-size:28px;font-weight:700}.stat-range{font-size:12px;opacity:.7;margin-top:4px}.search-bar{display:flex;gap:10px;margin-bottom:20px}.search-bar input{flex:1;padding:10px 14px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px}.search-bar input:focus{outline:none;border-color:#3b82f6}.btn-refresh{padding:10px 20px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-weight:500;cursor:pointer;transition:background .2s}.btn-refresh:hover{background:#2563eb}.revision-filter{padding:10px 14px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;cursor:pointer;min-width:180px}.revision-filter:focus{outline:none;border-color:#3b82f6}.drawing-count{display:flex;align-items:center;padding:0 14px;color:#94a3b8;font-size:14px;white-space:nowrap}.main-content{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 1200px){.main-content{grid-template-columns:1fr}}.drawings-panel,.details-panel{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:20px;max-height:600px;overflow:hidden;display:flex;flex-direction:column}.diff-tabs{display:flex;gap:8px;margin-bottom:15px;border-bottom:2px solid #334155;padding-bottom:10px}.diff-tab{padding:8px 16px;background:transparent;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:13px;cursor:pointer;transition:all .2s}.diff-tab:hover{background:#334155;color:#f1f5f9}.diff-tab.active{background:#3b82f6;border-color:#60a5fa;color:#fff}.diff-content{flex:1;overflow-y:auto}.loading-spinner{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:#94a3b8}.spinner{width:24px;height:24px;border:3px solid rgba(148,163,184,.2);border-top-color:#60a5fa;border-radius:50%;animation:spin .75s linear infinite}.empty-state{text-align:center;padding:40px;color:#94a3b8}.badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500}.badge-added{background:#10b981;color:#fff}.badge-removed{background:#ef4444;color:#fff}.badge-modified{background:#f59e0b;color:#fff}.badge-unchanged{background:#64748b;color:#fff}.revision-tabs{display:flex;gap:8px;margin-bottom:15px;border-bottom:2px solid #334155}.revision-tab{padding:10px 20px;background:none;border:none;border-bottom:3px solid transparent;color:#94a3b8;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.revision-tab:hover{color:#f1f5f9;border-bottom-color:#475569}.revision-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.tab-count{color:#64748b;font-size:12px;margin-left:4px}.contour-canvas-container{display:flex;flex-direction:column;height:100%;background:#0f172a;border-radius:8px;overflow:hidden}.canvas-controls{display:flex;align-items:center;gap:8px;padding:10px;background:#1e293b;border-bottom:1px solid #334155}.canvas-controls button{padding:6px 12px;background:#334155;border:none;border-radius:4px;color:#e0e0e0;cursor:pointer}.canvas-controls button:hover{background:#475569}.canvas-controls span{min-width:50px;text-align:center;color:#94a3b8;font-size:13px}.canvas-controls label{display:flex;align-items:center;gap:6px;margin-left:auto;color:#94a3b8;font-size:13px;cursor:pointer}.canvas-controls input[type=checkbox]{accent-color:#60a5fa}.canvas-viewport{flex:1;overflow:hidden;cursor:grab}.canvas-viewport:active{cursor:grabbing}.canvas-viewport canvas{display:block}.canvas-legend{display:flex;gap:15px;padding:8px 15px;background:#1e293b;border-top:1px solid #334155;font-size:11px}.projects-dashboard{display:flex;flex-direction:column;height:100%;min-height:0;padding:24px;overflow-y:auto}.projects-dashboard--empty{display:flex;align-items:center;justify-content:center}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155;gap:16px;flex-wrap:wrap}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:4px;font-size:14px}.breadcrumb-item{background:transparent;border:none;color:#94a3b8;font-size:14px;cursor:pointer;padding:6px 10px;border-radius:6px;transition:all .15s ease}.breadcrumb-item:hover{background:#3b82f626;color:#60a5fa}.breadcrumb-item.active{color:#f1f5f9;font-weight:600;background:#3b82f633;cursor:default}.breadcrumb-separator{color:#475569;font-size:12px;margin:0 2px}.search-bar{display:flex;align-items:center;gap:12px;flex:1;max-width:400px}.search-input-wrapper{position:relative;flex:1}.search-input-wrapper input{width:100%;padding:10px 14px 10px 38px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;transition:all .2s ease}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;pointer-events:none}.clipboard-indicator{display:flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#10b98126,#0596691a);border:1px solid rgba(16,185,129,.3);border-radius:8px;font-size:13px;color:#34d399}.clipboard-indicator .clip-icon{font-size:14px}.clipboard-indicator .clip-text{font-weight:500}.clipboard-indicator button{background:transparent;border:none;color:#f87171;cursor:pointer;padding:2px 6px;font-size:12px;border-radius:4px;margin-left:4px}.clipboard-indicator button:hover{background:#ef444433}.btn-create{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f64d}.btn-create:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.folders-section{margin-bottom:24px}.empty-folders{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#64748b;font-size:14px;text-align:center;background:#0f172a4d;border-radius:12px;border:1px dashed #334155}.folders-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-bottom:32px}.folder-card{background:linear-gradient(180deg,#0f172a,#020617);border:1px solid #334155;border-radius:12px;padding:20px 16px;text-align:center;cursor:pointer;transition:all .25s ease;position:relative;display:flex;flex-direction:column}.folder-card:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.folder-card.selected{border-color:#3b82f6;background:linear-gradient(180deg,#1e3a5f,#0f172a);box-shadow:0 4px 16px #3b82f64d}.folder-card.clipboard-item{border-color:#10b98180;box-shadow:0 0 0 2px #10b98133}.folder-content{flex:1}.folder-enter-btn{position:absolute;bottom:8px;right:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:6px;color:#60a5fa;cursor:pointer;font-size:14px;transition:all .15s ease;opacity:0}.folder-card:hover .folder-enter-btn{opacity:1}.folder-enter-btn:hover{background:#3b82f666;border-color:#3b82f6;transform:scale(1.1)}.folder-bottom-actions{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #334155;gap:8px}.folder-copy-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#10b98133;border:1px solid rgba(16,185,129,.4);border-radius:8px;color:#34d399;cursor:pointer;font-size:14px;transition:all .15s ease}.folder-copy-btn:hover{background:#10b98166;border-color:#10b981;transform:scale(1.08)}.folder-view-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;min-height:36px;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:8px;color:#60a5fa;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease}.folder-view-btn:hover{background:#3b82f666;border-color:#3b82f6;transform:scale(1.05)}.folder-icon{font-size:48px;margin-bottom:12px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.folder-name{color:#f1f5f9;font-weight:600;font-size:15px;margin-bottom:8px}.folder-revision{display:inline-block;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.folder-count{color:#64748b;font-size:13px}.drawings-section{background:linear-gradient(180deg,#0f172a,#020617);border-radius:12px;padding:24px;border:1px solid #334155}.drawings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.drawings-header h3{margin:0;color:#f1f5f9;font-size:18px;font-weight:600}.btn-upload{display:flex;align-items:center;gap:8px;padding:10px 18px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.btn-upload:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.btn-upload:disabled{background:#475569;cursor:not-allowed;transform:none;box-shadow:none}.upload-progress{background:linear-gradient(135deg,#3b82f626,#2563eb1a);padding:12px 18px;border-radius:8px;color:#60a5fa;margin-bottom:16px;border:1px solid rgba(59,130,246,.3);font-weight:500}.drop-zone{border:2px dashed #475569;border-radius:12px;padding:40px;text-align:center;color:#64748b;margin-bottom:24px;transition:all .25s ease;background:#0f172a80;width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-height:140px}.drop-zone:hover{border-color:#3b82f6;color:#94a3b8;background:#3b82f60d}.drop-zone p{margin:0;font-size:14px}.drawings-table{width:100%;border-collapse:separate;border-spacing:0}.drawings-table th{padding:14px 16px;text-align:left}.drawings-table td{padding:14px 16px;text-align:left;line-height:1}.drawings-table th{background:#1e293b80;color:#94a3b8;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #334155}.drawings-table th:first-child{border-radius:8px 0 0}.drawings-table th:last-child{border-radius:0 8px 0 0}.drawings-table td{color:#e2e8f0;border-bottom:1px solid #1e293b;font-size:14px;vertical-align:middle}.drawings-table tr:hover td{background:#3b82f60d}.drawings-table td.empty{color:#64748b;text-align:center;padding:40px 16px;font-style:italic}.revision-badge{display:inline-block;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.status-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.status-badge.queued,.status-badge.uploaded{background:linear-gradient(135deg,#f59e0b,#d97706);color:#1e1e1e}.status-badge.processing{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.status-badge.indexed,.status-badge.processed{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.status-badge.ready{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.status-badge.failed{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 40px;min-height:300px;color:#64748b;background:linear-gradient(180deg,#0f172a4d,#02061733);border-radius:16px;border:1px dashed #334155;margin:20px auto;max-width:500px}.empty-state-icon{font-size:64px;margin-bottom:20px;opacity:.6}.empty-state h3{color:#e2e8f0;margin-bottom:12px;font-size:20px;font-weight:600}.empty-state p{font-size:14px;max-width:320px;margin:0 auto;line-height:1.7;color:#94a3b8}.folders-grid .empty-state{grid-column:1 / -1}.loading,.error{padding:40px;text-align:center;color:#64748b;font-size:14px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px;font-weight:500;grid-column:1 / -1}.error{color:#f87171;background:#ef44441a;border-radius:8px;border:1px solid rgba(239,68,68,.2)}.modal h3{margin:0 0 24px;color:#f1f5f9;font-size:20px;font-weight:600}.modal input,.modal select{width:100%;padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:10px;color:#f1f5f9;font-size:14px;margin-bottom:16px;transition:all .2s ease}.modal input:focus,.modal select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.modal input::placeholder{color:#64748b}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.modal-actions button{padding:10px 20px;border-radius:10px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.modal-actions .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.modal-actions .btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.header-title-group{display:flex;align-items:center;gap:12px}.header-actions{display:flex;gap:6px}.btn-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#4755694d;border:1px solid #475569;border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:14px}.btn-icon:hover{background:#3b82f633;border-color:#3b82f6}.btn-icon.btn-danger:hover{background:#ef444433;border-color:#ef4444}.folder-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;opacity:0;transition:opacity .2s ease;z-index:5}.folder-card{position:relative}.folder-card:hover .folder-actions{opacity:1}.btn-icon-sm{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:#1e293bf2;border:1px solid #475569;border-radius:8px;cursor:pointer;transition:all .15s ease;font-size:14px}.btn-icon-sm:hover{background:#3b82f666;border-color:#3b82f6;transform:scale(1.08)}.btn-icon-sm.btn-danger:hover{background:#ef444466;border-color:#ef4444}.bulk-actions-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#3b82f626,#2563eb1a);border:1px solid rgba(59,130,246,.3);border-radius:10px;margin-bottom:16px}.bulk-actions-bar span{color:#60a5fa;font-weight:600;font-size:14px}.btn-sm{padding:10px 16px;min-height:38px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #3b82f64d}.btn-sm:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 10px #3b82f666}.btn-sm.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 2px 6px #ef44444d}.btn-sm.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 4px 10px #ef444466}.btn-sm.btn-secondary{background:#475569}.btn-sm.btn-secondary:hover{background:#64748b}.th-checkbox{width:40px;text-align:center}.drawings-table input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.selected-row td{background:#3b82f61a!important}.clipboard-row td{background:#10b9811a!important;border-left:2px solid #10b981}.actions-cell{white-space:nowrap;line-height:0;padding-bottom:32px!important}.actions-cell .btn-icon-sm{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:4px;width:32px;height:32px}.actions-cell .btn-icon-sm:last-child{margin-right:0}.form-label{display:block;color:#94a3b8;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.modal-subtitle{color:#94a3b8;font-size:14px;margin:-12px 0 20px}.modal-danger{border-color:#ef444466}.modal-danger h3{color:#f87171}.warning-text{color:#fbbf24;font-size:13px;margin:12px 0 0;padding:10px 14px;background:#fbbf241a;border-radius:8px;border:1px solid rgba(251,191,36,.2)}.info-text{color:#60a5fa;font-size:13px;margin:12px 0 0;padding:10px 14px;background:#3b82f61a;border-radius:8px;border:1px solid rgba(59,130,246,.2)}.modal-actions .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 8px #ef44444d}.modal-actions .btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.extraction-data-warning{margin:16px 0}.loading-extraction-data{display:flex;align-items:center;gap:10px;color:#94a3b8;font-size:13px;padding:12px;background:#1e293b80;border-radius:8px}.extraction-stats ul{margin:8px 0 0;padding-left:20px;font-size:13px;color:#e2e8f0}.extraction-stats li{margin:4px 0}.associated-jobs{margin-top:12px;padding:12px;background:#1e293b80;border-radius:8px;border:1px solid #334155}.jobs-label{margin:0 0 8px;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.associated-jobs ul{margin:0;padding-left:16px;font-size:13px;color:#e2e8f0}.associated-jobs li{margin:4px 0}.job-date{color:#64748b;font-size:12px}.more-jobs{color:#64748b;font-style:italic}.modal-upload{min-width:500px;max-width:700px;max-height:80vh;display:flex;flex-direction:column}.upload-files-list{max-height:400px;overflow-y:auto;margin-bottom:16px;padding-right:8px}.upload-file-item{background:#0f172a80;border:1px solid #334155;border-radius:10px;padding:16px;margin-bottom:12px}.upload-file-item:last-child{margin-bottom:0}.upload-file-original{display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #334155}.file-icon{font-size:20px}.file-original-name{color:#e2e8f0;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:#64748b;font-size:12px;flex-shrink:0}.upload-file-fields{display:grid;grid-template-columns:1fr 1fr 100px;gap:12px}.upload-file-fields input{margin-bottom:0;padding:10px 14px;font-size:13px}.upload-files-list::-webkit-scrollbar{width:6px}.upload-files-list::-webkit-scrollbar-track{background:#1e293b;border-radius:3px}.upload-files-list::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.upload-files-list::-webkit-scrollbar-thumb:hover{background:#64748b}.upload-progress-section{background:linear-gradient(180deg,#0f172acc,#1e293b80);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:20px}.upload-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.upload-progress-text{color:#e2e8f0;font-size:14px;font-weight:500}.upload-progress-count{color:#60a5fa;font-size:14px;font-weight:600;font-family:SF Mono,Menlo,monospace}.upload-progress-bar-container{height:12px;background:#0f172a;border-radius:6px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 1px 3px #0000004d}.upload-progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa,#3b82f6);background-size:200% 100%;border-radius:6px;transition:width .3s ease;animation:shimmer 1.5s ease-in-out infinite}.upload-progress-bar-fill.complete{background:linear-gradient(90deg,#10b981,#34d399,#10b981);animation:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-current-file{color:#94a3b8;font-size:13px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-complete-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#10b981;font-size:16px;font-weight:600;text-align:center;padding:24px 16px;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:12px;margin-top:8px;animation:fadeInScale .3s ease-out}.upload-complete-message:before{content:"✓";display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;font-size:24px;font-weight:700;border-radius:50%;box-shadow:0 4px 12px #10b98166}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.upload-in-progress{display:flex;align-items:center;gap:10px;color:#94a3b8;font-size:14px;padding:8px 0}.spinner-large{width:48px;height:48px;border:4px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#020617d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}.loading-content p{color:#e2e8f0;font-size:16px;font-weight:500;margin:0}.loading-content .loading-subtitle{color:#94a3b8;font-size:14px;font-weight:400}.pages-badge{display:inline-block;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;min-width:28px;text-align:center}.pages-badge.single{background:#64748b33;color:#94a3b8;border:1px solid rgba(100,116,139,.3)}.pages-badge.document{background:linear-gradient(135deg,#fbbf2433,#f59e0b26);color:#fbbf24;border:1px solid rgba(251,191,36,.4)}.pages-badge.split{background:linear-gradient(135deg,#10b98133,#05966926);color:#34d399;border:1px solid rgba(16,185,129,.4)}.page-indicator{color:#94a3b8;font-size:12px;font-style:italic;margin-left:6px}.btn-split{background:#fbbf2433!important;border-color:#fbbf2466!important}.btn-split:hover{background:#fbbf2466!important;border-color:#fbbf24!important}.upload-search-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #334155}.upload-search-input{flex:1;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px}.upload-search-input:focus{outline:none;border-color:#3b82f6}.upload-search-input::placeholder{color:#64748b}.upload-file-count{color:#94a3b8;font-size:13px;white-space:nowrap}.upload-file-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.btn-remove-file{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:14px;cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-remove-file:hover{background:#ef44444d;border-color:#f87171}.upload-no-results{padding:24px;text-align:center;color:#64748b;font-size:14px}.jobs-badge-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#64748b;font-size:12px;cursor:pointer;transition:all .15s ease}.jobs-badge-btn:hover{background:#334155;border-color:#475569}.jobs-badge-btn.has-jobs{background:#3b82f626;border-color:#3b82f64d;color:#60a5fa}.jobs-badge-btn.has-jobs:hover{background:#3b82f640}.jobs-badge-btn.expanded{background:#3b82f640;border-color:#3b82f6}.jobs-count{font-weight:600}.jobs-expand-icon{font-size:8px;color:#94a3b8}.jobs-loading{color:#94a3b8}.jobs-none{color:#475569}.expanded-row{background:#3b82f60d}.jobs-expanded-row{background:#0f172a}.jobs-expanded-row>td{padding:0!important;border-bottom:2px solid #334155}.jobs-history-container{padding:16px 20px;margin-left:40px;border-left:2px solid #3b82f6}.jobs-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.jobs-history-title{font-size:13px;font-weight:600;color:#e2e8f0}.jobs-history-count{font-size:11px;color:#64748b;padding:2px 8px;background:#1e293b;border-radius:4px}.jobs-history-table{width:100%;border-collapse:collapse;font-size:12px}.jobs-history-table th{text-align:left;padding:8px 12px;background:#1e293b;color:#94a3b8;font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155}.jobs-history-table td{padding:10px 12px;color:#e2e8f0;border-bottom:1px solid #1e293b}.jobs-history-table tbody tr:hover{background:#ffffff05}.job-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.job-status-badge.completed{background:#10b98126;color:#10b981}.job-status-badge.failed{background:#ef444426;color:#f87171}.job-status-badge.running{background:#3b82f626;color:#60a5fa}.jobs-history-empty{padding:16px;text-align:center;color:#64748b;font-size:13px}.jobs-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #1e293b}.jobs-page-btn{padding:6px 12px;background:#334155;border:1px solid #475569;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .15s}.jobs-page-btn:hover:not(:disabled){background:#475569}.jobs-page-btn:disabled{opacity:.4;cursor:not-allowed}.jobs-page-info{font-size:12px;color:#94a3b8}.classification-modal{max-width:500px;width:90%}.classification-modal .selection-info{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#10b98126,#10b9810d);border:1px solid rgba(16,185,129,.3);border-radius:8px;margin-bottom:16px}.classification-modal .selection-count{font-size:24px;font-weight:600;color:#10b981}.classification-modal .selection-label{color:#94a3b8;font-size:14px}.classification-modal .mode-description{color:#64748b;font-size:13px;line-height:1.5;margin-bottom:20px;padding:12px;background:#1e293b80;border-radius:6px}.classification-modal .form-group{margin-bottom:16px}.classification-modal .form-group label{display:block;margin-bottom:6px;color:#e2e8f0;font-size:13px;font-weight:500}.classification-modal .form-group select,.classification-modal .form-group input,.classification-modal .form-group textarea{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;transition:border-color .2s,box-shadow .2s}.classification-modal .form-group select:focus,.classification-modal .form-group input:focus,.classification-modal .form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.classification-modal .form-group textarea{resize:vertical;min-height:60px}.classification-modal .form-group .hint{display:block;margin-top:4px;color:#64748b;font-size:11px}.classification-modal .error-message{padding:10px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px;margin-top:12px}.classification-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #334155;margin-top:20px}.classification-modal .cancel-btn{padding:10px 20px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:14px;cursor:pointer;transition:background .2s}.classification-modal .cancel-btn:hover:not(:disabled){background:#475569}.classification-modal .save-btn{padding:10px 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity .2s,transform .1s}.classification-modal .save-btn:hover:not(:disabled){opacity:.9}.classification-modal .save-btn:active:not(:disabled){transform:scale(.98)}.classification-modal .save-btn:disabled,.classification-modal .cancel-btn:disabled{opacity:.5;cursor:not-allowed}.selection-panel{background:linear-gradient(180deg,#10b9811f,#10b9810d);border:2px solid rgba(16,185,129,.35);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;max-height:450px;max-width:100%;overflow-y:auto;overflow-x:hidden;box-shadow:0 4px 20px #10b9811a}.selection-panel.empty{background:linear-gradient(180deg,#1e293b,#0f172a);border-color:#475569;border-style:dashed;min-height:120px;max-height:120px;justify-content:center;align-items:center;overflow:hidden}.selection-empty-state{text-align:center;color:#64748b}.selection-empty-state .empty-icon{margin-bottom:12px;color:#475569}.selection-empty-state p{margin:0 0 4px;font-size:14px}.selection-empty-state .empty-hint{font-size:12px;color:#475569}.selection-header{display:flex;align-items:center;justify-content:space-between}.selection-title{display:flex;align-items:baseline;gap:8px}.selection-count{font-size:32px;font-weight:700;color:#10b981;line-height:1;text-shadow:0 2px 8px rgba(16,185,129,.3)}.selection-label{font-size:15px;color:#e2e8f0;font-weight:500}.btn-clear{background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:6px;cursor:pointer;color:#ef4444;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-clear:hover{background:#ef444426;border-color:#ef4444}.classification-mode-section{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#0f172a80;border-radius:8px}.mode-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mode-label{font-size:11px;color:#94a3b8;white-space:nowrap}.mode-toggle{display:flex;gap:4px}.mode-description{margin:0;font-size:10px;color:#64748b;line-height:1.4}.mode-btn{padding:5px 10px;font-size:10px;font-weight:500;border:1px solid #334155;background:transparent;color:#94a3b8;border-radius:6px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.mode-btn:hover{border-color:#3b82f6;color:#e2e8f0}.mode-btn.active{background:#3b82f633;border-color:#3b82f6;color:#3b82f6}.section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:0 0 8px;display:flex;align-items:center;gap:8px}.section-title .preview-hint{font-weight:400;text-transform:none;letter-spacing:normal;font-size:10px;color:#475569}.selected-shapes-section{display:flex;flex-direction:column;gap:8px}.selected-shapes-list{display:flex;flex-wrap:wrap;gap:6px;max-height:140px;overflow-y:auto;padding:2px}.selected-shape-chip{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;background:#0f172acc;border:1px solid #334155;border-radius:20px;cursor:pointer;transition:all .15s ease}.selected-shape-chip:hover,.selected-shape-chip.hovered{border-color:#3b82f6;background:#3b82f626;transform:translateY(-1px);box-shadow:0 2px 8px #3b82f633}.chip-preview{width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chip-label{font-size:11px;color:#e2e8f0;font-family:SF Mono,Menlo,monospace;font-weight:500}.chip-remove{width:18px;height:18px;border-radius:50%;border:none;background:#ef444433;color:#ef4444;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-left:2px;transition:all .15s ease;opacity:.7}.selected-shape-chip:hover .chip-remove{opacity:1}.chip-remove:hover{background:#ef4444;color:#fff;transform:scale(1.1)}.combined-preview-section{display:flex;flex-direction:column;padding:10px;background:#0f172a99;border-radius:10px;border:1px solid #334155}.combined-preview-wrapper{display:flex;justify-content:center;padding:12px;background:#0a0f1a;border-radius:8px;border:1px solid #1e293b}.combined-preview-svg{border-radius:4px}.combined-preview-svg.empty{background:#0f172a80}.combined-contour{transition:fill .2s ease,stroke .2s ease}.shape-label{text-shadow:0 1px 2px rgba(0,0,0,.5);pointer-events:none}.selection-metrics{display:flex;gap:16px;padding:10px 12px;background:#0f172a80;border-radius:8px}.metric{display:flex;flex-direction:column;gap:2px}.metric-label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:13px;font-weight:600;color:#e2e8f0;font-family:SF Mono,Menlo,monospace}.selection-actions{display:flex;flex-direction:column;gap:8px}.btn-classify-selection{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #10b98133}.btn-classify-selection:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-2px);box-shadow:0 6px 20px #10b98159}.btn-classify-selection:active{transform:translateY(0)}.btn-classify-selection svg{flex-shrink:0}.selected-shapes-list::-webkit-scrollbar{width:6px;height:6px}.selected-shapes-list::-webkit-scrollbar-track{background:transparent}.selected-shapes-list::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.selected-shapes-list::-webkit-scrollbar-thumb:hover{background:#475569}.equipment-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:16px;transition:all .25s ease;display:flex;flex-direction:column;align-items:center;gap:12px;animation:cardFadeIn .3s ease;min-height:200px}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.equipment-card:hover{border-color:#475569;background:linear-gradient(180deg,#253449,#1a2540)}.equipment-card.inactive{opacity:.6}.equipment-card.inactive:hover{opacity:.8}.equipment-card__thumbnail{flex-shrink:0;width:100px;height:100px;background:#0f172a;border:1px solid #334155;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}.equipment-card__info{text-align:center;width:100%}.equipment-card__name{font-size:14px;font-weight:600;color:#f1f5f9;margin:0 0 4px;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-card__count-badge{font-size:11px;color:#64748b}.equipment-card__card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:auto}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#475569;border-radius:22px;transition:.2s}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#94a3b8;border-radius:50%;transition:.2s}.toggle-switch input:checked+.toggle-slider{background-color:#16a34a}.toggle-switch input:checked+.toggle-slider:before{transform:translate(18px);background-color:#fff}.card-action-btn{padding:5px 12px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.card-action-btn.expand{background:#334155;color:#94a3b8}.card-action-btn.expand:hover{background:#475569;color:#f1f5f9}.equipment-card__badges{display:flex;flex-wrap:wrap;gap:6px}.equipment-card__count-badge,.equipment-card__composite-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.equipment-card__count-badge{background:#3b82f633;color:#60a5fa}.equipment-card__composite-badge{background:#a855f733;color:#c084fc}.equipment-card__status{flex-shrink:0}.equipment-card__status .status-active{color:#22c55e}.equipment-card__status .status-inactive{color:#64748b}.equipment-card__expand-icon{flex-shrink:0;color:#64748b;transition:all .25s ease}.equipment-card:hover .equipment-card__expand-icon{color:#94a3b8;transform:translateY(2px)}.equipment-card.expanded{cursor:default;flex-direction:column;align-items:stretch;padding:0;overflow:hidden;animation:cardExpand .3s ease}.equipment-card.expanded:hover{transform:none;box-shadow:0 4px 16px #0000004d}@keyframes cardExpand{0%{opacity:.9;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.equipment-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #334155;background:linear-gradient(180deg,#0f172a,#0a0f1a)}.equipment-card__header.expanded{gap:16px}.equipment-card__title-row{flex:1;min-width:0}.equipment-card__header .equipment-card__name{margin-bottom:4px;font-size:16px}.equipment-card__stats{display:flex;gap:12px}.equipment-card__count,.equipment-card__composite-count{font-size:12px;color:#94a3b8}.equipment-card__close-btn{background:transparent;border:1px solid #334155;color:#94a3b8;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.equipment-card__close-btn:hover{background:#1e293b;border-color:#3b82f6;color:#f1f5f9}.equipment-card__content{padding:16px;max-height:400px;overflow-y:auto}.equipment-card__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:16px;color:#94a3b8}.equipment-card__loading .spinner{width:28px;height:28px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .75s linear infinite}.equipment-card__empty{display:flex;align-items:center;justify-content:center;padding:40px;color:#64748b;font-size:14px;text-align:center}.equipment-card__section{margin-bottom:20px}.equipment-card__section:last-child{margin-bottom:0}.equipment-card__section-title{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin:0 0 16px}.equipment-card__subsection-title{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin:16px 0 12px}.equipment-card__component-shapes{margin-top:16px;padding-top:16px;border-top:1px solid #334155}.equipment-card__examples-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.equipment-card__example{position:relative;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:10px;transition:all .15s ease;animation:exampleFadeIn .25s ease backwards}.equipment-card__example:nth-child(1){animation-delay:.05s}.equipment-card__example:nth-child(2){animation-delay:.1s}.equipment-card__example:nth-child(3){animation-delay:.15s}.equipment-card__example:nth-child(4){animation-delay:.2s}.equipment-card__example:nth-child(5){animation-delay:.25s}.equipment-card__example:nth-child(n+6){animation-delay:.3s}@keyframes exampleFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.equipment-card__example:hover{border-color:#3b82f6;background:#1a2540}.equipment-card__example.inactive{opacity:.5}.equipment-card__example-preview{display:flex;align-items:center;justify-content:center;margin-bottom:6px}.equipment-card__example-info{display:flex;flex-direction:column;gap:2px}.equipment-card__example-index{font-size:11px;font-weight:600;color:#e2e8f0}.equipment-card__example-source{font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equipment-card__component-badge{font-size:9px;padding:1px 4px;background:#a855f733;color:#c084fc;border-radius:3px;width:fit-content}.equipment-card__example-metrics{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.equipment-card__example-metrics span{font-size:9px;padding:2px 5px;background:#3b82f61a;color:#60a5fa;border-radius:3px;font-family:SF Mono,Menlo,monospace}.equipment-card__remove-btn{position:absolute;top:4px;right:4px;background:#ef44441a;border:none;color:#ef4444;cursor:pointer;padding:2px;border-radius:3px;opacity:0;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.equipment-card__example:hover .equipment-card__remove-btn{opacity:1}.equipment-card__remove-btn:hover{background:#ef444433}.equipment-card__confirm-delete{position:absolute;top:4px;right:4px;display:flex;gap:4px}.btn-confirm-yes,.btn-confirm-no{font-size:10px;padding:2px 6px;border:none;border-radius:3px;cursor:pointer;font-weight:500}.btn-confirm-yes{background:#ef4444;color:#fff}.btn-confirm-yes:hover{background:#dc2626}.btn-confirm-no{background:#1e293b;color:#94a3b8;border:1px solid #334155}.btn-confirm-no:hover{background:#273449}.equipment-card__composites-list{display:flex;flex-direction:column;gap:8px}.equipment-card__composite{display:flex;align-items:center;justify-content:space-between;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px 16px;transition:all .15s ease}.equipment-card__composite:hover{border-color:#3b82f6;background:#1a2540}.equipment-card__composite.inactive{opacity:.5}.equipment-card__composite-preview{flex-shrink:0}.equipment-card__composite-info{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.equipment-card__composite-name{font-size:14px;font-weight:500;color:#f1f5f9}.equipment-card__composite-components{display:flex;flex-wrap:wrap;gap:6px}.equipment-card__component-type{font-size:11px;padding:3px 8px;background:#3b82f626;color:#60a5fa;border-radius:4px;text-transform:capitalize}.equipment-card__composite-parts{font-size:12px;color:#c084fc;padding:4px 10px;background:#a855f726;border-radius:12px;white-space:nowrap}.equipment-card__actions{padding-top:16px;margin-top:16px;border-top:1px solid #334155;display:flex;gap:12px}.btn-merge{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid #3b82f6;color:#3b82f6;padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-merge:hover{background:#3b82f626;border-color:#60a5fa;color:#60a5fa}.btn-delete-card{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid #ef4444;color:#ef4444;padding:8px 14px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-delete-card:hover{background:#ef44441a}.reference-shapes-panel{padding:24px;height:100%;overflow-y:auto}.panel-header{margin-bottom:24px}.panel-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid #334155;padding-bottom:12px}.panel-tab{padding:10px 20px;background:transparent;border:1px solid #334155;border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.panel-tab:hover{background:#3b82f61a;border-color:#3b82f6;color:#e2e8f0}.panel-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff}.empty-state{text-align:center;padding:60px 40px;color:#64748b}.empty-state h3{color:#e2e8f0;margin-bottom:12px}.empty-state p{font-size:14px;max-width:400px;margin:0 auto;line-height:1.6}.shapes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.shape-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;transition:all .2s}.shape-card:hover{border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.shape-card.inactive{opacity:.6}.shape-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.shape-type{font-size:14px;font-weight:600;color:#f1f5f9;text-transform:uppercase;letter-spacing:.05em}.shape-content{display:flex;gap:16px;margin-bottom:12px}.shape-preview-container{flex-shrink:0}.shape-details{flex:1;min-width:0}.shape-name{color:#60a5fa;font-size:13px;margin-bottom:8px;font-weight:500}.shape-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px}.shape-component-badge{margin-top:8px;padding:4px 8px;background:#8b5cf626;border:1px solid rgba(139,92,246,.3);border-radius:4px;color:#a78bfa;font-size:11px;font-weight:500}.metric{display:flex;flex-direction:column;gap:4px}.metric-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:14px;color:#e2e8f0;font-family:SF Mono,Menlo,monospace}.shape-description{font-size:13px;color:#94a3b8;margin-bottom:12px;line-height:1.5}.shape-source{font-size:12px;color:#64748b;margin-bottom:16px}.shape-actions{display:flex;gap:8px}.btn-delete{padding:6px 12px;background:transparent;border:1px solid #475569;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}.btn-delete:hover{background:#ef444433;border-color:#ef4444;color:#f87171}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#475569;transition:.3s;border-radius:22px}.toggle-switch .slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.slider{background-color:#10b981}.toggle-switch input:checked+.slider:before{transform:translate(18px)}.browse-section{display:flex;flex-direction:column;gap:24px}.sheet-selector{display:flex;flex-direction:column;gap:8px}.sheet-selector label{font-size:14px;color:#94a3b8;font-weight:500}.sheet-selector select{padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;cursor:pointer;max-width:400px}.sheet-selector select:focus{outline:none;border-color:#3b82f6}.contours-section h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:500}.contours-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.contours-table th{padding:12px 16px;text-align:left;background:#0f172a;color:#94a3b8;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #334155}.contours-table th:first-child{border-radius:8px 0 0}.contours-table th:last-child{border-radius:0 8px 0 0}.contours-table td{padding:12px 16px;color:#e2e8f0;border-bottom:1px solid #1e293b}.contours-table tr:hover td{background:#3b82f60d}.preview-cell{padding:8px 12px!important;width:56px}.position-cell{font-family:SF Mono,Menlo,monospace;font-size:12px;color:#94a3b8}.btn-save-ref{padding:6px 12px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save-ref:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:linear-gradient(180deg,#1e293b,#0f172a);border-radius:16px;padding:28px;min-width:400px;max-width:90vw;border:1px solid #334155;box-shadow:0 20px 60px #00000080}.modal h3{margin:0 0 16px;color:#f1f5f9;font-size:20px;font-weight:600}.modal p{color:#94a3b8;font-size:14px;margin:0 0 12px}.modal.modal-danger{border-color:#ef444466}.modal.modal-danger h3{color:#f87171}.warning-text{color:#fbbf24!important;padding:10px 14px;background:#fbbf241a;border-radius:8px;border:1px solid rgba(251,191,36,.2)}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.modal-actions button{padding:10px 20px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.modal-actions button:first-child{background:#334155;color:#e2e8f0}.modal-actions button:first-child:hover{background:#475569}.modal-actions .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.modal-actions .btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}.modal-actions .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.modal-actions .btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.modal-actions .btn-primary:disabled{background:#475569;cursor:not-allowed;opacity:.6}.merge-modal{max-width:480px}.merge-modal-overlay{z-index:1100}.merge-form{margin:20px 0}.merge-target-label{display:flex;flex-direction:column;gap:8px}.merge-target-label span{color:#94a3b8;font-size:13px;font-weight:500}.merge-target-label select{padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;cursor:pointer;transition:border-color .15s}.merge-target-label select:hover{border-color:#3b82f6}.merge-target-label select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.merge-error{margin-top:12px;padding:10px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px}.merge-sources-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.merge-source-tag{padding:4px 10px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:12px;color:#60a5fa;font-size:12px;font-weight:500}.equipment-cards-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.equipment-cards-header h3{margin:0}.selection-toolbar{display:flex;align-items:center;gap:16px;padding:6px 12px;background:#1e293b;border:1px solid #334155;border-radius:6px}.selection-count{color:#f1f5f9;font-size:13px;font-weight:500}.selection-actions{display:flex;align-items:center;gap:8px}.toolbar-btn{padding:5px 12px;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.toolbar-btn.merge{background:#3b82f6;color:#fff}.toolbar-btn.merge:hover{background:#2563eb}.toolbar-btn.activate{background:#16a34a;color:#fff}.toolbar-btn.activate:hover{background:#15803d}.toolbar-btn.deactivate{background:#64748b;color:#fff}.toolbar-btn.deactivate:hover{background:#475569}.toolbar-btn.delete{background:#dc2626;color:#fff}.toolbar-btn.delete:hover{background:#b91c1c}.toolbar-btn.clear{background:transparent;color:#64748b;padding:5px 8px}.toolbar-btn.clear:hover{color:#f1f5f9}.equipment-card-wrapper{position:relative;cursor:pointer;border-radius:12px;transition:all .2s ease}.equipment-card-wrapper:before{content:"";position:absolute;top:8px;left:8px;width:20px;height:20px;background:#1e293be6;border:2px solid #475569;border-radius:4px;opacity:0;transition:all .2s ease;z-index:10}.equipment-card-wrapper:hover:before{opacity:1}.equipment-card-wrapper.selected:before{opacity:1;background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6}.equipment-card-wrapper.selected:after{content:"";position:absolute;top:12px;left:13px;width:6px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);z-index:11}.equipment-card-wrapper:hover{transform:translateY(-3px)}.equipment-card-wrapper.selected{outline:none;box-shadow:0 0 0 2px #3b82f6,0 0 20px #3b82f64d,0 8px 24px #0000004d}.equipment-card-wrapper.selected .equipment-card{background:linear-gradient(180deg,#3b82f633,#1e293b);border-color:#3b82f680}.equipment-card-wrapper.dragging{opacity:.5;transform:scale(.95);cursor:grabbing}.equipment-card-wrapper.drop-target{outline:3px dashed #10b981;outline-offset:4px;transform:scale(1.02)}.equipment-card-wrapper.drop-target .equipment-card{background:linear-gradient(180deg,#10b98133,#1e293b)}.delete-tag{background:#dc262626!important;border-color:#dc26264d!important;color:#f87171!important}.expanded-card-modal{padding:0;min-width:600px;max-width:800px;max-height:80vh;overflow:hidden}.expanded-card-modal .equipment-card.expanded{border:none;border-radius:16px;max-height:80vh}.expanded-card-modal .equipment-card__content{max-height:calc(80vh - 80px);overflow-y:auto}.delete-card-modal{max-width:420px}.browse-section.enhanced{display:flex;flex-direction:column;height:calc(100vh - 180px);min-height:400px}.browse-content-split{display:grid;grid-template-columns:1fr 320px;gap:12px;flex:1;min-height:0;overflow:hidden}.image-viewer-section{display:flex;flex-direction:column;background:#0f172a;border-radius:8px;border:1px solid #334155;overflow:hidden;min-height:0}.zoom-controls{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#1e293bcc;border-bottom:1px solid #334155}.zoom-controls button{width:32px;height:32px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.zoom-controls button:hover{background:#475569;border-color:#64748b}.zoom-controls span{color:#94a3b8;font-size:13px;font-family:SF Mono,Menlo,monospace;min-width:50px;text-align:center}.image-scroll-container{flex:1;overflow:auto;cursor:grab;background:#0a0f1a;position:relative}.image-scroll-container.dragging{cursor:grabbing}.image-with-overlay{position:relative;display:inline-block;-webkit-user-select:none;user-select:none}.image-with-overlay img{display:block;max-width:none}.contour-overlay-svg{position:absolute;top:0;left:0;pointer-events:all}.contour-overlay-svg polygon,.contour-overlay-svg circle{transition:fill .15s,stroke .15s,stroke-width .15s}.loading-image{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px;color:#64748b}.no-contours-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:80px;color:#64748b;text-align:center}.no-contours-state p{margin:0;font-size:14px}.no-contours-state button{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.no-contours-state button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.no-contours-state button:disabled{opacity:.7;cursor:wait}.image-help-text{padding:8px 12px;background:#1e293b80;color:#64748b;font-size:11px;text-align:center;border-top:1px solid #1e293b}.contour-panel-section{display:flex;flex-direction:column;gap:8px;overflow:hidden;background:#1e293b;border-radius:10px;border:1px solid #334155;padding:10px}.contour-panel-section>.selection-panel{flex-shrink:0}.contour-panel-section>.contours-table-wrapper{flex:1;min-height:0;overflow:auto}.selection-summary{display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(135deg,#10b98126,#10b9810d);border:1px solid rgba(16,185,129,.3);border-radius:8px;flex-shrink:0}.selection-count{font-size:14px;font-weight:600;color:#10b981}.classification-mode-toggle{display:flex;gap:4px;margin-left:auto}.classification-mode-toggle button{padding:6px 12px;background:#334155;border:1px solid #475569;border-radius:4px;color:#94a3b8;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.classification-mode-toggle button:hover{background:#475569}.classification-mode-toggle button.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.btn-classify{padding:8px 16px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.btn-classify:hover{opacity:.9;transform:translateY(-1px)}.btn-clear-selection{width:28px;height:28px;padding:0;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-clear-selection:hover{background:#ef444433;border-color:#ef4444;color:#f87171}.contours-table-wrapper{flex:1;overflow-x:auto;overflow-y:hidden;border-radius:8px;background:#0f172a;min-width:0}.contours-table-inner{min-width:560px;display:flex;flex-direction:column;height:100%}.virtual-table-header{display:flex;align-items:center;background:#1e293b;border-bottom:1px solid #334155;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;z-index:1;min-width:560px;flex-shrink:0}.virtual-contours-list{scrollbar-width:thin;scrollbar-color:#475569 #1e293b;flex:1;overflow-y:auto!important;overflow-x:hidden!important}.virtual-contours-list::-webkit-scrollbar{width:8px}.virtual-contours-list::-webkit-scrollbar-track{background:#1e293b}.virtual-contours-list::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}.virtual-row{display:flex;align-items:center;cursor:pointer;transition:background .1s;border-bottom:1px solid #1e293b;min-width:560px}.virtual-row:hover,.virtual-row.hovered{background:#3b82f61a}.virtual-row.selected{background:#10b98126}.virtual-row.selected:hover,.virtual-row.selected.hovered{background:#10b98133}.vcol{padding:8px 10px;font-size:12px;color:#e2e8f0;flex-shrink:0}.vcol-checkbox{width:36px;padding:8px;text-align:center}.vcol-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#10b981}.vcol-preview{width:48px;padding:4px 8px}.vcol-index{width:50px}.vcol-depth{width:45px;text-align:center;font-family:SF Mono,Menlo,monospace;font-size:11px}.vcol-shape{width:80px;font-size:11px;color:#94a3b8;text-transform:lowercase}.vcol-area{width:75px;font-family:SF Mono,Menlo,monospace;font-size:11px;text-align:right}.vcol-metric{width:55px;font-family:SF Mono,Menlo,monospace;font-size:11px;color:#94a3b8;text-align:right}.vcol-depth.depth-0{color:#10b981}.vcol-depth.depth-1{color:#3b82f6}.vcol-depth.depth-2{color:#8b5cf6}.vcol-depth.depth-3{color:#f59e0b}.vcol-depth.depth-4{color:#ef4444}.contour-count-footer{padding:8px 12px;font-size:11px;color:#64748b;background:#1e293b;border-top:1px solid #334155;min-width:560px;flex-shrink:0}.contours-table.selectable{font-size:12px}.contours-table.selectable th,.contours-table.selectable td{padding:8px 10px}.contours-table.selectable th.col-checkbox,.contours-table.selectable td.col-checkbox{width:36px;padding:8px;text-align:center}.contours-table.selectable th.col-preview,.contours-table.selectable td.col-preview{width:48px;padding:6px 8px}.contours-table.selectable th.col-index,.contours-table.selectable td.col-index{width:40px}.contours-table.selectable th.col-area,.contours-table.selectable td.col-area{width:60px}.contours-table.selectable th.col-metric,.contours-table.selectable td.col-metric{width:50px;font-family:SF Mono,Menlo,monospace;font-size:11px}.contours-table.selectable tbody tr{cursor:pointer;transition:background .1s}.contours-table.selectable tbody tr:hover td,.contours-table.selectable tbody tr.hovered td{background:#3b82f61a}.contours-table.selectable tbody tr.selected td{background:#10b98126}.contours-table.selectable tbody tr.selected:hover td,.contours-table.selectable tbody tr.selected.hovered td{background:#10b98133}.contours-table.selectable input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#10b981}.contours-table.selectable th.col-depth,.contours-table.selectable td.col-depth{width:45px;text-align:center;font-family:SF Mono,Menlo,monospace;font-size:11px}.col-depth.depth-0{color:#10b981}.col-depth.depth-1{color:#3b82f6}.col-depth.depth-2{color:#8b5cf6}.col-depth.depth-3{color:#f59e0b}.col-depth.depth-4{color:#ef4444}.contours-table.selectable th.col-shape,.contours-table.selectable td.col-shape{width:80px;font-size:11px;color:#94a3b8;text-transform:lowercase}.hierarchy-indent{color:#475569;margin-right:4px;font-size:10px}.hierarchy-filter-controls{display:flex;align-items:center;gap:8px;margin-left:20px;padding-left:20px;border-left:1px solid #334155}.hierarchy-filter-select{padding:4px 8px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer}.hierarchy-filter-select:hover{border-color:#3b82f6}.hierarchy-filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.modal-content{background:linear-gradient(180deg,#1e293b,#0f172a);border-radius:16px;border:1px solid #334155;box-shadow:0 20px 60px #00000080;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-content .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}.modal-content .modal-header h3{margin:0;color:#f1f5f9;font-size:18px;font-weight:600}.modal-content .modal-header .close-btn{width:32px;height:32px;background:transparent;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-content .modal-header .close-btn:hover{background:#ef44441a;border-color:#ef4444;color:#f87171}.modal-content .modal-body{padding:20px 24px;overflow-y:auto}.modal-content .modal-footer{padding:16px 24px;border-top:1px solid #334155;display:flex;justify-content:flex-end;gap:12px}@media (max-width: 1400px){.browse-content-split{grid-template-columns:1fr 340px}}@media (max-width: 1100px){.browse-content-split{grid-template-columns:1fr 300px}.processed-drawings-toolbar .toolbar-row{flex-direction:column;align-items:flex-start;gap:12px}.area-filter-controls{margin-left:0}}@media (max-width: 900px){.browse-content-split{grid-template-columns:1fr;grid-template-rows:minmax(400px,1fr) 280px}.image-viewer-section{min-height:350px}}.default-shapes-gallery{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.default-shapes-gallery h3{margin:0 0 8px;color:#f1f5f9;font-size:16px;font-weight:600}.gallery-description{margin:0 0 20px;color:#94a3b8;font-size:13px;line-height:1.5}.shape-types-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:20px}.shape-type-card{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:14px;text-align:center;transition:all .2s ease}.shape-type-card:hover{border-color:#475569}.shape-type-card.has-references{border-color:#3b82f666;background:#3b82f60d}.shape-type-icon{display:flex;justify-content:center;align-items:center;margin-bottom:10px}.shape-type-icon svg{width:48px;height:48px}.shape-type-info{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.shape-type-name{color:#f1f5f9;font-size:13px;font-weight:600}.shape-type-count{color:#64748b;font-size:11px}.shape-type-card.has-references .shape-type-count{color:#3b82f6}.shape-type-desc{margin:0;color:#64748b;font-size:10px;line-height:1.4}.seed-defaults-action{display:flex;align-items:center;gap:16px;padding-top:16px;border-top:1px solid #334155}.btn-seed-defaults{padding:10px 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-seed-defaults:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px)}.btn-seed-defaults:disabled{opacity:.6;cursor:not-allowed}.seed-help{color:#64748b;font-size:12px;line-height:1.4}.saved-shapes-list{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px}.saved-shapes-list h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:600}.equipment-cards-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px}.equipment-cards-section h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:600}.equipment-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.equipment-cards-grid .equipment-card.expanded{grid-column:1 / -1}.browse-mode-toggle{display:flex;gap:4px;margin-bottom:8px;padding:4px;background:#0f172a;border-radius:8px;border:1px solid #334155}.browse-mode-toggle .mode-btn{flex:1;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.browse-mode-toggle .mode-btn:hover{background:#3b82f61a;color:#e2e8f0}.browse-mode-toggle .mode-btn.active{background:#3b82f6;color:#fff}.repository-browser{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px}.browse-help{margin:0 0 20px;color:#94a3b8;font-size:13px;line-height:1.5}.repository-files-list{overflow:hidden;border-radius:8px}.repository-table{width:100%;border-collapse:collapse}.repository-table th{background:#0f172a;padding:12px 14px;text-align:left;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155}.repository-table td{padding:12px 14px;font-size:13px;color:#e2e8f0;border-bottom:1px solid #1e293b}.repository-table tbody tr{background:#0f172a;cursor:pointer;transition:background .15s}.repository-table tbody tr:hover{background:#3b82f61a}.repository-table tbody tr.selected{background:#3b82f626}.repository-table tbody tr.processed{background:#10b9810d}.repository-table tbody tr.processed:hover{background:#10b9811a}.filename-cell{display:flex;flex-direction:column;gap:2px}.filename-cell .filename{font-weight:500;color:#f1f5f9}.filename-cell .file-date{font-size:11px;color:#64748b}.pages-cell{text-align:center;color:#94a3b8}.status-cell .status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500}.status-badge.unprocessed{background:#64748b33;color:#94a3b8}.status-badge.sheet_created{background:#f59e0b26;color:#f59e0b}.status-badge.processed{background:#10b98126;color:#10b981}.contours-cell{text-align:center;font-family:SF Mono,Menlo,monospace;font-size:12px;color:#94a3b8}.actions-cell{text-align:right}.btn-process{padding:8px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-process:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.btn-process:disabled{opacity:.6;cursor:not-allowed}.btn-view{padding:8px 14px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:6px;color:#10b981;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-view:hover{background:#10b98140;border-color:#10b981}.processed-drawings-toolbar{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:6px;padding:6px 10px;margin-bottom:6px}.processed-drawings-toolbar.collapsed{padding:6px 10px}.toolbar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.btn-toggle-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;background:transparent;border:1px solid #475569;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-toggle-toolbar:hover{background:#3b82f61a;border-color:#3b82f6;color:#e2e8f0}.btn-toggle-toolbar svg{width:14px;height:14px}.toolbar-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid #334155}.sheet-selector-inline{display:flex;align-items:center;gap:8px}.sheet-selector-inline label{font-size:13px;color:#94a3b8;font-weight:500;white-space:nowrap}.sheet-selector-inline select{padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;cursor:pointer;min-width:240px}.sheet-selector-inline select:focus{outline:none;border-color:#3b82f6}.page-navigation{display:flex;align-items:center;gap:4px;margin-left:6px;padding-left:10px;border-left:1px solid #334155}.btn-page-nav{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#94a3b8;cursor:pointer;transition:all .15s ease}.btn-page-nav:hover:not(:disabled){background:#334155;color:#f1f5f9;border-color:#475569}.btn-page-nav:disabled{opacity:.4;cursor:not-allowed}.page-indicator{font-size:12px;color:#94a3b8;font-weight:500;min-width:80px;text-align:center;white-space:nowrap}.contours-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 20px;color:#94a3b8;font-size:14px}.contours-loading .spinner{width:20px;height:20px;border:2px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.area-filter-controls{display:flex;align-items:center;gap:16px;margin-left:auto}.filter-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;color:#e2e8f0;font-size:13px;-webkit-user-select:none;user-select:none}.filter-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.filter-slider{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid #334155}.filter-label{font-size:12px;color:#94a3b8;white-space:nowrap}.filter-slider input[type=range]{width:100px;height:4px;cursor:pointer;accent-color:#3b82f6}.filter-value{font-size:13px;font-weight:600;color:#3b82f6;font-family:SF Mono,Menlo,monospace;min-width:40px}.contour-stats{display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:6px;border-top:1px solid #334155;flex-wrap:nowrap;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.processed-drawings-toolbar.collapsed .contour-stats{margin-top:0;padding-top:0;border-top:none}.contour-stats .stat{display:inline;flex-direction:unset;gap:unset;font-size:12px;color:#94a3b8;white-space:nowrap}.contour-stats .stat strong{color:#f1f5f9}.contour-stats .stat-note{font-size:11px;color:#64748b;font-style:italic;white-space:nowrap}.extraction-config-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.config-input{display:flex;align-items:center;gap:6px;font-size:13px;color:#94a3b8}.config-input span{white-space:nowrap}.config-input input[type=number]{width:70px;padding:6px 8px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;font-family:SF Mono,Menlo,monospace}.config-input input[type=number]:focus{outline:none;border-color:#3b82f6}.config-input .input-unit{font-size:11px;color:#64748b}.config-input-group{display:flex;align-items:center}.config-label{display:flex;align-items:center;gap:4px;white-space:nowrap;color:#94a3b8;font-size:13px}.info-tooltip-wrapper{position:relative;display:inline-flex;align-items:center;cursor:help}.info-icon{width:14px;height:14px;color:#64748b;transition:color .15s ease}.info-tooltip-wrapper:hover .info-icon{color:#3b82f6}.info-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:260px;max-width:260px;padding:12px 14px;background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #475569;border-radius:10px;color:#e2e8f0;font-size:12px;line-height:1.5;white-space:normal;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;text-align:left;box-shadow:0 10px 30px #00000080;opacity:0;visibility:hidden;transition:all .2s ease;z-index:9999;pointer-events:none;overflow:hidden}.info-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#0f172a}.info-tooltip-wrapper:hover .info-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(-4px)}.btn-reextract{margin-left:auto;padding:8px 16px;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-reextract:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-1px)}.btn-reextract:disabled{opacity:.6;cursor:not-allowed}.reextract-modal{min-width:450px}.reextract-modal .modal-body{padding:20px 24px}.reextract-config-form{display:flex;flex-direction:column;gap:16px}.config-field{display:flex;flex-direction:column;gap:6px}.config-field label{font-size:13px;color:#94a3b8;font-weight:500}.config-field input[type=number]{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;font-family:SF Mono,Menlo,monospace}.config-field input[type=number]:focus{outline:none;border-color:#3b82f6}.config-field .field-help{font-size:11px;color:#64748b;line-height:1.4}.reextract-warning{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;margin-top:8px}.reextract-warning svg{flex-shrink:0;color:#f59e0b}.reextract-warning p{margin:0;font-size:13px;color:#fbbf24;line-height:1.5}.reextract-result{padding:12px 14px;border-radius:8px;margin-top:16px}.reextract-result.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981}.reextract-result.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.reextract-result p{margin:0;font-size:13px}.btn-expand{margin-left:auto;display:flex;align-items:center;justify-content:center;padding:6px}.fullscreen-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:2000;display:flex;flex-direction:column}.fullscreen-modal{width:100%;height:100%;display:flex;flex-direction:column;background:#0a0f1a}.fullscreen-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#1e293b;border-bottom:1px solid #334155}.fullscreen-header h3{margin:0;font-size:16px;font-weight:600;color:#f1f5f9}.fullscreen-controls button{width:36px;height:36px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.fullscreen-controls button:hover{background:#475569;border-color:#64748b}.fullscreen-controls span{color:#94a3b8;font-size:13px;font-family:SF Mono,Menlo,monospace;min-width:50px;text-align:center}.btn-close-fullscreen{margin-left:16px!important;background:transparent!important;border-color:#ef444466!important;color:#f87171!important}.btn-close-fullscreen:hover{background:#ef444433!important;border-color:#ef4444!important}.fullscreen-image-container{flex:1;overflow:hidden;cursor:grab;display:flex;align-items:center;justify-content:center;background:#0a0f1a}.fullscreen-image-container:active{cursor:grabbing}.fullscreen-image-wrapper{position:relative;display:inline-block;-webkit-user-select:none;user-select:none;transition:transform .05s ease-out}.fullscreen-image-wrapper img{display:block;max-width:none}.fullscreen-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#1e293b;border-top:1px solid #334155}.fullscreen-footer span{font-size:12px;color:#94a3b8}.fullscreen-footer span:last-child{color:#64748b}.fullscreen-selection-panel{position:fixed;width:320px;max-width:320px;max-height:calc(100vh - 100px);overflow:hidden;z-index:2100;border-radius:14px;box-shadow:0 12px 40px #000c;background:linear-gradient(180deg,#1a2e3a,#0d1922);border:2px solid rgba(16,185,129,.5);display:flex;flex-direction:column}.fullscreen-selection-panel.draggable{cursor:default}.fullscreen-selection-panel.dragging{opacity:.9;cursor:grabbing}.fullscreen-selection-panel.collapsed{max-height:none;height:auto}.panel-drag-handle{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(180deg,#10b981,#059669);border-radius:12px 12px 0 0;cursor:grab;-webkit-user-select:none;user-select:none}.panel-drag-handle:active{cursor:grabbing}.drag-indicator{font-size:14px;color:#ffffffb3;letter-spacing:2px}.panel-title{flex:1;font-size:14px;font-weight:600;color:#fff}.btn-collapse-panel{width:26px;height:26px;background:#fff3;border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-collapse-panel:hover{background:#ffffff4d}.fullscreen-selection-panel .selection-panel{background:transparent;border:none;border-radius:0 0 12px 12px;max-height:calc(100vh - 200px);overflow-y:auto}.fullscreen-selection-panel .classification-mode-section{background:#0a141ee6}.fullscreen-selection-panel .combined-preview-section{background:#0a141ef2}.fullscreen-selection-panel .selection-metrics{background:#0a141ee6}.fullscreen-selection-panel .selected-shapes-list{background:#0a141e99;border-radius:8px;padding:8px}.fullscreen-selection-panel .selection-panel.empty{background:linear-gradient(180deg,#1e293b,#0f172a)}.main-selection-panel{position:fixed;width:320px;max-width:320px;max-height:calc(100vh - 100px);overflow:hidden;z-index:1000;border-radius:14px;box-shadow:0 12px 40px #0009;background:linear-gradient(180deg,#1a2e3a,#0d1922);border:2px solid rgba(16,185,129,.5);display:flex;flex-direction:column}.main-selection-panel.draggable{cursor:default}.main-selection-panel.dragging{opacity:.9;cursor:grabbing}.main-selection-panel.collapsed{max-height:none;height:auto}.main-selection-panel .selection-panel{background:transparent;border:none;border-radius:0 0 12px 12px;max-height:calc(100vh - 200px);overflow-y:auto}.main-selection-panel .classification-mode-section{background:#0a141ee6}.main-selection-panel .combined-preview-section{background:#0a141ef2}.main-selection-panel .selection-metrics{background:#0a141ee6}.main-selection-panel .selected-shapes-list{background:#0a141e99;border-radius:8px;padding:8px}.equipment-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding:12px 16px;background:#0f172a99;border:1px solid #334155;border-radius:12px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.filter-pills{display:flex;gap:8px}.filter-pill{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid #475569;border-radius:20px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.filter-pill:hover{background:#3b82f61a;border-color:#64748b;color:#e2e8f0}.filter-pill.active{background:#3b82f633;border-color:#3b82f6;color:#60a5fa}.filter-icon{width:8px;height:8px;border-radius:50%}.filter-icon.active-icon{background:#22c55e;box-shadow:0 0 6px #22c55e80}.filter-icon.inactive-icon{background:#64748b}.filter-search{position:relative;display:flex;align-items:center}.filter-search .search-icon{position:absolute;left:12px;color:#64748b;pointer-events:none}.filter-search input{padding:8px 36px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:13px;width:220px;transition:all .2s ease}.filter-search input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.filter-search input::placeholder{color:#64748b}.search-clear{position:absolute;right:8px;width:20px;height:20px;background:#475569;border:none;border-radius:50%;color:#e2e8f0;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.search-clear:hover{background:#64748b}.floating-action-bar{position:sticky;bottom:20px;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:#0f172af2;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(59,130,246,.4);border-radius:50px;box-shadow:0 8px 32px #00000080,0 0 0 1px #3b82f61a,inset 0 1px #ffffff0d;margin:24px auto 0;max-width:fit-content;animation:slideUpFade .3s ease;z-index:100}@keyframes slideUpFade{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floating-action-bar .selection-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:20px;color:#fff;font-size:13px;font-weight:600;box-shadow:0 2px 8px #3b82f64d}.floating-action-bar .action-divider{width:1px;height:24px;background:#475569;margin:0 4px}.floating-action-bar .action-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid transparent;border-radius:18px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.floating-action-bar .action-btn:hover{background:#ffffff14;color:#e2e8f0}.floating-action-bar .action-btn.merge{color:#60a5fa}.floating-action-bar .action-btn.merge:hover{background:#3b82f626;border-color:#3b82f64d;color:#93c5fd}.floating-action-bar .action-btn.activate{color:#4ade80}.floating-action-bar .action-btn.activate:hover{background:#22c55e26;border-color:#22c55e4d;color:#86efac}.floating-action-bar .action-btn.deactivate{color:#94a3b8}.floating-action-bar .action-btn.deactivate:hover{background:#64748b33;border-color:#64748b4d;color:#cbd5e1}.floating-action-bar .action-btn.delete{color:#f87171}.floating-action-bar .action-btn.delete:hover{background:#ef444426;border-color:#ef44444d;color:#fca5a5}.floating-action-bar .action-btn.clear{color:#64748b}.floating-action-bar .action-btn.clear:hover{background:#64748b26;color:#94a3b8}@media (max-width: 768px){.floating-action-bar{flex-wrap:wrap;border-radius:20px;padding:12px;gap:8px}.floating-action-bar .action-btn span:not(.selection-badge span){display:none}.floating-action-bar .action-btn{padding:10px}.equipment-filter-bar{flex-direction:column;align-items:stretch;gap:12px}.filter-search input{width:100%}}.titan-assistant{padding:1.25rem;border:1px solid rgba(59,130,246,.35);border-radius:1rem;background:#020617d9;display:flex;flex-direction:column;gap:1rem;box-shadow:0 15px 40px #020617a6;width:min(420px,calc(100vw - 2rem));max-width:420px;color:#e2e8f0}.titan-assistant--floating{position:fixed;z-index:2500;max-height:calc(100vh - 2rem);background:#020617eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease}.titan-assistant--minimized{padding-bottom:.75rem;gap:.5rem}.titan-assistant--minimized .titan-assistant__messages,.titan-assistant--minimized .titan-assistant__form,.titan-assistant--minimized .titan-assistant__error{display:none}.titan-assistant__header{display:flex;align-items:flex-start;justify-content:flex-start;gap:.75rem;cursor:grab}.titan-assistant__header>div:first-child{flex:1;min-width:0}.titan-assistant__header h4{margin:0;font-size:.9rem;color:#f8fafc}.titan-assistant__header p{margin:.2rem 0 0;color:#94a3b8;font-size:.75rem}.titan-assistant__context{margin-top:.35rem;display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;padding:.4rem .55rem;border-radius:.75rem;background:#3b82f626;color:#cbd5f5}.titan-assistant__context-details{border:1px solid rgba(148,163,184,.25);border-radius:.75rem;background:#0f172aa6;padding:.7rem;max-height:150px;overflow-y:auto;font-size:.8rem;color:#cbd5f5;white-space:pre-wrap}.titan-assistant__thinking{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem 0;font-size:.85rem;color:#cbd5f5}.titan-assistant__thinking-dot{width:6px;height:6px;border-radius:999px;background:#60a5fae6;animation:titan-assistant-pulse 1.2s ease-in-out infinite}.titan-assistant__thinking-dot:nth-child(2){animation-delay:.15s}.titan-assistant__thinking-dot:nth-child(3){animation-delay:.3s}@keyframes titan-assistant-pulse{0%,80%,to{opacity:.35;transform:scale(.75)}40%{opacity:1;transform:scale(1)}}.titan-assistant__controls{display:inline-flex;gap:.35rem;align-items:center;justify-content:center;cursor:default;margin-left:auto}.titan-assistant__icon-button{border:1px solid rgba(148,163,184,.4);background:#0f172acc;color:#f8fafc;border-radius:8px;width:32px;height:32px;font-size:.85rem;cursor:pointer;transition:background .2s ease,border-color .2s ease}.titan-assistant__icon-button:hover{border-color:#60a5facc;background:#2563eb59}.titan-assistant__messages{flex:1;min-height:140px;max-height:calc(100vh - 320px);overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.titan-assistant__message{padding:.75rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.25);background:#090c18cc}.titan-assistant__message--assistant{border-color:#3b82f659;background:#090e28d9}.titan-assistant__message strong{display:block;margin-bottom:.25rem;font-size:.7rem;color:#94a3b8;letter-spacing:.08em;text-transform:uppercase}.titan-assistant__message p{margin:0;color:#e2e8f0;white-space:pre-wrap;font-size:.85rem}.titan-assistant__markdown{color:#e2e8f0;font-size:.85rem}.titan-assistant__markdown a{color:inherit;text-decoration:none}.titan-assistant__markdown .titan-assistant__sheet-link{color:#60a5fa!important;text-decoration:underline!important;cursor:pointer!important;pointer-events:auto!important;font-weight:500;padding:2px 4px;border-radius:3px;transition:all .2s}.titan-assistant__markdown .titan-assistant__sheet-link:hover{background-color:#3b82f633!important;text-decoration:underline!important;color:#93c5fd!important}.titan-assistant__markdown h1,.titan-assistant__markdown h2,.titan-assistant__markdown h3,.titan-assistant__markdown h4{margin:.4rem 0;color:#f8fafc;font-size:.95rem}.titan-assistant__markdown p{margin:.3rem 0;font-size:.85rem}.titan-assistant__markdown ul,.titan-assistant__markdown ol{margin:.35rem 0 .35rem 1.25rem}.titan-assistant__table{width:100%;border-collapse:collapse;margin:.4rem 0;font-size:.85rem}.titan-assistant__table-header,.titan-assistant__table-cell{border:1px solid rgba(148,163,184,.3);padding:.35rem .5rem;text-align:left}.titan-assistant__table-header{background:#3b82f633;font-weight:600}.titan-assistant__code-inline{background:#0f172ad9;padding:.1rem .3rem;border-radius:.35rem;font-family:JetBrains Mono,Fira Code,SFMono-Regular,Consolas,monospace}.titan-assistant__code-block{background:#0f172ad9;padding:.75rem;border-radius:.75rem;overflow-x:auto}.titan-assistant-chart{border:1px solid rgba(59,130,246,.3);border-radius:.85rem;padding:.75rem;background:#090e28cc;margin-top:.6rem}.titan-assistant-chart__title{margin:0;font-weight:600;color:#f8fafc}.titan-assistant-chart__description{margin:.15rem 0 .6rem;color:#cbd5f5;font-size:.85rem}.titan-assistant-chart__series{display:flex;flex-direction:column;gap:.35rem}.titan-assistant-chart__row{display:grid;grid-template-columns:1.5fr 4fr auto;gap:.5rem;align-items:center;font-size:.85rem}.titan-assistant-chart__label{color:#cbd5f5}.titan-assistant-chart__bar-wrapper{background:#0f172aa6;border-radius:999px;overflow:hidden;height:10px}.titan-assistant-chart__bar{height:100%;border-radius:999px;background:linear-gradient(90deg,#38bdf8cc,#3b82f6f2);transition:width .3s ease}.titan-assistant-chart__value{text-align:right;color:#e2e8f0;font-variant-numeric:tabular-nums}.titan-assistant__empty{margin:0;color:#94a3b8;font-size:.8rem}.titan-assistant__form{display:flex;flex-direction:column;gap:.75rem}.titan-assistant__input{position:relative}.titan-assistant__form textarea{width:100%;border-radius:.75rem;border:1px solid rgba(148,163,184,.35);background:#050a19d9;color:#f8fafc;padding:.75rem;min-height:90px;resize:vertical}.titan-assistant__input-indicator{position:absolute;right:.75rem;bottom:.85rem;display:inline-flex;align-items:center;gap:.2rem}.titan-assistant__input-indicator span{width:6px;height:6px;border-radius:50%;background:#60a5fae6;animation:titan-assistant-pulse 1.2s ease-in-out infinite}.titan-assistant__input-indicator span:nth-child(2){animation-delay:.15s}.titan-assistant__input-indicator span:nth-child(3){animation-delay:.3s}.titan-assistant__form-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.titan-assistant__form-actions-left{display:inline-flex;align-items:center;gap:.5rem}.titan-assistant__ghost-button{border:1px solid rgba(148,163,184,.35);background:transparent;color:#cbd5f5;padding:.25rem .8rem;border-radius:999px;font-size:.78rem;cursor:pointer;transition:border-color .2s ease,color .2s ease}.titan-assistant__ghost-button:disabled{opacity:.4;cursor:not-allowed}.titan-assistant__ghost-button:not(:disabled):hover{border-color:#60a5facc;color:#f8fafc}.titan-assistant__form button[type=submit]{border:none;border-radius:999px;padding:.5rem 1.5rem;background:linear-gradient(135deg,#3b82f6cc,#0ea5e9cc);color:#f8fafc;font-weight:600;cursor:pointer;transition:opacity .2s ease}.titan-assistant__form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.titan-assistant__drag-hint{font-size:.75rem;color:#94a3b8}.titan-assistant__error{margin:0;color:#fca5a5;font-size:.85rem}.titan-assistant-launcher{position:fixed;bottom:1.5rem;right:1.5rem;border:1px solid rgba(59,130,246,.4);background:#0f172ad9;color:#f8fafc;border-radius:999px;padding:.6rem 1.4rem;font-weight:600;cursor:pointer;z-index:450;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 25px #0f172a99;transition:border-color .2s ease,transform .2s ease}.titan-assistant-launcher:hover{border-color:#ffffffa6;transform:translateY(-1px)}.titan-assistant__sheet-link{color:#60a5fa!important;text-decoration:underline!important;font-weight:500;padding:2px 4px;border-radius:3px;transition:all .2s;cursor:pointer!important;display:inline;pointer-events:auto!important}.titan-assistant__sheet-link:hover{background-color:#3b82f633!important;text-decoration:underline!important;color:#93c5fd!important}.titan-assistant__sheet-link:active{background-color:#3b82f64d!important}.titan-assistant__sheet-link:visited{color:#60a5fa!important}.titan-external-link{color:#34d399;text-decoration:none}.titan-external-link:hover{text-decoration:underline;color:#6ee7b7}.equipment-extraction-panel{padding:24px;height:calc(100vh - 200px);overflow-y:auto}.extraction-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.header-controls{display:flex;align-items:flex-start;gap:16px;flex-shrink:0;flex-wrap:wrap}.revision-filter-group{display:flex;flex-direction:column;gap:10px}.filter-mode-select{display:flex;align-items:center;gap:8px}.filter-mode-select label{color:#94a3b8;font-size:13px;white-space:nowrap}.filter-mode-select select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;cursor:pointer}.filter-mode-select select:focus{outline:none;border-color:#3b82f6}.revision-checkboxes{display:flex;flex-wrap:wrap;gap:8px}.revision-checkbox{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s ease}.revision-checkbox:hover{border-color:#3b82f6;background:#3b82f61a}.revision-checkbox.checked{border-color:#3b82f6;background:#3b82f633;color:#60a5fa}.revision-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:#3b82f6;cursor:pointer}.revision-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.revision-checkbox span{font-weight:500}.selection-info{padding:8px 14px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px}.selected-count{color:#60a5fa;font-size:13px;font-weight:500}.job-name-input input{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;width:160px;transition:border-color .2s ease}.job-name-input input:focus{outline:none;border-color:#3b82f6}.job-name-input input::placeholder{color:#64748b}.job-name-input input:disabled{opacity:.5;cursor:not-allowed}.btn-extract{padding:10px 20px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.btn-extract:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.btn-extract:disabled{opacity:.5;cursor:not-allowed;transform:none}.extraction-progress{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.extraction-progress.running{border-color:#3b82f666}.extraction-progress.completed{border-color:#10b98166}.extraction-progress.partial-error{border-color:#f59e0b66}.extraction-progress.error{border-color:#ef444466}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.progress-title{color:#f1f5f9;font-size:16px;font-weight:600}.extraction-progress.running .progress-title{color:#60a5fa}.extraction-progress.completed .progress-title{color:#10b981}.extraction-progress.error .progress-title{color:#f87171}.extraction-progress.partial-error .progress-title{color:#f59e0b}.btn-cancel{padding:6px 14px;background:#475569;border:none;border-radius:6px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s ease}.btn-cancel:hover{background:#64748b}.progress-bar-container{height:8px;background:#0f172a;border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:4px;transition:width .3s ease}.extraction-progress.completed .progress-bar-fill{background:linear-gradient(90deg,#10b981,#059669)}.extraction-progress.error .progress-bar-fill{background:linear-gradient(90deg,#ef4444,#dc2626)}.extraction-progress.partial-error .progress-bar-fill,.progress-bar-fill.has-errors{background:linear-gradient(90deg,#f59e0b,#d97706)}.progress-details{display:flex;justify-content:space-between;align-items:center;color:#94a3b8;font-size:13px;flex-wrap:wrap;gap:8px}.result-counts{display:flex;gap:12px}.success-count{color:#10b981;font-weight:500}.error-count{color:#f87171;font-weight:500}.current-drawing{color:#64748b;font-style:italic}.extraction-errors{margin-top:12px;padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;max-height:200px;overflow-y:auto}.errors-header{color:#f87171;font-weight:600;font-size:13px;margin-bottom:8px}.errors-list{display:flex;flex-direction:column;gap:4px}.error-item{color:#fca5a5;font-size:12px;padding:6px 8px;background:#0003;border-radius:4px;word-break:break-word;white-space:pre-wrap;font-family:SF Mono,Menlo,monospace}.error-item.more-errors{color:#94a3b8;font-style:italic;background:transparent}.project-tree{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:16px}.tree-project{margin-bottom:8px}.tree-project:last-child{margin-bottom:0}.tree-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;cursor:default}.tree-item:hover{background:#3b82f60d}.project-item{background:#1e293b80}.project-item:hover{background:#3b82f61a}.folder-item{background:#0f172a80}.drawing-item{padding:8px 12px}.expand-btn{width:24px;height:24px;padding:0;background:transparent;border:none;color:#64748b;font-size:10px;cursor:pointer;border-radius:4px;transition:all .2s ease}.expand-btn:hover{background:#3b82f633;color:#3b82f6}.tree-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.tree-item input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.item-icon{font-size:16px;flex-shrink:0}.item-name{color:#e2e8f0;font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item .item-name{font-weight:600;font-size:15px}.item-code{color:#64748b;font-size:12px;font-family:SF Mono,Menlo,monospace}.item-count{color:#64748b;font-size:12px}.drawing-id{color:#94a3b8;font-size:12px;font-family:SF Mono,Menlo,monospace;padding:2px 6px;background:#94a3b81a;border-radius:4px}.revision-badge{display:inline-block;padding:3px 8px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;font-size:11px;font-weight:600;border-radius:4px;text-transform:uppercase}.revision-badge.small{padding:2px 6px;font-size:10px}.status-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.status-badge.uploaded{background:#f59e0b33;color:#f59e0b}.status-badge.processing{background:#3b82f633;color:#60a5fa}.status-badge.processed,.status-badge.indexed{background:#10b98133;color:#10b981}.status-badge.failed{background:#ef444433;color:#f87171}.extraction-method-cell{text-align:center;width:60px}.extraction-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.extraction-badge.heuristics{background:#3b82f633;color:#60a5fa}.extraction-badge.ocr{background:#a855f733;color:#a855f7}.confidence-cell{text-align:center;width:50px;font-size:11px;color:#94a3b8}.tree-children{margin-left:32px;border-left:1px solid #334155;padding-left:8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;text-align:center}.empty-state h3{color:#e2e8f0;font-size:18px;margin-bottom:8px}.empty-state p{color:#64748b;font-size:14px}.errors-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.btn-toggle-errors{padding:4px 10px;background:#ffffff1a;border:1px solid rgba(248,113,113,.3);border-radius:4px;color:#fca5a5;font-size:11px;cursor:pointer;transition:all .2s ease}.btn-toggle-errors:hover{background:#ffffff26;border-color:#f8717180}.error-item.expandable{cursor:pointer}.error-item.expandable:hover{background:#0000004d}.error-item.expanded{max-height:none;white-space:pre-wrap}.expand-hint{color:#94a3b8;font-style:italic}.job-history-section{margin-top:32px;background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px}.job-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #334155}.job-history-header h3{margin:0;color:#f1f5f9;font-size:16px;font-weight:600}.btn-refresh{padding:6px 12px;background:#475569;border:none;border-radius:6px;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-refresh:hover:not(:disabled){background:#64748b}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.empty-jobs{text-align:center;padding:24px;color:#64748b;font-size:14px}.job-list{display:flex;flex-direction:column;gap:12px}.job-card{background:#0f172a80;border:1px solid #334155;border-radius:8px;padding:14px;transition:border-color .2s ease}.job-card.success{border-left:3px solid #10b981}.job-card.partial{border-left:3px solid #f59e0b}.job-card.failed{border-left:3px solid #ef4444}.job-card.running{border-left:3px solid #3b82f6}.job-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.job-info{display:flex;flex-direction:column;gap:2px}.job-project{color:#e2e8f0;font-size:14px;font-weight:500}.job-name{color:#94a3b8;font-size:12px}.job-status{padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.job-status.completed{background:#10b98133;color:#10b981}.job-status.failed{background:#ef444433;color:#f87171}.job-status.running{background:#3b82f633;color:#60a5fa}.job-card-stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:8px}.job-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.job-stat .stat-label{color:#64748b;font-size:10px;text-transform:uppercase}.job-stat .stat-value{color:#e2e8f0;font-size:14px;font-weight:600}.job-stat.success .stat-value{color:#10b981}.job-stat.error .stat-value{color:#f87171}.job-card-time{color:#64748b;font-size:11px}.job-errors-section{margin-top:10px;padding-top:10px;border-top:1px solid #334155}.btn-toggle-job-errors{background:none;border:none;color:#fca5a5;font-size:12px;cursor:pointer;padding:0;display:flex;align-items:center;gap:4px}.btn-toggle-job-errors:hover{color:#f87171}.job-errors-list{margin-top:8px;display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto}.job-error-item{padding:8px;background:#ef44441a;border-radius:4px;font-size:11px;color:#fca5a5;font-family:SF Mono,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.job-error-item .error-drawing{color:#f87171;font-weight:600;margin-right:4px}.job-error-item .error-message{color:#fca5a5}.logs-panel{background:linear-gradient(180deg,#0f172a,#020617);border:1px solid #334155;border-radius:12px;margin-bottom:24px;overflow:hidden}.logs-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1e293b80;border-bottom:1px solid #334155}.logs-title{color:#e2e8f0;font-size:12px;font-weight:500}.logs-controls{display:flex;gap:8px}.btn-toggle-logs,.btn-clear-logs{padding:4px 10px;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:11px;cursor:pointer;transition:all .2s ease}.btn-toggle-logs:hover,.btn-clear-logs:hover{background:#64748b}.logs-content{max-height:120px;overflow-y:auto;padding:6px 10px;font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;line-height:1.3}.log-line{color:#94a3b8;padding:1px 0;white-space:pre-wrap;word-break:break-word}.log-line.success{color:#10b981}.log-line.error{color:#f87171}.logs-content::-webkit-scrollbar{width:6px}.logs-content::-webkit-scrollbar-track{background:#0f172a}.logs-content::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.logs-content::-webkit-scrollbar-thumb:hover{background:#64748b}.job-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px;background:#0f172a80;border-radius:8px;align-items:flex-end}.filter-group select,.filter-group input{padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:12px;min-width:120px}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#3b82f6}.btn-clear-filters{padding:6px 12px;background:transparent;border:1px solid #64748b;border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-clear-filters:hover{background:#334155;color:#f1f5f9}.job-table-container{overflow-x:auto;border-radius:8px;border:1px solid #334155}.job-table{width:100%;border-collapse:collapse;font-size:12px}.job-table th{background:#0f172a;color:#94a3b8;font-weight:500;text-align:left;padding:10px 12px;border-bottom:1px solid #334155;white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.job-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0}.job-table tbody tr:hover{background:#3b82f60d}.job-row.success{border-left:3px solid #10b981}.job-row.partial{border-left:3px solid #f59e0b}.job-row.failed{border-left:3px solid #ef4444}.job-row.running{border-left:3px solid #3b82f6}.col-expand{width:40px}.col-name{min-width:140px}.col-project{min-width:120px}.col-status{width:90px}.col-drawings{width:70px;text-align:center}.col-results{width:100px;text-align:center}.col-extractions{width:160px}.col-duration{width:70px;text-align:right}.col-date{min-width:140px}.extractions-breakdown{display:flex;gap:4px;justify-content:center}.btn-expand-row{background:none;border:none;color:#64748b;cursor:pointer;padding:4px;font-size:10px;transition:color .2s ease}.btn-expand-row:hover{color:#3b82f6}.status-pill{display:inline-block;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.status-pill.success{background:#10b98133;color:#10b981}.status-pill.partial{background:#f59e0b33;color:#f59e0b}.status-pill.failed{background:#ef444433;color:#f87171}.status-pill.running{background:#3b82f633;color:#60a5fa}.success-text{color:#10b981;font-weight:500}.error-text{color:#f87171;font-weight:500}.job-details-row td{padding:0;background:#0f172a}.job-details-content{padding:16px;border-top:1px solid #334155}.details-section{margin-bottom:16px}.details-section:last-child{margin-bottom:0}.details-section h4{color:#e2e8f0;font-size:12px;font-weight:600;margin:0 0 10px;display:flex;align-items:center;gap:12px}.btn-toggle-errors-inline{background:none;border:1px solid #475569;color:#94a3b8;font-size:10px;padding:2px 8px;border-radius:4px;cursor:pointer}.btn-toggle-errors-inline:hover{background:#334155;color:#f1f5f9}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.result-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1e293b80;border-radius:4px;font-size:11px}.result-item.success{border-left:2px solid #10b981}.result-item.error{border-left:2px solid #ef4444}.result-item.more{color:#64748b;font-style:italic;border:none}.result-icon{font-size:12px}.result-item.success .result-icon{color:#10b981}.result-item.error .result-icon{color:#f87171}.result-drawing{color:#e2e8f0;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-counts{color:#64748b;font-size:10px}.result-counts-breakdown{display:flex;gap:3px;flex-shrink:0}.mini-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;padding:1px 4px;border-radius:3px;font-size:9px;font-weight:600;color:#fff}.mini-count.equipment{background:#ef444480}.mini-count.sizing{background:#22c55e80}.mini-count.process-line{background:#f9731680}.mini-count.design-conditions{background:#a855f780}.mini-count.text{background:#3b82f680}.errors-detail-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.error-detail-item{padding:8px 10px;background:#ef44441a;border-radius:4px;font-size:11px;color:#fca5a5;display:flex;gap:6px}.error-detail-item strong{color:#f87171;white-space:nowrap}.job-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid #334155}.pagination-info{color:#64748b;font-size:12px}.pagination-controls{display:flex;gap:8px}.btn-page{padding:6px 12px;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-page:hover:not(:disabled){background:#64748b}.btn-page:disabled{opacity:.5;cursor:not-allowed}.btn-new-extraction{padding:12px 24px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.btn-new-extraction:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.job-row.clickable{cursor:pointer}.job-row.clickable:hover{background:#3b82f61a}.modal{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000080}.extraction-modal{width:700px;max-width:100%}.job-details-modal{width:600px;max-width:100%}.btn-close-modal{background:none;border:none;color:#64748b;font-size:24px;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s ease}.btn-close-modal:hover{color:#f1f5f9}.modal-label{display:block;color:#e2e8f0;font-size:13px;font-weight:600;margin-bottom:8px}.modal-input{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;transition:border-color .2s ease}.modal-input:focus{outline:none;border-color:#3b82f6}.modal-input:disabled{opacity:.5;cursor:not-allowed}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid #334155;background:#0f172a80}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.btn-start-extraction{background:linear-gradient(135deg,#10b981,#059669)}.btn-start-extraction:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857)}.revision-filter-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.revision-filter-select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px}.revision-filter-select:focus{outline:none;border-color:#3b82f6}.selection-section{padding-bottom:0!important}.selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.selection-header .selected-count{color:#60a5fa;font-size:13px;font-weight:500}.project-tree-modal{max-height:300px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px}.project-tree-modal .tree-project{margin-bottom:4px}.project-tree-modal .tree-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;font-size:13px;color:#e2e8f0}.project-tree-modal .tree-item:hover{background:#3b82f61a}.project-tree-modal .expand-btn{background:none;border:none;color:#64748b;cursor:pointer;padding:2px;font-size:10px;width:16px}.project-tree-modal .item-icon{font-size:14px}.project-tree-modal .item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-tree-modal .item-code{color:#64748b;font-size:11px}.project-tree-modal .item-count{color:#64748b;font-size:11px;background:#64748b33;padding:2px 6px;border-radius:4px}.project-tree-modal .tree-children{margin-left:24px}.project-tree-modal .folder-item{background:#1e293b80}.project-tree-modal .drawing-item{font-size:12px}.project-tree-modal input[type=checkbox]{width:14px;height:14px;cursor:pointer}.logs-panel.compact{margin:12px 0 0;border-radius:6px;border:1px solid #334155}.logs-panel.compact .logs-header{padding:6px 10px}.logs-panel.compact .logs-content{max-height:80px}.extraction-modal .extraction-progress{margin:0;border-radius:0;border:none;border-bottom:1px solid #334155}.extraction-in-progress{display:flex;align-items:center;gap:10px;color:#94a3b8;font-size:14px}.spinner-small{width:18px;height:18px;border:2px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.btn-background{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}.btn-background:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5,#4338ca)}.btn-minimize{padding:4px 12px;font-size:12px}.btn-cancel{padding:4px 12px;font-size:12px;color:#f87171;border-color:#f87171}.btn-cancel:hover{background:#f871711a}.job-row.running .status-pill{animation:pulse 1.5s ease-in-out infinite}.job-row.running .col-results{position:relative}.job-progress-bar{position:absolute;bottom:0;left:0;height:2px;background:#3b82f6;transition:width .3s ease}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.job-detail-content{padding:20px 24px}.detail-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(51,65,85,.3)}.detail-row:last-child{border-bottom:none}.detail-label{color:#94a3b8;font-size:13px;min-width:120px}.detail-value{color:#e2e8f0;font-size:14px;flex:1}.btn-mark-failed{padding:4px 10px;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:4px;color:#f87171;font-size:11px;cursor:pointer;margin-left:12px;transition:all .2s ease}.btn-mark-failed:hover{background:#ef44444d}.detail-section{margin-top:20px;padding-top:16px;border-top:1px solid #334155}.detail-section h4{color:#e2e8f0;font-size:14px;font-weight:600;margin:0 0 12px}.job-details-modal .results-grid{max-height:200px;overflow-y:auto}.job-details-modal .errors-detail-list{max-height:150px}.btn-titan{padding:10px 20px;background:linear-gradient(135deg,#8b5cf633,#3b82f633);border:1px solid rgba(139,92,246,.4);border-radius:8px;color:#a78bfa;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger{padding:10px 20px;background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:8px;color:#f87171;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:#ef444440;border-color:#ef444499}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-danger-confirm{padding:10px 20px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger-confirm:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px)}.btn-danger-confirm:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-modal{width:450px;max-width:90vw}.modal-header.warning{background:linear-gradient(135deg,#7f1d1d,#991b1b);border-bottom:1px solid rgba(239,68,68,.3)}.modal-header.warning h3{color:#fca5a5}.delete-warning-content{display:flex;gap:16px;padding:24px;background:#ef44440d;border-bottom:1px solid rgba(51,65,85,.5)}.warning-icon{font-size:32px;flex-shrink:0}.warning-text{flex:1}.warning-text p{margin:0 0 12px;color:#e2e8f0;font-size:14px;line-height:1.5}.warning-text p:last-child{margin-bottom:0}.warning-text strong{color:#f87171}.warning-text ul{margin:8px 0 12px;padding-left:20px;color:#94a3b8;font-size:13px;line-height:1.6}.warning-text ul li{margin-bottom:4px}.warning-note{color:#64748b!important;font-size:12px!important;font-style:italic}.col-checkbox{width:40px;text-align:center}.col-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.col-actions{width:100px;text-align:center;white-space:nowrap}.btn-view-job{padding:4px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#60a5fa;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-view-job:hover{background:#3b82f640;border-color:#3b82f680}.btn-delete-job{margin-left:4px;width:22px;height:22px;padding:0;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:4px;color:#ef4444;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle}.btn-delete-job:hover{background:#ef444440;border-color:#ef444480}.job-row.selected{background:#3b82f61a}.btn-delete-selected{padding:6px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:6px;color:#f87171;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-delete-selected:hover{background:#ef444440}.job-details-fullview{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a;z-index:1000;overflow-y:auto}.fullview-header{display:flex;align-items:center;gap:12px;padding:8px 16px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid #334155;position:sticky;top:0;z-index:10}.fullview-header.collapsed{padding:6px 16px}.fullview-header .header-job-name{color:#e2e8f0;font-size:14px;font-weight:600;white-space:nowrap}.fullview-header .drawing-title{color:#94a3b8;font-size:13px;padding:3px 10px;background:#334155;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.fullview-header .header-spacer{display:none}.btn-collapse-header{padding:4px 8px;background:#475569;border:none;border-radius:4px;color:#94a3b8;font-size:11px;cursor:pointer;transition:all .2s ease}.btn-collapse-header:hover{background:#64748b;color:#e2e8f0}.fullview-actions{display:flex;gap:8px;margin-left:auto}.fullview-content{padding:24px;max-width:1400px;margin:0 auto}.job-summary-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.summary-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(51,65,85,.3)}.summary-row:last-of-type{border-bottom:none}.summary-label{color:#94a3b8;font-size:13px;min-width:100px}.summary-value{color:#e2e8f0;font-size:14px}.summary-stats{display:flex;gap:24px;margin-top:16px;padding-top:16px;border-top:1px solid #334155}.summary-stats .stat{flex:1;text-align:center;padding:12px;background:#0f172a80;border-radius:8px}.summary-stats .stat-number{font-size:28px;font-weight:700;color:#f1f5f9}.summary-stats .stat-label{font-size:12px;color:#64748b;margin-top:4px}.summary-stats .stat.success .stat-number{color:#10b981}.summary-stats .stat.error .stat-number{color:#f87171}.drawings-section{margin-bottom:24px}.drawings-section h3{color:#f1f5f9;font-size:16px;font-weight:600;margin:0 0 16px}.drawings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.drawing-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:8px;padding:14px;transition:all .2s ease}.drawing-card:hover{border-color:#475569}.drawing-card.success{border-left:3px solid #10b981}.drawing-card.error{border-left:3px solid #ef4444}.drawing-card-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.drawing-status-icon{font-size:16px}.drawing-card.success .drawing-status-icon{color:#10b981}.drawing-card.error .drawing-status-icon{color:#f87171}.drawing-id{color:#f1f5f9;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-card-stats{display:flex;gap:16px;font-size:11px;color:#64748b}.drawing-card-error{font-size:11px;color:#f87171}.errors-section{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:12px;padding:20px}.errors-section h3{color:#f87171;font-size:16px;font-weight:600;margin:0 0 16px}.errors-list{display:flex;flex-direction:column;gap:8px}.error-item{padding:12px;background:#ef44441a;border-radius:6px;font-size:12px}.error-drawing{color:#f87171;margin-right:8px}.error-message{color:#fca5a5}.fullview-body{display:flex;height:calc(100vh - 70px);overflow:hidden}.fullview-body .drawings-panel{width:280px;min-width:280px;max-width:280px;background:#1e293b;border-right:1px solid #334155;display:flex;flex-direction:column;overflow:hidden;margin-top:4px;position:relative;transition:width .2s ease,min-width .2s ease,max-width .2s ease}.fullview-body .drawings-panel.collapsed{width:40px;min-width:40px;max-width:40px}.panel-collapse-toggle{position:absolute;top:8px;right:8px;background:#3b82f633;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;padding:4px 8px;z-index:10;transition:all .15s ease}.panel-collapse-toggle:hover{background:#3b82f64d;color:#f1f5f9}.drawings-panel.collapsed .panel-collapse-toggle{right:auto;left:50%;transform:translate(-50%)}.panel-header{padding:12px 16px;border-bottom:1px solid #334155;flex-shrink:0;background:#1e293b}.panel-header h3{margin:0 0 4px;color:#f1f5f9;font-size:14px;font-weight:600;line-height:1.2}.job-stats-mini{display:flex;gap:12px;font-size:11px;margin-bottom:8px}.stat-success{color:#10b981}.stat-failed{color:#f87171}.job-totals-breakdown{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.job-totals-breakdown .total-item{display:flex;align-items:center;gap:4px;font-size:11px;color:#f1f5f9;padding:3px 8px;border-radius:4px;background:#0000004d;font-weight:500}.job-totals-breakdown .total-item .total-dot{width:8px;height:8px;border-radius:50%}.job-totals-breakdown .total-item.equipment .total-dot{background:#ef4444}.job-totals-breakdown .total-item.sizing .total-dot{background:#22c55e}.job-totals-breakdown .total-item.process-line .total-dot{background:#f97316}.job-totals-breakdown .total-item.design-conditions .total-dot{background:#a855f7}.job-totals-breakdown .total-item.text .total-dot{background:#3b82f6}.job-totals-breakdown .total-item.standalone .total-dot{background:#14b8a6}.global-search-section{padding:8px 12px;border-bottom:1px solid #334155;flex-shrink:0}.global-search-input-wrapper{position:relative;display:flex;align-items:center}.global-search-input{width:100%;padding:8px 32px 8px 12px;background:#0f172a;border:1px solid #3b82f6;border-radius:6px;color:#f1f5f9;font-size:13px;transition:border-color .2s ease}.global-search-input:focus{outline:none;border-color:#60a5fa;background:#1e293b}.global-search-input::placeholder{color:#64748b}.global-search-clear{position:absolute;right:8px;background:none;border:none;color:#64748b;font-size:16px;cursor:pointer;padding:4px;transition:all .15s ease}.global-search-clear:hover{color:#f1f5f9}.search-spinner{position:absolute;right:10px;color:#3b82f6;animation:spin 1s linear infinite}.global-search-results{margin-top:8px;max-height:300px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:6px}.search-results-header{padding:8px 12px;background:#1e293b;color:#94a3b8;font-size:11px;font-weight:600;text-transform:uppercase;border-bottom:1px solid #334155}.global-search-result-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .15s ease;border-bottom:1px solid rgba(51,65,85,.5)}.global-search-result-item:last-child{border-bottom:none}.global-search-result-item:hover{background:#3b82f61a}.global-search-result-item.current-drawing{background:#3b82f626;border-left:2px solid #3b82f6}.global-search-result-item .result-text{flex:1;color:#f1f5f9;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-result-item .result-category{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:#94a3b81a;color:#94a3b8}.global-search-result-item .result-category.equipment{background:#3b82f626;color:#60a5fa}.global-search-result-item .result-category.sizing{background:#10b98126;color:#10b981}.global-search-result-item .result-drawing{font-size:10px;color:#64748b;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-no-results{margin-top:8px;padding:12px;background:#3341554d;border-radius:6px;color:#64748b;font-size:12px;text-align:center}.drawings-search{padding:8px 12px;border-bottom:1px solid #334155;position:relative;flex-shrink:0}.drawings-search-input{width:100%;padding:8px 32px 8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:border-color .2s ease}.drawings-search-input:focus{outline:none;border-color:#3b82f6;background:#1e293b}.drawings-search-input::placeholder{color:#64748b}.drawings-search-clear{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:none;border:none;color:#64748b;font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;transition:all .15s ease}.drawings-search-clear:hover{color:#f1f5f9;background:#ffffff1a}.drawings-no-match{padding:20px;text-align:center;color:#64748b;font-size:13px;font-style:italic}.drawings-list{flex:1;overflow-y:auto;padding:8px}.drawing-list-item{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:8px;cursor:pointer;transition:all .2s ease;margin-bottom:6px;background:#0f172a80;border:1px solid transparent}.drawing-list-item:hover{background:#3b82f61a;border-color:#3b82f633}.drawing-list-item.selected{background:#3b82f626;border-color:#3b82f680;box-shadow:0 0 0 1px #3b82f633}.drawing-list-item.success .drawing-status-icon{color:#10b981;font-size:14px;flex-shrink:0;margin-top:2px}.drawing-list-item.error{opacity:.6;cursor:not-allowed;background:#ef44440d}.drawing-list-item.error:hover{background:#ef44440d;border-color:transparent}.drawing-list-item.error .drawing-status-icon{color:#f87171;font-size:14px;flex-shrink:0;margin-top:2px}.drawing-info{flex:1;min-width:0}.drawing-name{display:block;color:#f1f5f9;font-size:12px;font-weight:500;word-break:break-word;line-height:1.4}.drawing-counts{display:block;color:#64748b;font-size:10px;margin-top:2px}.drawing-counts-breakdown{display:flex;gap:8px;margin-top:4px;flex-wrap:wrap}.drawing-counts-breakdown .count-item{display:flex;align-items:center;gap:4px;font-size:11px;color:#94a3b8;padding:2px 6px;border-radius:4px;background:#ffffff0d}.drawing-counts-breakdown .count-item .count-dot{width:6px;height:6px;border-radius:50%}.drawing-counts-breakdown .count-item.equipment .count-dot{background:#ef4444}.drawing-counts-breakdown .count-item.sizing .count-dot{background:#22c55e}.drawing-counts-breakdown .count-item.process-line .count-dot{background:#f97316}.drawing-counts-breakdown .count-item.design-conditions .count-dot{background:#a855f7}.drawing-counts-breakdown .count-item.text .count-dot{background:#3b82f6}.drawing-counts-breakdown .count-item.standalone .count-dot{background:#14b8a6}.drawing-error-text{display:block;color:#f87171;font-size:10px;margin-top:2px}.errors-panel{padding:12px;background:#ef44440d;border-top:1px solid rgba(239,68,68,.2);max-height:200px;overflow-y:auto}.errors-panel h4{margin:0 0 8px;color:#f87171;font-size:12px;font-weight:600}.errors-list-compact{display:flex;flex-direction:column;gap:6px}.error-item-compact{font-size:10px;color:#fca5a5;padding:6px 8px;background:#ef44441a;border-radius:4px}.error-item-compact strong{color:#f87171;margin-right:4px}.detail-panel{flex:1;overflow:hidden;background:#0f172a;display:flex;flex-direction:column}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#64748b;text-align:center;padding:40px}.no-selection-icon{font-size:48px;margin-bottom:16px;opacity:.5}.no-selection p{margin:0 0 8px;font-size:14px}.no-selection .hint{font-size:12px;color:#475569}.loading-results{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#94a3b8;gap:16px}.detail-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0}.detail-header .detail-title{color:#94a3b8;font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.btn-collapse-image{background:#a855f733;border:1px solid #a855f7;color:#a855f7;font-size:11px;cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .15s}.btn-collapse-image:hover{background:#a855f74d;color:#f1f5f9}.btn-close-detail{background:none;border:none;color:#64748b;font-size:20px;cursor:pointer;padding:4px 8px}.btn-close-detail:hover{color:#f1f5f9}.drawing-preview{padding:16px;background:#0f172a;border-bottom:1px solid #334155}.image-container{position:relative;max-width:100%;overflow:auto;background:#1e293b;border-radius:8px}.image-container img{display:block;max-width:100%;height:auto}.bbox-overlay{position:absolute;border:2px solid #3b82f6;background:#3b82f61a;pointer-events:none}.bbox-overlay.equipment{border-color:#10b981;background:#10b9811a}.bbox-overlay.sizing{border-color:#f59e0b;background:#f59e0b1a}.bbox-overlay.process_line{border-color:#8b5cf6;background:#8b5cf61a}.equipment-section{padding:16px 20px}.equipment-section h4{margin:0 0 12px;color:#f1f5f9;font-size:14px;font-weight:600}.no-tags{color:#64748b;font-size:13px;text-align:center;padding:24px}.equipment-table-container{overflow-x:auto;border:1px solid #334155;border-radius:8px}.equipment-table{width:100%;border-collapse:collapse;font-size:12px}.equipment-table th{background:#1e293b;color:#94a3b8;font-weight:500;text-align:left;padding:10px 12px;border-bottom:1px solid #334155;white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.equipment-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0}.equipment-table tbody tr:hover{background:#3b82f60d}.equipment-table .tag-text{font-weight:600;color:#f1f5f9}.type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.type-badge.equipment{background:#10b98133;color:#10b981}.type-badge.sizing{background:#f59e0b33;color:#f59e0b}.type-badge.process_line{background:#8b5cf633;color:#8b5cf6}.equipment-table .confidence{text-align:right;color:#64748b}.no-image{display:flex;align-items:center;justify-content:center;padding:60px 40px;background:#1e293b;border-radius:8px;margin:16px}.no-image p{color:#64748b;font-size:14px;margin:0}.detail-content{display:flex;flex-direction:column;height:100%;overflow:hidden;padding:16px;gap:4px}.image-viewer{flex:2;display:flex;flex-direction:column;min-height:400px;border:1px solid #334155;border-radius:8px;overflow:hidden;background:#0f172a}.zoom-controls{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0}.zoom-controls button{padding:4px 10px;background:#334155;border:none;border-radius:4px;color:#f1f5f9;font-size:14px;cursor:pointer}.zoom-controls button:hover{background:#475569}.zoom-controls span{color:#94a3b8;font-size:12px;min-width:45px;text-align:center}.zoom-controls .zoom-hint{color:#64748b;font-size:10px;margin-left:auto;min-width:auto}.color-legend{display:flex;gap:12px;padding:6px 12px;background:#1e293b;border-bottom:1px solid #334155;font-size:11px;flex-shrink:0;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:3px}.legend-item.equipment{color:#ef4444}.legend-item.sizing{color:#22c55e}.legend-item.process-line{color:#f97316}.legend-item.text{color:#3b82f6}.legend-item.design-conditions{color:#a855f7}.legend-item.standalone{color:#14b8a6}.legend-item.shapes{color:#ec4899}.image-scroll-container{flex:1;overflow:auto;background:#0a0f1a;position:relative}.detail-content .results-section{flex:1;min-height:200px;display:flex;flex-direction:column;border:1px solid #334155;border-radius:8px;overflow:hidden;background:#1e293b;margin-top:4px;padding-top:0;border-top:none}.result-tabs{display:flex;background:#0f172a;border-bottom:1px solid #334155;flex-shrink:0}.result-tab{flex:1;padding:8px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap}.result-tab:hover{background:#334155}.result-tab.active{color:#f1f5f9;border-bottom-color:currentColor}.result-tab.equipment.active{border-bottom-color:#ef4444;color:#ef4444}.result-tab.sizing.active{border-bottom-color:#22c55e;color:#22c55e}.result-tab.process-line.active{border-bottom-color:#f97316;color:#f97316}.result-tab.text.active{border-bottom-color:#3b82f6;color:#3b82f6}.result-tab.design-conditions.active{border-bottom-color:#a855f7;color:#a855f7}.result-tab.standalone.active{border-bottom-color:#14b8a6;color:#14b8a6}.result-tab.shapes.active{border-bottom-color:#ec4899;color:#ec4899}.results-table-container{flex:1;overflow:auto;background:#0f172a}.results-table{width:100%;border-collapse:collapse}.results-table th,.results-table td{padding:6px 10px;text-align:left;border-bottom:1px solid #1e293b}.results-table th{background:#0f172a;color:#94a3b8;font-weight:500;font-size:10px;text-transform:uppercase;position:sticky;top:0;z-index:1}.results-table td{color:#f1f5f9;font-size:12px}.results-table .item-text{font-family:monospace;font-weight:500}.results-table.clickable tbody tr{cursor:pointer;transition:background .15s}.results-table.clickable tbody tr:hover{background:#3b82f626}.results-table.clickable tbody tr.highlighted-row{background:#fbbf244d;animation:highlight-pulse .5s ease-out}@keyframes highlight-pulse{0%{background:#fbbf2480}to{background:#fbbf244d}}.no-items{padding:24px;text-align:center;color:#64748b}.results-table .location-badge{margin-left:8px;padding:2px 8px;background:#3b82f633;border-radius:10px;font-size:10px;color:#60a5fa}.results-table .location-badge.clickable{cursor:pointer;transition:all .15s;border:1px solid transparent}.results-table .location-badge.clickable:hover{background:#3b82f666;border-color:#60a5fa;color:#f1f5f9}.results-table .equipment-name-subtitle{font-size:10px;color:#94a3b8;font-weight:400;margin-top:2px;font-family:inherit}.results-table .design-conditions-cell{text-align:center;width:60px}.results-table .design-badge{padding:2px 8px;background:#a855f733;border-radius:10px;font-size:11px;color:#a855f7;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.results-table tr.expanded{background:#a855f71a}.results-table .design-conditions-row{background:#0f172a}.results-table .design-conditions-row td{padding:0}.inline-design-conditions{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;border-left:3px solid #a855f7;margin-left:8px}.design-condition-item{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#a855f726;border-radius:6px;cursor:pointer;transition:background .15s}.design-condition-item:hover{background:#a855f74d}.design-condition-item .dc-label{font-size:10px;color:#f59e0b;font-weight:600;text-transform:uppercase}.design-condition-item .dc-value{font-size:12px;color:#f1f5f9;font-family:JetBrains Mono,monospace}.btn-fullscreen{font-size:16px!important;padding:2px 8px!important}.fullscreen-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:2000;display:flex;flex-direction:column}.fullscreen-modal{width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.fullscreen-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#1e293b;border-bottom:1px solid #334155;flex-shrink:0}.fullscreen-header h3{margin:0;color:#f1f5f9;font-size:16px;font-weight:600}.fullscreen-controls{display:flex;align-items:center;gap:8px}.fullscreen-controls button{padding:6px 12px;background:#334155;border:none;border-radius:4px;color:#f1f5f9;font-size:14px;cursor:pointer;transition:background .2s}.fullscreen-controls button:hover{background:#475569}.fullscreen-controls span{color:#94a3b8;font-size:13px;min-width:50px;text-align:center}.btn-close-fullscreen{font-size:20px!important;padding:4px 12px!important;margin-left:12px;background:#ef444433!important;color:#f87171!important}.btn-close-fullscreen:hover{background:#ef444466!important}.fullscreen-legend{display:flex;gap:16px;padding:8px 20px;background:#1e293b;border-bottom:1px solid #334155;font-size:12px;flex-shrink:0}.fullscreen-image-container{flex:1;overflow:auto;background:#0a0f1a;padding:20px}.fullscreen-image-container img{display:block;height:auto;-webkit-user-select:none;user-select:none;box-shadow:0 4px 30px #00000080}.search-panel{position:relative;margin:0}.search-input{width:100%;padding:8px 32px 8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:border-color .2s}.search-input:focus{outline:none;border-color:#3b82f6;background:#1e293b}.search-input::placeholder{color:#64748b}.search-expand{position:absolute;right:32px;top:50%;transform:translateY(-50%);background:none;border:none;color:#64748b;font-size:12px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;transition:all .15s ease;z-index:2}.search-expand:hover{color:#f1f5f9;background:#ffffff1a}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:#64748b;font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;transition:all .15s ease;z-index:2}.search-clear:hover{color:#f1f5f9;background:#ffffff1a}.search-results{position:absolute;top:100%;left:0;right:0;background:#1e293b;border:1px solid #334155;border-radius:6px;margin-top:4px;max-height:300px;overflow-y:auto;z-index:100;box-shadow:0 8px 24px #0006}.search-result-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #334155;transition:background .15s}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:#3b82f626}.search-result-item.equipment{border-left:3px solid #ef4444}.search-result-item.sizing{border-left:3px solid #22c55e}.search-result-item.process_lines{border-left:3px solid #f97316}.search-result-item.text{border-left:3px solid #3b82f6}.search-result-item.design_conditions{border-left:3px solid #a855f7}.search-result-category{font-size:10px;text-transform:uppercase;padding:2px 6px;border-radius:3px;font-weight:600;flex-shrink:0}.search-result-item.equipment .search-result-category{background:#ef444433;color:#ef4444}.search-result-item.sizing .search-result-category{background:#22c55e33;color:#22c55e}.search-result-item.process_lines .search-result-category{background:#f9731633;color:#f97316}.search-result-item.text .search-result-category{background:#3b82f633;color:#3b82f6}.search-result-item.design_conditions .search-result-category{background:#a855f733;color:#a855f7}.search-result-text{color:#f1f5f9;font-size:13px;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-more{padding:8px 14px;color:#64748b;font-size:12px;text-align:center;font-style:italic}.search-no-results{padding:16px;color:#64748b;font-size:13px;text-align:center}.color-legend.clickable{display:flex;gap:12px;flex-wrap:wrap}.color-legend.clickable .legend-item{cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .2s;-webkit-user-select:none;user-select:none}.color-legend.clickable .legend-item:hover{background:#ffffff1a}.color-legend.clickable .legend-item.inactive{opacity:.4;text-decoration:line-through}.color-legend.clickable .legend-item.active{opacity:1}.fullscreen-search-input{padding:6px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:13px;width:200px;margin-right:12px}.fullscreen-search-input:focus{outline:none;border-color:#3b82f6}.fullscreen-search-input::placeholder{color:#64748b}.fullscreen-search-results{position:absolute;top:100px;left:50%;transform:translate(-50%);background:#1e293b;border:1px solid #334155;border-radius:8px;max-height:300px;overflow-y:auto;z-index:100;min-width:400px;box-shadow:0 12px 40px #0009}.fullscreen-legend.clickable{display:flex;gap:16px;padding:8px 20px;background:#1e293b;border-bottom:1px solid #334155;font-size:12px;flex-shrink:0}.fullscreen-legend.clickable .legend-item{cursor:pointer;padding:4px 10px;border-radius:4px;transition:all .2s;-webkit-user-select:none;user-select:none}.fullscreen-legend.clickable .legend-item:hover{background:#ffffff1a}.fullscreen-legend.clickable .legend-item.inactive{opacity:.4;text-decoration:line-through}.image-with-overlay{position:relative;display:inline-block}.bbox-overlay-svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.bbox-rect{transition:stroke-width .15s,fill .15s;pointer-events:auto;cursor:pointer}.bbox-rect:hover{stroke-width:3;fill:#ffffff1a}.bbox-rect.highlighted{animation:pulse-highlight .5s ease-in-out 3}@keyframes pulse-highlight{0%,to{stroke-width:4;fill:#ffff004d}50%{stroke-width:6;fill:#ffff0080}}.bbox-tooltip{background:#1e293b;border:1px solid #475569;border-radius:8px;box-shadow:0 8px 32px #00000080;min-width:200px;max-width:350px;overflow:hidden}.bbox-tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#0f172a;border-bottom:1px solid #334155}.bbox-tooltip-category{font-size:11px;text-transform:uppercase;font-weight:600;padding:3px 8px;border-radius:4px}.bbox-tooltip-category.equipment{background:#ef444433;color:#ef4444}.bbox-tooltip-category.sizing{background:#22c55e33;color:#22c55e}.bbox-tooltip-category.process_lines{background:#f9731633;color:#f97316}.bbox-tooltip-category.text{background:#3b82f633;color:#3b82f6}.bbox-tooltip-category.design_conditions{background:#a855f733;color:#a855f7}.bbox-tooltip-close{background:transparent;border:none;color:#94a3b8;font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.bbox-tooltip-close:hover{color:#f1f5f9}.bbox-tooltip-content{padding:12px}.bbox-tooltip-text{font-size:16px;font-weight:600;color:#f1f5f9;font-family:monospace;margin-bottom:8px;word-break:break-all}.bbox-tooltip-row{font-size:13px;color:#cbd5e1;margin-bottom:4px}.bbox-tooltip-row .label{color:#64748b;margin-right:6px}.equipment-details-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.expand-controls{display:flex;gap:8px;padding:8px 12px;border-bottom:1px solid #334155;background:#0f172a;flex-shrink:0}.expand-all-btn,.collapse-all-btn{padding:4px 12px;font-size:12px;border-radius:4px;border:1px solid #475569;background:transparent;color:#94a3b8;cursor:pointer;transition:all .15s}.expand-all-btn:hover,.collapse-all-btn:hover{background:#a855f71a;border-color:#a855f7;color:#f1f5f9}.equipment-details-list{display:flex;flex-direction:column;gap:8px;padding:12px;overflow-y:auto;flex:1;min-height:0}.equipment-detail-card{background:#1e293b;border:1px solid #334155;border-radius:8px;transition:border-color .2s;flex-shrink:0}.equipment-detail-card.expanded{border-color:#a855f7}.equipment-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;background:linear-gradient(135deg,#a855f726,#a855f70d);border-bottom:1px solid transparent;border-radius:8px 8px 0 0;cursor:pointer;transition:all .2s}.equipment-detail-card.expanded .equipment-detail-header{border-bottom-color:#334155}.equipment-detail-card.collapsed .equipment-detail-header{border-bottom:none;border-radius:8px}.equipment-detail-header:hover{background:linear-gradient(135deg,#a855f740,#a855f71a)}.equipment-detail-header .header-main{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.equipment-detail-header .header-top-row{display:flex;align-items:center;gap:10px}.equipment-detail-header .header-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.equipment-detail-header .expand-arrow{font-size:12px;color:#64748b;transition:transform .2s;flex-shrink:0}.equipment-detail-header .expand-arrow.expanded{transform:rotate(90deg);color:#a855f7}.equipment-detail-header .detail-count{font-size:11px;color:#64748b;background:#64748b33;padding:2px 8px;border-radius:10px}.equipment-detail-header .zoom-btn{background:transparent;border:1px solid #475569;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:all .15s}.equipment-detail-header .zoom-btn:hover{background:#a855f733;border-color:#a855f7}.equipment-tag-name{font-size:16px;font-weight:700;color:#a855f7;font-family:JetBrains Mono,monospace}.equipment-description{font-size:13px;color:#e2e8f0;font-weight:500;line-height:1.3;padding-left:22px}.equipment-detail-table{width:100%;border-collapse:collapse;background:#0f172a;border-radius:0 0 8px 8px;overflow:hidden}.equipment-detail-table tr{border-bottom:1px solid #334155;transition:background .15s}.equipment-detail-table tr:last-child{border-bottom:none}.equipment-detail-table tr:hover{background:#a855f726;cursor:pointer}.equipment-detail-table td{padding:12px 16px;font-size:13px;vertical-align:top}.equipment-detail-table .detail-label{width:140px;min-width:140px;color:#f59e0b;font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.equipment-detail-table .detail-value{color:#f1f5f9;font-family:JetBrains Mono,monospace;font-size:14px;word-break:break-word}.table-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#1e293b;border-bottom:1px solid #334155;border-radius:8px 8px 0 0;margin-bottom:-1px}.filter-control{display:flex;align-items:center;gap:8px}.filter-control label{color:#94a3b8;font-size:13px;font-weight:500}.type-filter-select{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:6px 12px;color:#f1f5f9;font-size:13px;cursor:pointer;min-width:180px}.type-filter-select:hover{border-color:#4f46e5}.type-filter-select:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 2px #4f46e533}.sort-info{color:#64748b;font-size:12px}.results-table.sortable thead th.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.results-table.sortable thead th.sortable-header:hover{background:#334155}.results-table.sortable thead th.sortable-header.sorted{color:#a78bfa;background:#4f46e51a}.job-indicator{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:4px;color:#10b981;font-size:10px;font-weight:500;margin-left:6px;cursor:default}.job-indicator:hover{background:#10b98140}.correlation-jobs-tab{display:flex;flex-direction:column;height:100%;min-height:0}.correlation-jobs-tab .jobs-header{margin-bottom:20px}.correlation-jobs-tab .jobs-filters{display:flex;gap:12px;align-items:center}.correlation-jobs-tab .status-filter{padding:8px 12px;border:1px solid #475569;background:#1e293bcc;border-radius:6px;color:#e2e8f0;font-size:14px;cursor:pointer}.correlation-jobs-tab .status-filter:hover{border-color:#3b82f6}.correlation-jobs-tab .status-filter:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.correlation-jobs-tab .jobs-search{flex:1;max-width:300px;padding:8px 12px;border:1px solid #475569;background:#1e293bcc;border-radius:6px;color:#e2e8f0;font-size:14px}.correlation-jobs-tab .jobs-search::placeholder{color:#64748b}.correlation-jobs-tab .jobs-search:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.correlation-jobs-tab .refresh-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #475569;background:#1e293bcc;border-radius:6px;color:#94a3b8;font-size:18px;cursor:pointer;transition:all .2s ease}.correlation-jobs-tab .refresh-btn:hover{border-color:#3b82f6;color:#60a5fa;background:#3b82f61a}.correlation-jobs-tab .running-job-banner{margin-bottom:20px;padding:16px 20px;background:linear-gradient(135deg,#3b82f626,#8b5cf61a);border:1px solid rgba(59,130,246,.3);border-radius:12px;animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{border-color:#3b82f64d}50%{border-color:#3b82f699}}.correlation-jobs-tab .running-job-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.correlation-jobs-tab .running-icon{font-size:20px;animation:spin 1.5s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.correlation-jobs-tab .running-title{font-size:15px;font-weight:600;color:#f1f5f9}.correlation-jobs-tab .running-job-progress{margin-bottom:12px}.correlation-jobs-tab .progress-bar-full{height:10px;background:#1e293bcc;border-radius:5px;overflow:hidden;margin-bottom:8px}.correlation-jobs-tab .progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:5px;transition:width .5s ease}.correlation-jobs-tab .progress-stats{display:flex;justify-content:space-between;align-items:center;font-size:13px}.correlation-jobs-tab .progress-percent{font-weight:700;color:#60a5fa;font-size:18px}.correlation-jobs-tab .progress-count{color:#94a3b8}.correlation-jobs-tab .running-current{font-size:12px;color:#94a3b8;margin-bottom:12px}.correlation-jobs-tab .current-pair-name{color:#e2e8f0;font-family:monospace}.correlation-jobs-tab .running-job-actions{display:flex;justify-content:flex-end}.correlation-jobs-tab .cancel-job-btn{padding:8px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#f87171;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease}.correlation-jobs-tab .cancel-job-btn:hover{background:#ef444440;border-color:#ef444480}.correlation-jobs-tab .jobs-error{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#fca5a5;margin-bottom:16px}.correlation-jobs-tab .jobs-error button{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:18px;padding:0 4px}.correlation-jobs-tab .jobs-loading{display:flex;align-items:center;justify-content:center;padding:60px;color:#94a3b8;font-size:14px}.correlation-jobs-tab .jobs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;background:#0f172a66;border:1px dashed #334155;border-radius:12px}.correlation-jobs-tab .jobs-empty .empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.correlation-jobs-tab .jobs-empty h3{margin:0 0 8px;color:#e2e8f0;font-size:18px;font-weight:600}.correlation-jobs-tab .jobs-empty p{margin:0;color:#94a3b8;font-size:14px}.correlation-jobs-tab .jobs-list{flex:1;overflow-y:auto;border:1px solid #334155;border-radius:8px;background:#0f172a66}.correlation-jobs-tab .jobs-table-header{display:grid;grid-template-columns:40px 110px 1fr 150px 90px 90px 150px 90px 110px;gap:16px;padding:12px 16px;background:#1e293bcc;border-bottom:1px solid #334155;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;position:sticky;top:0;z-index:10}.correlation-jobs-tab .job-row-wrapper{border-bottom:1px solid #334155}.correlation-jobs-tab .job-row-wrapper:last-child{border-bottom:none}.correlation-jobs-tab .job-row{display:grid;grid-template-columns:40px 110px 1fr 150px 90px 90px 150px 90px 110px;gap:16px;padding:14px 16px;cursor:pointer;transition:background .15s ease;align-items:center}.correlation-jobs-tab .job-row:hover{background:#3b82f60d}.correlation-jobs-tab .job-row.expanded{background:#3b82f61a;border-bottom:1px solid #334155}.correlation-jobs-tab .status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase}.correlation-jobs-tab .status-completed{background:#10b98126;color:#34d399}.correlation-jobs-tab .status-running{background:#3b82f626;color:#60a5fa;animation:corr-jobs-pulse 2s ease-in-out infinite}.correlation-jobs-tab .status-pending{background:#94a3b826;color:#94a3b8}.correlation-jobs-tab .status-failed{background:#ef444426;color:#f87171}.correlation-jobs-tab .status-cancelled{background:#fb923c26;color:#fb923c}@keyframes corr-jobs-pulse{0%,to{opacity:1}50%{opacity:.7}}.correlation-jobs-tab .col-name{display:flex;flex-direction:column;gap:4px;overflow:hidden}.correlation-jobs-tab .job-name{font-weight:500;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .current-pair{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .col-revisions{display:flex;align-items:center;gap:6px}.correlation-jobs-tab .revision-badge{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.correlation-jobs-tab .revision-badge.source{background:#3b82f633;color:#60a5fa}.correlation-jobs-tab .revision-badge.target{background:#10b98133;color:#34d399}.correlation-jobs-tab .revision-arrow{color:#64748b;font-size:12px}.correlation-jobs-tab .col-count{font-size:13px;color:#94a3b8}.correlation-jobs-tab .progress-mini{width:100%;height:3px;background:#94a3b833;border-radius:2px;margin-top:4px;overflow:hidden}.correlation-jobs-tab .progress-mini .progress-bar{height:100%;background:#3b82f6;border-radius:2px;transition:width .3s ease}.correlation-jobs-tab .col-score .score{font-weight:600;font-size:13px}.correlation-jobs-tab .score.high{color:#34d399}.correlation-jobs-tab .score.medium{color:#fbbf24}.correlation-jobs-tab .score.low{color:#f87171}.correlation-jobs-tab .col-date,.correlation-jobs-tab .col-duration{font-size:12px;color:#94a3b8}.correlation-jobs-tab .col-actions{display:flex;gap:6px}.correlation-jobs-tab .action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:none;cursor:pointer;font-size:12px;transition:all .15s ease}.correlation-jobs-tab .action-btn.run{color:#34d399}.correlation-jobs-tab .action-btn.run:hover{background:#10b98126;border-color:#10b9814d}.correlation-jobs-tab .action-btn.cancel{color:#fb923c}.correlation-jobs-tab .action-btn.cancel:hover{background:#fb923c26;border-color:#fb923c4d}.correlation-jobs-tab .action-btn.retry{color:#60a5fa}.correlation-jobs-tab .action-btn.retry:hover{background:#3b82f626;border-color:#3b82f64d}.correlation-jobs-tab .action-btn.delete{color:#f87171}.correlation-jobs-tab .action-btn.delete:hover{background:#ef444426;border-color:#ef44444d}.correlation-jobs-tab .job-details{padding:20px;background:#0f172a99;border-top:1px solid #334155}.correlation-jobs-tab .details-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-bottom:20px}.correlation-jobs-tab .details-section h4{margin:0 0 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.correlation-jobs-tab .details-section.sources h4{color:#60a5fa}.correlation-jobs-tab .details-section.targets h4{color:#34d399}.correlation-jobs-tab .drawing-list{display:flex;flex-direction:column;gap:4px;max-height:150px;overflow-y:auto}.correlation-jobs-tab .drawing-item{font-size:12px;color:#94a3b8;padding:2px 0}.correlation-jobs-tab .drawing-item.more{color:#64748b;font-style:italic}.correlation-jobs-tab .results-stats{display:flex;gap:16px;margin-bottom:12px}.correlation-jobs-tab .stat{display:flex;flex-direction:column;align-items:center;padding:8px 12px;background:#1e293b80;border-radius:6px;min-width:60px}.correlation-jobs-tab .stat-value{font-size:18px;font-weight:600;color:#e2e8f0}.correlation-jobs-tab .stat-label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.03em;margin-top:2px}.correlation-jobs-tab .stat.high .stat-value{color:#34d399}.correlation-jobs-tab .stat.medium .stat-value{color:#fbbf24}.correlation-jobs-tab .stat.low .stat-value{color:#f87171}.correlation-jobs-tab .score-distribution{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#1e293b80}.correlation-jobs-tab .score-distribution .bar{min-width:2px;transition:flex .3s ease}.correlation-jobs-tab .score-distribution .bar.high{background:#34d399}.correlation-jobs-tab .score-distribution .bar.medium{background:#fbbf24}.correlation-jobs-tab .score-distribution .bar.low{background:#f87171}.correlation-jobs-tab .job-error{padding:12px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px;color:#fca5a5;font-size:13px;margin-bottom:16px}.correlation-jobs-tab .results-preview{margin-top:16px;padding-top:16px;border-top:1px solid #334155}.correlation-jobs-tab .results-preview h4{margin:0 0 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.correlation-jobs-tab .loading-results,.correlation-jobs-tab .no-results{font-size:13px;color:#64748b;padding:12px;text-align:center}.correlation-jobs-tab .results-mini-table{display:flex;flex-direction:column;gap:6px}.correlation-jobs-tab .result-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#1e293b80;border-radius:4px}.correlation-jobs-tab .result-pair{font-size:13px;color:#94a3b8;font-family:monospace}.correlation-jobs-tab .result-score{font-size:13px;font-weight:600}.correlation-jobs-tab .result-score.high{color:#34d399}.correlation-jobs-tab .result-score.medium{color:#fbbf24}.correlation-jobs-tab .result-score.low{color:#f87171}.correlation-jobs-tab .details-actions{display:flex;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #334155}.correlation-jobs-tab .view-results-btn,.correlation-jobs-tab .rerun-btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.correlation-jobs-tab .view-results-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;color:#fff}.correlation-jobs-tab .view-results-btn:hover{box-shadow:0 4px 12px #3b82f666}.correlation-jobs-tab .rerun-btn{background:none;border:1px solid #475569;color:#94a3b8}.correlation-jobs-tab .rerun-btn:hover{border-color:#3b82f6;color:#60a5fa}.correlation-jobs-tab .jobs-tab-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px}.correlation-jobs-tab .results-table-enhanced{display:flex;flex-direction:column;gap:12px;margin-top:12px}.correlation-jobs-tab .result-row-enhanced{display:flex;align-items:stretch;gap:16px;padding:12px;background:#0f172a99;border:1px solid #334155;border-radius:8px}.correlation-jobs-tab .result-doc{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.correlation-jobs-tab .result-doc.source-doc{border-left:3px solid #3b82f6;padding-left:10px}.correlation-jobs-tab .result-doc.target-doc{border-left:3px solid #10b981;padding-left:10px}.correlation-jobs-tab .doc-name{font-size:13px;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .doc-folder{font-size:11px;color:#94a3b8}.correlation-jobs-tab .doc-folder .folder-rev{color:#60a5fa}.correlation-jobs-tab .doc-revision-assign{display:flex;align-items:center;gap:8px;margin-top:6px}.correlation-jobs-tab .current-rev{font-size:12px;color:#cbd5e1;background:#3b82f626;padding:2px 8px;border-radius:4px;min-width:60px;text-align:center}.correlation-jobs-tab .revision-select{padding:4px 8px;font-size:11px;background:#1e293b;border:1px solid #475569;border-radius:4px;color:#e2e8f0;cursor:pointer;min-width:100px}.correlation-jobs-tab .revision-select:hover{border-color:#3b82f6}.correlation-jobs-tab .revision-select:disabled{opacity:.5;cursor:not-allowed}.correlation-jobs-tab .result-score-block{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 16px;min-width:80px}.correlation-jobs-tab .score-value{font-size:18px;font-weight:700}.correlation-jobs-tab .score-value.high{color:#10b981}.correlation-jobs-tab .score-value.medium{color:#f59e0b}.correlation-jobs-tab .score-value.low{color:#ef4444}.correlation-jobs-tab .score-label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.correlation-jobs-tab .success-toast{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#34d399;padding:8px 12px;border-radius:6px;font-size:12px;margin-bottom:12px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.correlation-jobs-tab .col-select{display:flex;align-items:center;justify-content:center}.correlation-jobs-tab .col-select input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.correlation-jobs-tab .job-row.selected{background:#3b82f61f}.correlation-jobs-tab .job-row.selected:hover{background:#3b82f62e}.correlation-jobs-tab .bulk-actions-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:8px;margin-bottom:16px}.correlation-jobs-tab .bulk-actions-bar .selection-count{font-size:14px;font-weight:500;color:#e2e8f0}.correlation-jobs-tab .bulk-actions-bar .btn-danger{padding:8px 16px;background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.correlation-jobs-tab .bulk-actions-bar .btn-danger:hover{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 8px #ef44444d}.correlation-jobs-tab .bulk-actions-bar .btn-secondary{padding:8px 16px;background:transparent;border:1px solid #475569;border-radius:6px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.correlation-jobs-tab .bulk-actions-bar .btn-secondary:hover{border-color:#64748b;color:#e2e8f0}.correlation-jobs-tab .similarity-explanation{font-size:12px;color:#94a3b8;margin:0 0 12px;padding:8px 12px;background:#1e293b80;border-radius:6px;border-left:3px solid #60a5fa;line-height:1.5}.document-correlation-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:24px;overflow-y:auto}.panel-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #334155}.panel-header h2{margin:0 0 8px;font-size:1.5rem;font-weight:600;color:#f1f5f9}.panel-description{color:#94a3b8;margin:0;font-size:14px;line-height:1.5}.panel-message{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 40px;min-height:300px;color:#64748b;background:linear-gradient(180deg,#0f172a4d,#02061733);border-radius:16px;border:1px dashed #334155;margin:20px auto;max-width:500px}.panel-message h2{color:#e2e8f0;margin-bottom:12px;font-size:20px;font-weight:600}.panel-message p{font-size:14px;max-width:320px;margin:0 auto;line-height:1.7;color:#94a3b8}.panel-tabs{display:flex;gap:4px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #334155}.panel-tab{padding:10px 24px;border:none;background:transparent;border-radius:8px 8px 0 0;cursor:pointer;font-size:14px;font-weight:500;color:#64748b;transition:all .2s ease;position:relative}.panel-tab:hover{color:#94a3b8;background:#3b82f60d}.panel-tab.active{color:#60a5fa;background:#3b82f61a}.panel-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#3b82f6;border-radius:2px 2px 0 0}.results-tab-content{flex:1;overflow-y:auto}.mode-selector{display:flex;gap:8px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.mode-btn{padding:10px 20px;border:1px solid #475569;background:#1e293b80;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:#94a3b8;transition:all .2s ease}.mode-btn:hover{background:#3b82f626;border-color:#3b82f6;color:#60a5fa}.mode-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#3b82f6;color:#fff;box-shadow:0 2px 8px #3b82f64d}.error-banner{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;font-weight:500;margin-bottom:16px;animation:slideDown .3s ease}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px;font-weight:500}.correlation-content{background:linear-gradient(180deg,#0f172a,#020617);border:1px solid #334155;border-radius:12px;padding:24px;flex:1}.source-target-mode .selection-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.selection-column h3{margin:0 0 16px;font-size:14px;font-weight:600;color:#f1f5f9;text-transform:uppercase;letter-spacing:.05em}.document-list{max-height:450px;overflow-y:auto;border:1px solid #334155;border-radius:8px;background:#0f172a80}.bulk-list{max-height:550px}.document-list::-webkit-scrollbar{width:6px}.document-list::-webkit-scrollbar-track{background:#1e293b;border-radius:3px}.document-list::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.document-list::-webkit-scrollbar-thumb:hover{background:#64748b}.folder-group{border-bottom:1px solid #334155}.folder-group:last-child{border-bottom:none}.folder-header{padding:10px 14px;background:linear-gradient(180deg,#1e293b,#0f172a);font-weight:600;font-size:12px;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:1;border-bottom:1px solid #334155;display:flex;align-items:center;gap:8px}.folder-header .collapse-toggle{width:20px;height:20px;padding:0;border:none;background:transparent;color:#64748b;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;flex-shrink:0}.folder-header .collapse-toggle:hover{background:#3b82f61a;color:#60a5fa}.folder-header label.select-all{display:flex;align-items:center;gap:10px;cursor:pointer;flex:1}.folder-header label.select-all input{cursor:pointer;accent-color:#3b82f6;width:16px;height:16px}.folder-header .folder-name{color:#e2e8f0}.folder-header .folder-count{color:#64748b;font-weight:400}.folder-header .selected-count{margin-left:auto;font-size:10px;font-weight:500;color:#60a5fa;background:#3b82f626;padding:2px 6px;border-radius:4px;text-transform:none;letter-spacing:0}.folder-group.collapsed{margin-bottom:0}.folder-group.collapsed .folder-header{border-bottom-color:#1e293b}.document-item{padding:12px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:all .15s ease;border-bottom:1px solid rgba(51,65,85,.5)}.document-item:last-child{border-bottom:none}.document-item:hover{background:#3b82f61a}.document-item.selected{background:#3b82f633;border-left:3px solid #3b82f6;padding-left:11px}.document-item.selected-source{background:#3b82f626;border-left:3px solid #3b82f6;padding-left:11px}.document-item.selected-source:hover{background:#3b82f640}.document-item.selected-target{background:#10b98126;border-left:3px solid #10b981;padding-left:11px}.document-item.selected-target:hover{background:#10b98140}.document-item.checkbox-item{cursor:pointer}.document-item.checkbox-item input{cursor:pointer;accent-color:#3b82f6;width:16px;height:16px}.document-name{flex:1;font-size:14px;color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-badge{padding:4px 8px;background:linear-gradient(135deg,#fbbf2433,#f59e0b26);color:#fbbf24;border:1px solid rgba(251,191,36,.4);border-radius:6px;font-size:11px;font-weight:600}.bulk-mode h3{margin:0 0 16px;font-size:14px;font-weight:600;color:#f1f5f9;text-transform:uppercase;letter-spacing:.05em}.bulk-mode h3 span{color:#60a5fa;font-weight:700}.action-bar{margin-top:24px;padding-top:20px;border-top:1px solid #334155;display:flex;justify-content:space-between;align-items:center;gap:16px}.action-bar-info{color:#94a3b8;font-size:13px}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f64d}.btn-primary:disabled{background:#475569;cursor:not-allowed;transform:none;box-shadow:none}.results-section{margin-top:24px;padding-top:24px;border-top:1px solid #334155}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.results-section h3{margin:0;font-size:16px;font-weight:600;color:#f1f5f9}.job-id-label{font-size:12px;color:#64748b;background:#3b82f626;padding:4px 10px;border-radius:4px;font-family:monospace}.job-summary-section{background:linear-gradient(180deg,#1e293b99,#0f172a66);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.job-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(51,65,85,.5)}.job-summary-header h3{margin:0;font-size:18px;font-weight:600;color:#f1f5f9}.status-badge{font-size:12px;font-weight:500;padding:4px 12px;border-radius:12px;text-transform:capitalize}.status-badge.status-completed{background:#10b98126;color:#34d399}.status-badge.status-running{background:#3b82f626;color:#60a5fa}.status-badge.status-failed{background:#ef444426;color:#f87171}.status-badge.status-pending{background:#fbbf2426;color:#fbbf24}.job-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.summary-card{background:#0f172a66;border:1px solid rgba(51,65,85,.5);border-radius:8px;padding:14px}.summary-card.match-breakdown{grid-column:span 2}.summary-label{font-size:11px;font-weight:500;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.summary-value{font-size:18px;font-weight:600;color:#f1f5f9}.summary-value.high{color:#34d399}.summary-value.medium{color:#fbbf24}.summary-value.low{color:#f87171}.summary-detail{font-size:12px;color:#64748b;margin-top:4px}.match-bars{display:flex;flex-direction:column;gap:8px}.match-bar{display:flex;align-items:center;justify-content:space-between}.bar-label{font-size:12px;color:#94a3b8}.bar-value{font-size:14px;font-weight:600;min-width:30px;text-align:right}.bar-value.high{color:#34d399}.bar-value.medium{color:#fbbf24}.bar-value.low{color:#f87171}.job-timing{font-size:12px;color:#64748b;margin-top:16px;padding-top:12px;border-top:1px solid rgba(51,65,85,.5)}.timing-date{color:#475569}.results-grid{display:flex;flex-direction:column;gap:24px}.result-card{background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid #334155;border-radius:10px;padding:16px;transition:all .2s ease}.result-card:hover{border-color:#3b82f6;box-shadow:0 4px 16px #3b82f626}.result-overlay-image{margin-bottom:12px;border-radius:8px;overflow:hidden;background:#0f172a;border:1px solid #334155}.result-overlay-image img{width:100%;height:auto;display:block;cursor:pointer;transition:transform .2s ease}.result-overlay-image img:hover{transform:scale(1.02)}.result-card-wide{background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid #334155;border-radius:12px;padding:20px;transition:all .2s ease}.result-card-wide:hover{border-color:#3b82f6;box-shadow:0 4px 20px #3b82f626}.result-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #334155}.result-title{font-size:14px;font-weight:600;color:#f1f5f9}.result-scores-inline{display:flex;gap:8px}.score-badge{padding:4px 12px;border-radius:16px;font-size:13px;font-weight:600}.score-badge.high{background:#10b98133;color:#34d399}.score-badge.medium{background:#fbbf2433;color:#fbbf24}.score-badge.low{background:#ef444433;color:#f87171}.result-images-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px}.result-image-panel{display:flex;flex-direction:column;gap:8px}.image-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.result-image-panel:first-child .image-label{color:#60a5fa}.result-image-panel:nth-child(2) .image-label{color:#34d399}.diff-panel .image-label{color:#f59e0b}.image-container{background:#0f172a;border:1px solid #334155;border-radius:8px;overflow:hidden;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}.image-container img{width:100%;height:100%;object-fit:contain;cursor:pointer;transition:transform .2s ease}.image-container img:hover{transform:scale(1.02)}.image-filename{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-diff{color:#64748b;font-size:13px;padding:20px;text-align:center}.diff-legend{display:flex;gap:12px;font-size:11px}.legend-item{display:flex;align-items:center;gap:4px}.legend-item.added{color:#f87171}.legend-item.added:before{content:"";width:10px;height:10px;background:#ef4444;border-radius:2px}.legend-item.removed{color:#34d399}.legend-item.removed:before{content:"";width:10px;height:10px;background:#22c55e;border-radius:2px}.result-scores-detail{display:flex;gap:24px;padding-top:12px;border-top:1px solid #334155}.score-item{display:flex;align-items:center;gap:8px}.score-item .score-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.score-item .score-value{font-size:14px;font-weight:600}.result-scores{display:flex;gap:12px}.score{flex:1;text-align:center;padding:12px 8px;background:#0f172a80;border-radius:8px}.score-label{display:block;font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.score-value{font-size:20px;font-weight:700;color:#f1f5f9}.score-value.high{color:#34d399}.score-value.medium{color:#fbbf24}.score-value.low{color:#f87171}.post-correlation-actions{margin-top:24px;padding:20px;background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid #334155;border-radius:10px}.post-correlation-actions h4{margin:0 0 16px;font-size:14px;font-weight:600;color:#f1f5f9}.revision-assign-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.revision-assign-row select,.revision-assign-row input[type=text]{padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;transition:all .2s ease}.revision-assign-row select{min-width:200px}.revision-assign-row input[type=text]{flex:1;min-width:150px}.revision-assign-row select:focus,.revision-assign-row input[type=text]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.btn-secondary{padding:10px 18px;background:#334155;border:1px solid #475569;border-radius:8px;color:#e2e8f0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.search-bar{margin-bottom:16px}.search-input-wrapper{position:relative}.search-input-wrapper input{width:100%;padding:12px 14px 12px 42px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;transition:all .2s ease}.search-input-wrapper input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.search-input-wrapper input::placeholder{color:#64748b}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#64748b;font-size:14px;pointer-events:none}.many-to-many-mode .selection-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.many-to-many-mode .search-bar.compact{margin-bottom:0}.many-to-many-mode .search-bar.compact input{padding:10px 14px 10px 38px;font-size:13px}.column-filters{display:flex;gap:8px;margin-bottom:12px}.column-filters .search-bar.compact{flex:1;margin-bottom:0}.folder-filter{flex-shrink:0;width:140px;padding:8px 12px;border:1px solid #334155;border-radius:8px;background:#1e293b;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .2s ease}.folder-filter:hover{border-color:#475569}.folder-filter:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.source-column .folder-filter:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.target-column .folder-filter:focus{border-color:#10b981;box-shadow:0 0 0 3px #10b98126}.count-badge{display:inline-block;padding:2px 8px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:12px;font-size:12px;font-weight:600;margin-left:8px}.selection-column.source-column h3{color:#60a5fa}.selection-column.source-column .count-badge{background:linear-gradient(135deg,#3b82f6,#2563eb)}.selection-column.target-column h3{color:#34d399}.selection-column.target-column .count-badge{background:linear-gradient(135deg,#10b981,#059669)}.selected-preview{margin-top:12px;padding:12px;border-radius:8px;border:1px solid #334155;background:#0f172a99}.selected-preview.source-preview{border-color:#3b82f64d;background:#3b82f60d}.selected-preview.target-preview{border-color:#10b9814d;background:#10b9810d}.selected-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #334155}.selected-preview-header span{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.selected-preview-header .clear-btn{padding:4px 10px;border:none;background:#ef444426;color:#f87171;font-size:11px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .2s ease}.selected-preview-header .clear-btn:hover{background:#ef444440}.selected-preview-list{display:flex;flex-direction:column;gap:4px;max-height:140px;overflow-y:auto}.selected-preview-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#1e293b80;border-radius:4px;font-size:12px}.source-preview .selected-preview-item{border-left:2px solid #3b82f6}.target-preview .selected-preview-item{border-left:2px solid #10b981}.selected-preview-item .remove-btn{width:18px;height:18px;padding:0;border:none;background:#ef444433;color:#f87171;font-size:14px;line-height:1;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}.selected-preview-item .remove-btn:hover{background:#ef444466}.selected-preview-item .selected-name{color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-preview-more{padding:6px 8px;text-align:center;font-size:11px;color:#64748b;font-style:italic}.correlation-matrix-container{overflow-x:auto;margin-top:16px;border:1px solid #334155;border-radius:8px;background:#0f172a80}.correlation-matrix{width:100%;border-collapse:collapse;font-size:13px}.correlation-matrix th,.correlation-matrix td{padding:10px 12px;text-align:center;border:1px solid #334155}.matrix-corner{background:linear-gradient(180deg,#1e293b,#0f172a);color:#94a3b8;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;position:sticky;left:0;z-index:2;min-width:150px}.matrix-header{background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;font-size:11px;font-weight:600;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.matrix-row-header{background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;font-size:12px;font-weight:500;text-align:left!important;position:sticky;left:0;z-index:1;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matrix-cell{min-width:80px;cursor:pointer;transition:all .2s ease;position:relative}.matrix-cell.has-data:hover{transform:scale(1.05);z-index:1;box-shadow:0 2px 8px #0000004d}.matrix-cell.no-data{background:#1e293b4d;cursor:default}.matrix-cell.expanded{z-index:10}.cell-score{font-weight:700;font-size:14px;color:#f1f5f9}.no-data-marker{color:#475569;font-size:16px}.cell-details{position:absolute;top:100%;left:50%;transform:translate(-50%);background:#1e293b;border:1px solid #475569;border-radius:8px;padding:12px;z-index:100;min-width:140px;box-shadow:0 4px 16px #0006;text-align:left;font-size:12px;color:#e2e8f0}.cell-details div{padding:4px 0;border-bottom:1px solid #334155}.cell-details div:last-child{border-bottom:none}.matrix-help{color:#64748b;font-size:13px;margin:0 0 8px}.folder-multi-select{display:flex;flex-direction:column;gap:8px;flex:1}.folder-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;align-items:center}.folder-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:16px;font-size:12px;color:#60a5fa}.folder-chip.all-folders{background:#94a3b81a;border-color:#94a3b833;color:#94a3b8}.chip-remove{width:16px;height:16px;padding:0;border:none;background:#ef444433;color:#f87171;font-size:12px;line-height:1;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.chip-remove:hover{background:#ef444466}.folder-checkboxes{display:flex;flex-wrap:wrap;gap:4px;padding:8px;background:#0f172a80;border:1px solid #334155;border-radius:8px;max-height:120px;overflow-y:auto}.folder-checkbox{display:flex;align-items:center;gap:6px;padding:4px 8px;background:#1e293b80;border-radius:4px;font-size:11px;color:#e2e8f0;cursor:pointer;transition:all .15s ease;white-space:nowrap}.folder-checkbox:hover{background:#3b82f61a}.folder-checkbox input{width:14px;height:14px;accent-color:#3b82f6;cursor:pointer}.target-column .folder-chip{background:#10b98126;border-color:#10b9814d;color:#34d399}.target-column .folder-checkbox input{accent-color:#10b981}.target-column .folder-checkbox:hover{background:#10b9811a}.revision-selector-row{display:flex;gap:24px;margin-top:20px;padding:16px;background:#1e293b66;border:1px solid #334155;border-radius:10px}.revision-selector{flex:1;display:flex;align-items:center;gap:10px}.revision-selector label{font-size:13px;font-weight:600;color:#94a3b8;white-space:nowrap}.revision-selector select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;min-width:140px;cursor:pointer;transition:all .2s ease}.custom-revision-input{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;width:100px;transition:all .2s ease}.custom-revision-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.custom-revision-input::placeholder{color:#64748b}.column-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.column-filters .search-bar.compact{margin-bottom:0}.revision-analysis-panel{display:flex;flex-direction:column;height:100%;background:linear-gradient(180deg,#0f172a,#020617);color:#f1f5f9}.revision-analysis-header{padding:24px 32px;border-bottom:1px solid #334155}.revision-analysis-header h1{margin:0;font-size:1.5rem;font-weight:600;color:#f1f5f9}.revision-analysis-header .subtitle{margin:8px 0 0;font-size:14px;color:#94a3b8}.revision-analysis-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:80px 40px;color:#64748b;background:linear-gradient(180deg,#0f172a4d,#02061733);border-radius:16px;border:1px dashed #334155;margin:20px auto;max-width:500px}.revision-analysis-empty h2{margin:0 0 12px;font-size:20px;font-weight:600;color:#e2e8f0}.revision-analysis-empty p{font-size:14px;max-width:320px;margin:0 auto;line-height:1.7;color:#94a3b8}.revision-analysis-tabs{display:flex;gap:4px;padding:0 32px;border-bottom:1px solid #334155;background:linear-gradient(180deg,#1e293b,#0f172a)}.revision-analysis-tabs .tab{padding:10px 24px;background:transparent;border:none;border-radius:8px 8px 0 0;border-bottom:2px solid transparent;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;position:relative}.revision-analysis-tabs .tab:hover{color:#94a3b8;background:#3b82f60d}.revision-analysis-tabs .tab.active{color:#60a5fa;background:#3b82f61a}.revision-analysis-tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:#3b82f6;border-radius:2px 2px 0 0}.revision-analysis-content{flex:1;overflow:auto;padding:24px 32px}.compare-tab{display:flex;flex-direction:column;gap:24px}.revision-selectors{display:flex;align-items:flex-end;gap:16px;padding:20px;background:linear-gradient(180deg,#1e293b80,#0f172a80);border-radius:12px;border:1px solid #334155}.revision-selector{display:flex;flex-direction:column;gap:8px;flex:1}.revision-selector label{font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.revision-selector select{padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;cursor:pointer;transition:all .2s ease}.revision-selector select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.revision-arrow{font-size:24px;color:#64748b;padding-bottom:10px}.btn-compare{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f64d}.btn-compare:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.btn-compare:disabled{background:#475569;cursor:not-allowed;transform:none;box-shadow:none}.error-message{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;font-weight:500;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.change-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.change-card{display:flex;flex-direction:column;align-items:center;padding:20px;background:linear-gradient(180deg,#1e293b80,#0f172a80);border-radius:12px;border:1px solid #334155;transition:all .2s ease}.change-card:hover{border-color:#475569}.change-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:24px;font-weight:600;margin-bottom:8px}.change-card.added .change-icon{background:#34d39933;color:#34d399}.change-card.removed .change-icon{background:#f8717133;color:#f87171}.change-card.modified .change-icon{background:#fbbf2433;color:#fbbf24}.change-card.unchanged .change-icon{background:#64748b33;color:#64748b}.change-label{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.change-count{font-size:32px;font-weight:700;color:#f1f5f9;margin-top:4px}.comparison-results{background:linear-gradient(180deg,#1e293b80,#0f172a80);border-radius:12px;border:1px solid #334155;overflow:hidden}.comparison-results h3{margin:0;padding:16px 20px;font-size:14px;font-weight:600;color:#f1f5f9;border-bottom:1px solid #334155;background:linear-gradient(180deg,#1e293b,#0f172a)}.comparison-list{max-height:400px;overflow-y:auto}.comparison-list::-webkit-scrollbar{width:6px}.comparison-list::-webkit-scrollbar-track{background:#1e293b;border-radius:3px}.comparison-list::-webkit-scrollbar-thumb{background:#475569;border-radius:3px}.comparison-list::-webkit-scrollbar-thumb:hover{background:#64748b}.comparison-item{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid rgba(51,65,85,.5);cursor:pointer;transition:all .15s ease}.comparison-item:last-child{border-bottom:none}.comparison-item:hover{background:#3b82f61a}.comparison-item.selected{background:#3b82f633;border-left:3px solid #3b82f6;padding-left:17px}.comparison-name{font-size:14px;color:#e2e8f0}.comparison-stats{display:flex;gap:12px}.comparison-stats .stat{font-size:13px;font-weight:600;padding:2px 8px;border-radius:4px}.comparison-stats .stat.added{background:#34d39933;color:#34d399}.comparison-stats .stat.removed{background:#f8717133;color:#f87171}.comparison-stats .stat.modified{background:#fbbf2433;color:#fbbf24}.no-results{text-align:center;padding:40px;color:#64748b}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 40px;color:#64748b;background:linear-gradient(180deg,#0f172a4d,#02061733);border-radius:16px;border:1px dashed #334155}.placeholder-content h3{margin:0 0 12px;font-size:20px;font-weight:600;color:#e2e8f0}.placeholder-content p{margin:0 0 8px;font-size:14px;max-width:320px;line-height:1.7;color:#94a3b8}.placeholder-content .coming-soon{margin-top:16px;font-style:italic;color:#64748b}.report-generation-panel{padding:24px;height:100%;display:flex;flex-direction:column;overflow:hidden}.panel-header{margin-bottom:20px;flex-shrink:0}.panel-header h2{margin:0 0 8px;color:#f1f5f9;font-size:24px;font-weight:600}.panel-subtitle{margin:0;color:#94a3b8;font-size:14px}.panel-tabs{display:flex;gap:4px;margin-bottom:20px;background:#0f172a;padding:4px;border-radius:10px;width:fit-content;flex-shrink:0}.panel-tabs button{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;background:transparent;color:#94a3b8}.panel-tabs button:hover{color:#f1f5f9;background:#ffffff0d}.panel-tabs button.active{background:#3b82f6;color:#fff;box-shadow:0 2px 8px #3b82f64d}.panel-content{flex:1;display:flex;flex-direction:column;gap:16px;min-height:0;overflow:hidden}.filters-section{display:flex;gap:16px;align-items:center;flex-wrap:wrap;flex-shrink:0;padding-bottom:16px;border-bottom:1px solid #334155}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{color:#94a3b8;font-size:13px;white-space:nowrap}.filter-group select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;cursor:pointer;min-width:160px}.filter-group select:focus{outline:none;border-color:#3b82f6}.main-layout{display:grid;grid-template-columns:1fr 340px;gap:20px;flex:1;min-height:0;overflow:hidden}.jobs-section{background:#1e293b;border-radius:12px;padding:20px;border:1px solid #334155;display:flex;flex-direction:column;min-height:0;overflow:hidden}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-shrink:0}.section-header h3{margin:0;color:#f1f5f9;font-size:16px;font-weight:600}.selection-count{padding:4px 12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:20px;color:#60a5fa;font-size:12px;font-weight:500}.jobs-table-wrapper{flex:1;overflow:auto;border-radius:8px;border:1px solid #334155;min-height:200px}.jobs-table{width:100%;border-collapse:collapse;font-size:13px}.jobs-table thead{position:sticky;top:0;z-index:10}.jobs-table th{background:#0f172a;color:#94a3b8;font-weight:600;text-align:left;padding:12px;border-bottom:1px solid #334155;white-space:nowrap}.jobs-table th.col-checkbox,.jobs-table td.col-checkbox{width:40px;text-align:center}.jobs-table td{padding:12px;color:#f1f5f9;border-bottom:1px solid #1e293b}.jobs-table tbody tr{cursor:pointer;transition:background .15s ease}.jobs-table tbody tr:hover{background:#3b82f60d}.jobs-table tbody tr.selected{background:#3b82f61a}.jobs-table input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6;cursor:pointer}.job-name{font-weight:500;color:#f1f5f9}.status-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-badge.completed{background:#22c55e26;color:#4ade80}.status-badge.running{background:#3b82f626;color:#60a5fa}.status-badge.failed{background:#ef444426;color:#f87171}.loading-state,.empty-state{padding:40px;text-align:center;color:#64748b;flex:1;display:flex;align-items:center;justify-content:center}.selection-summary{background:#0f172a;border-radius:8px;padding:16px;margin-top:16px;flex-shrink:0}.selection-summary h4{margin:0 0 12px;color:#94a3b8;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.summary-stats{display:flex;gap:24px;flex-wrap:wrap}.stat{display:flex;flex-direction:column;gap:2px}.stat-value{color:#f1f5f9;font-size:20px;font-weight:600}.stat-label{color:#64748b;font-size:11px;text-transform:uppercase}.right-panel{display:flex;flex-direction:column;gap:16px;overflow-y:auto}.export-options-section{background:#1e293b;border-radius:12px;padding:20px;border:1px solid #334155}.export-options-section h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:600}.option-group{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}.option-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.option-header{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:10px}.option-header input[type=checkbox]{width:18px;height:18px;accent-color:#3b82f6;cursor:pointer}.option-header span{color:#f1f5f9;font-size:14px;font-weight:500}.sub-options{margin-left:28px;display:flex;flex-direction:column;gap:8px}.sub-options label{display:flex;align-items:center;gap:8px;color:#94a3b8;font-size:13px;cursor:pointer}.sub-options label:hover{color:#f1f5f9}.sub-options input[type=checkbox]{width:14px;height:14px;accent-color:#3b82f6;cursor:pointer}.format-select{display:flex;align-items:center;gap:8px;margin-bottom:10px}.format-select label{color:#94a3b8;font-size:13px}.format-select select{padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;cursor:pointer}.format-select select:focus{outline:none;border-color:#3b82f6}.layer-options{display:flex;flex-direction:column;gap:8px}.layer-options>label:first-child{color:#94a3b8;font-size:12px;margin-bottom:4px}.error-message{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px}.error-message button{background:transparent;border:none;color:#f87171;cursor:pointer;font-size:12px;text-decoration:underline}.progress-section{padding:16px;background:#0f172a;border-radius:8px;border:1px solid #334155}.progress-bar{height:8px;background:#1e293b;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;transition:width .3s ease}.progress-text{color:#94a3b8;font-size:12px}.action-section{flex-shrink:0}.generate-btn{width:100%;padding:14px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.generate-btn:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.completed-reports{flex:1;display:flex;flex-direction:column;min-height:0}.completed-reports .section-header{margin-bottom:16px}.reports-table-wrapper{flex:1;overflow:auto;border-radius:8px;border:1px solid #334155;background:#1e293b}.reports-table{width:100%;border-collapse:collapse;font-size:13px}.reports-table thead{position:sticky;top:0;z-index:10}.reports-table th{background:#0f172a;color:#94a3b8;font-weight:600;text-align:left;padding:12px;border-bottom:1px solid #334155;white-space:nowrap}.reports-table td{padding:12px;color:#f1f5f9;border-bottom:1px solid #1e293b}.reports-table tr:hover{background:#3b82f60d}.download-btn{padding:6px 14px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.download-btn:hover{background:#2563eb}.report-date{color:#64748b;font-size:12px}.report-size{color:#94a3b8;font-size:12px}.report-generation-panel .jobs-list{color:#94a3b8;font-size:12px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1200px){.main-layout{grid-template-columns:1fr}.right-panel{order:-1}}.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))}.dagflow-dashboard{display:flex;flex-direction:column;height:100%;background-color:#f9fafb}.dagflow-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background-color:#fff;border-bottom:1px solid #e5e7eb}.dagflow-header__title h1{margin:0;font-size:20px;font-weight:600;color:#1f2937}.dagflow-header__subtitle{margin:4px 0 0;font-size:13px;color:#6b7280}.dagflow-header__controls{display:flex;align-items:center;gap:12px}.dagflow-refresh-btn{width:36px;height:36px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;font-size:18px;color:#6b7280;cursor:pointer;transition:all .15s ease}.dagflow-refresh-btn:hover{background-color:#f3f4f6;color:#374151}.dagflow-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.dagflow-content{flex:1;position:relative;overflow:hidden}.dagflow-graph-container{width:100%;height:100%}.dagflow-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#6b7280}.dagflow-spinner{width:40px;height:40px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:dagflow-spin .8s linear infinite}@keyframes dagflow-spin{to{transform:rotate(360deg)}}.dagflow-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:#ef4444}.dagflow-error__icon{font-size:48px}.dagflow-error__message{font-size:14px;color:#6b7280}.dagflow-error__retry{padding:8px 16px;background-color:#ef4444;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.dagflow-error__retry:hover{background-color:#dc2626}.dagflow-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:48px}.dagflow-empty__icon{font-size:64px;color:#d1d5db;margin-bottom:16px}.dagflow-empty h2{margin:0 0 8px;font-size:18px;font-weight:600;color:#374151}.dagflow-empty p{margin:0;font-size:14px;color:#6b7280;max-width:400px}.dagflow-empty__hint{margin-top:12px;font-size:13px;color:#9ca3af}.dagflow-workflow-panel{background-color:#fff;border-bottom:1px solid #e5e7eb;padding:20px 24px}.dagflow-workflow{display:flex;flex-direction:column;gap:16px;max-width:700px}.dagflow-step{display:flex;gap:16px;padding:16px;border-radius:8px;background-color:#f9fafb;border:1px solid #e5e7eb}.dagflow-step--complete{background-color:#f0fdf4;border-color:#86efac}.dagflow-step--active{background-color:#eff6ff;border-color:#93c5fd}.dagflow-step--disabled{opacity:.6}.dagflow-step__indicator{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex-shrink:0;background-color:#e5e7eb;color:#6b7280}.dagflow-step--complete .dagflow-step__indicator{background-color:#22c55e;color:#fff}.dagflow-step--active .dagflow-step__indicator{background-color:#3b82f6;color:#fff}.dagflow-step__content{flex:1}.dagflow-step__content h3{margin:0 0 4px;font-size:15px;font-weight:600;color:#1f2937}.dagflow-step__status{margin:0;font-size:13px}.dagflow-step__status--success{color:#16a34a}.dagflow-step__status--warning{color:#d97706}.dagflow-step__status--disabled{color:#9ca3af}.dagflow-step__types{display:block;margin-top:4px;font-size:12px;color:#6b7280}.dagflow-step__description{margin:0 0 12px;font-size:13px;color:#6b7280}.dagflow-step__action{margin-top:8px}.dagflow-build-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.dagflow-build-control{display:flex;flex-direction:column;gap:4px}.dagflow-build-control span{font-size:12px;color:#6b7280}.dagflow-build-control input{width:120px;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.dagflow-build-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.dagflow-build-btn:hover{background-color:#2563eb}.dagflow-build-btn:disabled{background-color:#93c5fd;cursor:not-allowed}.dagflow-build-btn__spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:dagflow-spin .8s linear infinite}.dagflow-build-result{margin-top:12px;padding:10px 14px;border-radius:6px;font-size:13px}.dagflow-build-result--success{background-color:#f0fdf4;color:#16a34a;border:1px solid #86efac}.dagflow-build-result--error{background-color:#fef2f2;color:#dc2626;border:1px solid #fca5a5}.dagflow-cancel-btn{padding:10px 16px;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#374151;cursor:pointer;transition:all .15s ease}.dagflow-cancel-btn:hover{background-color:#e5e7eb;border-color:#9ca3af}.dagflow-job-progress{margin-top:16px;padding:12px 16px;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px}.dagflow-job-progress__bar{height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.dagflow-job-progress__fill{height:100%;background-color:#3b82f6;border-radius:4px;transition:width .3s ease}.dagflow-job-progress__info{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.dagflow-job-progress__step{font-size:13px;color:#6b7280}.dagflow-job-progress__percent{font-size:13px;font-weight:600;color:#3b82f6}.dagflow-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:48px;color:#6b7280}.dagflow-preview h3{margin:0 0 8px;font-size:16px;color:#374151}.dagflow-preview p{margin:0;font-size:14px}.dagflow-preview__hint{margin-top:16px;padding:12px 16px;background-color:#eff6ff;border-radius:6px;font-size:13px;color:#3b82f6}.dagflow-graph-container--with-panel{height:calc(100% - 200px)}.dagflow-rebuild-btn{margin-left:auto;padding:6px 12px;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:12px;color:#374151;cursor:pointer;transition:all .15s ease}.dagflow-rebuild-btn:hover{background-color:#e5e7eb}.dagflow-rebuild-btn:disabled{opacity:.5;cursor:not-allowed}.dagflow-footer{padding:12px 24px;background-color:#fff;border-top:1px solid #e5e7eb}.dagflow-stats{display:flex;gap:32px}.dagflow-stat{display:flex;align-items:baseline;gap:6px}.dagflow-stat__value{font-size:20px;font-weight:600;color:#1f2937}.dagflow-stat__label{font-size:12px;color:#6b7280}.dagflow-selector{display:flex;align-items:center}.dagflow-graph-container .react-flow{background-color:#fafafa}.dagflow-graph-container .react-flow__attribution{display:none}.dagflow-graph-container .react-flow__panel.top.right{top:16px;right:16px}.dagflow-graph-container .react-flow__controls{bottom:16px;left:16px}.dagflow-graph-container .react-flow__minimap{bottom:16px;right:16px}.storage-settings{max-width:1400px;margin:0 auto;padding:24px}.settings-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.settings-description{color:#94a3b8;font-size:14px;margin:0}.settings-docker-note{display:flex;align-items:center;gap:10px;margin:12px 0 0;padding:10px 14px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;color:#93c5fd;font-size:13px}.docker-badge{display:inline-flex;align-items:center;padding:3px 8px;background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:4px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.status-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.status-card h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:600}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.status-item{display:flex;flex-direction:column;gap:4px}.status-label{color:#94a3b8;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.status-value{color:#f1f5f9;font-size:14px;font-weight:500}.status-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;text-transform:capitalize}.status-badge.healthy{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.status-badge.unhealthy{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.status-badge.unknown{background:#475569;color:#e2e8f0}.status-badge.fallback{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.encryption-info{display:flex;gap:12px;padding:12px 16px;background:#4755694d;border:1px solid rgba(148,163,184,.2);border-radius:8px;margin-bottom:24px}.encryption-info .info-icon{font-size:18px;line-height:1.4;flex-shrink:0}.encryption-info .info-content{display:flex;flex-direction:column;gap:4px}.encryption-info .info-content strong{color:#e2e8f0;font-size:13px}.encryption-info .info-content p{margin:0;color:#94a3b8;font-size:12px;line-height:1.5}.encryption-info .info-content code{background:#94a3b833;padding:1px 5px;border-radius:3px;font-family:SF Mono,Menlo,monospace;font-size:11px;color:#cbd5e1}.config-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-bottom:24px}.config-section h3{margin:0 0 16px;color:#f1f5f9;font-size:16px;font-weight:600}.storage-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.storage-type-card{background:#0f172a80;border:2px solid #334155;border-radius:10px;padding:16px;cursor:pointer;transition:all .2s ease;position:relative}.storage-type-card:hover{border-color:#3b82f6;background:#3b82f61a}.storage-type-card.selected{border-color:#3b82f6;background:#3b82f626;box-shadow:0 0 0 2px #3b82f633}.storage-type-card.disabled{opacity:.5;cursor:not-allowed}.storage-type-card.disabled:hover{border-color:#334155;background:#0f172a80}.storage-type-name{color:#f1f5f9;font-weight:600;font-size:14px;margin-bottom:4px}.storage-type-desc{color:#94a3b8;font-size:12px;line-height:1.5}.coming-soon{position:absolute;top:8px;right:8px;background:#475569;color:#e2e8f0;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase}.config-form{max-width:600px}.config-fields{display:flex;flex-direction:column;gap:20px}.form-label{color:#94a3b8;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.form-label .required{color:#ef4444;margin-left:4px}.form-input{padding:12px 16px;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:14px;transition:all .2s ease}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.form-textarea{min-height:100px;resize:vertical;font-family:SF Mono,Menlo,monospace;font-size:12px}.form-help{color:#64748b;font-size:12px;margin:0}.test-result{background:linear-gradient(180deg,#1e293b,#0f172a);border-radius:12px;padding:20px;margin-bottom:24px}.test-result.success{border:1px solid rgba(16,185,129,.3)}.test-result.failed{border:1px solid rgba(239,68,68,.3)}.test-result h4{margin:0 0 12px;color:#f1f5f9;font-size:14px}.test-result .error-text{color:#f87171;font-size:13px;margin:0 0 12px}.health-details{background:#0f172a80;border-radius:8px;padding:12px;margin:0;color:#94a3b8;font-size:12px;font-family:SF Mono,Menlo,monospace;overflow-x:auto}.config-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:8px}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #3b82f64d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.btn-secondary{padding:12px 24px;background:#334155;border:none;border-radius:8px;color:#e2e8f0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#475569}.warning-banner{display:flex;gap:16px;padding:20px;background:linear-gradient(180deg,#fbbf241f,#f59e0b14);border:1px solid rgba(251,191,36,.4);border-radius:12px;margin-bottom:24px}.warning-icon{font-size:24px;line-height:1;flex-shrink:0}.warning-content{display:flex;flex-direction:column;gap:8px}.warning-content strong{color:#fbbf24;font-size:15px}.warning-content p{margin:0;color:#fcd34d;font-size:13px;line-height:1.6}.warning-content p strong{color:#fef08a;font-size:inherit}.warning-tip{margin-top:4px!important;padding:10px 12px;background:#fbbf241a;border-radius:6px;border-left:3px solid #fbbf24}.warning-tip code{background:#fbbf2433;padding:2px 6px;border-radius:4px;font-family:SF Mono,Menlo,monospace;font-size:12px;color:#fef08a}.success-banner{padding:12px 18px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:8px;color:#10b981;font-size:14px;font-weight:500;margin-bottom:16px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px}.model-config-settings{padding:24px;max-width:1400px;margin:0 auto}.settings-header h2{margin:0 0 8px;color:#f1f5f9;font-size:24px;font-weight:600}.settings-description{margin:0 0 24px;color:#94a3b8;font-size:14px;line-height:1.5}.config-header{margin-bottom:24px}.header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.header-top h2{margin:0;color:#f1f5f9;font-size:20px;font-weight:600}.header-actions{display:flex;gap:10px}.header-actions .btn-primary,.header-actions .btn-secondary{padding:10px 18px;font-size:14px}.tab-navigation{display:flex;gap:4px;border-bottom:1px solid #334155;padding-bottom:0;margin-bottom:20px}.tab-button{display:flex;align-items:center;gap:8px;padding:12px 24px;background:transparent;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:-1px}.tab-button:hover{color:#cbd5e1}.tab-button.active{color:#3b82f6;border-bottom-color:#3b82f6}.tab-icon{font-size:16px}.tab-label{white-space:nowrap}.tab-content{margin-top:0}.tab-panel{animation:fadeIn .15s ease}.extraction-tab{display:flex;flex-direction:column;gap:20px}.extraction-top-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}.extraction-left-column{display:flex;flex-direction:column;gap:2px}.classification-section,.split-tag-section{width:100%}@media (max-width: 1024px){.extraction-top-row{grid-template-columns:1fr}.extraction-left-column{gap:20px}.extraction-left-column>.classification-section{border-bottom:1px solid #334155;border-bottom-left-radius:12px;border-bottom-right-radius:12px;margin-bottom:20px}.extraction-left-column>.split-tag-section{border-top:1px solid #334155;border-top-left-radius:12px;border-top-right-radius:12px;margin-bottom:20px}}.shapes-tab{display:flex;flex-direction:column;gap:20px}.shapes-sections-row{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}@media (max-width: 1024px){.shapes-sections-row{grid-template-columns:1fr}}.loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px}.spinner{width:36px;height:36px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.error-banner{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;margin-bottom:16px}.success-banner{padding:12px 18px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:8px;color:#10b981;font-size:14px;margin-bottom:16px}.config-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:24px;margin-bottom:20px;transition:border-color .2s ease;height:fit-content}.config-section:hover{border-color:#475569}.config-section .settings-grid .form-group{background:#0f172a80;border:1px solid rgba(51,65,85,.5);border-radius:10px;padding:16px;margin-bottom:0;transition:border-color .2s ease}.config-section .settings-grid .form-group:hover{border-color:#3b82f666}.config-section h3{margin:0 0 8px;color:#f1f5f9;font-size:16px;font-weight:600}.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-header-row h3{margin:0}.section-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:20px;color:#60a5fa}.section-description{margin:0 0 20px;color:#94a3b8;font-size:13px;line-height:1.5}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 640px){.settings-grid{grid-template-columns:1fr}}.model-config-settings .toggle-group{margin-bottom:20px}.model-config-settings .toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer}.model-config-settings .toggle-slider{display:none!important}.model-config-settings .toggle-label input[type=checkbox]{position:relative;width:48px;height:24px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#475569;border-radius:12px;cursor:pointer;transition:background .2s ease;flex-shrink:0}.model-config-settings .toggle-label input[type=checkbox]:checked{background:#10b981}.model-config-settings .toggle-label input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease}.model-config-settings .toggle-label input[type=checkbox]:checked:before{transform:translate(24px)}.model-config-settings .toggle-text{color:#e2e8f0;font-size:14px;font-weight:500}.model-config-settings .toggle-help{margin:8px 0 0 60px;color:#64748b;font-size:12px;line-height:1.5}.form-label{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:#e2e8f0;font-size:14px;font-weight:500}.label-unit{font-size:11px;font-weight:400;color:#64748b;background:#47556966;padding:2px 6px;border-radius:4px}.input-with-value{display:flex;align-items:center;gap:16px}.input-with-value .form-slider{flex:1}.form-input{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;transition:border-color .2s ease}.form-input::placeholder{color:#64748b}.form-select{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;cursor:pointer;transition:border-color .2s ease}.form-select:focus{outline:none;border-color:#3b82f6}.form-select option{background:#1e293b;color:#f1f5f9}.form-help{margin:8px 0 0;color:#64748b;font-size:12px;line-height:1.5}.slider-group{display:flex;align-items:center;gap:16px}.form-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#334155;border-radius:3px;cursor:pointer}.form-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:background .2s ease}.form-slider::-webkit-slider-thumb:hover{background:#60a5fa}.slider-value{min-width:50px;padding:4px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:13px;font-weight:500;text-align:center}.info-box{display:flex;gap:12px;padding:14px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:8px;margin-top:16px}.info-icon{font-size:18px;flex-shrink:0}.info-content strong{color:#60a5fa;font-size:13px}.info-content p{margin:6px 0 0;color:#94a3b8;font-size:12px;line-height:1.5}.config-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:20px;border-top:1px solid #334155;margin-top:20px}.btn-primary{padding:10px 20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:10px 20px;background:#475569;border:none;border-radius:8px;color:#e2e8f0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#64748b}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.shape-thresholds-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:20px}.shape-threshold-card{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:16px;transition:border-color .2s ease}.shape-threshold-card:hover{border-color:#3b82f6}.shape-threshold-header{display:flex;align-items:center;gap:14px;margin-bottom:14px}.shape-icon-wrapper{flex-shrink:0;width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border:1px solid rgba(59,130,246,.25);border-radius:8px}.shape-icon-wrapper svg{width:44px;height:44px}.shape-info{display:flex;flex-direction:column;gap:4px}.shape-name{color:#f1f5f9;font-size:15px;font-weight:600}.shape-count{color:#64748b;font-size:12px}.shape-threshold-slider{display:flex;align-items:center;gap:12px;margin-bottom:10px}.shape-threshold-slider .form-slider{flex:1}.shape-threshold-slider .slider-value{min-width:48px;font-size:12px}.shape-description{margin:0;color:#64748b;font-size:11px;line-height:1.5}.shape-thresholds-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #334155}.tag-dictionary-settings{padding:24px 32px;max-width:1400px;margin:0 auto}.tag-dictionary-settings .settings-header{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.tag-dictionary-settings .settings-header h2{margin:0 0 8px;color:#f1f5f9;font-size:28px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;gap:12px}.tag-dictionary-settings .settings-header h2:before{content:"";display:inline-block;width:4px;height:28px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:2px}.tag-dictionary-settings .settings-description{margin:0 0 16px;color:#94a3b8;font-size:15px;line-height:1.6}.tag-dictionary-settings .settings-description strong{color:#60a5fa}.rules-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid #334155;padding-bottom:0}.rules-tab{padding:12px 24px;background:transparent;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-bottom:-1px}.rules-tab:hover{color:#e2e8f0;background:#ffffff08}.rules-tab--active{color:#3b82f6;border-bottom-color:#3b82f6}.rules-tab--active:hover{color:#3b82f6}.regex-tab-content .regex-pattern-settings{padding:0;max-width:none}.regex-tab-content .regex-pattern-settings .settings-header{display:none}.process-overview{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px 20px;margin-bottom:20px}.process-overview h3{margin:0 0 12px;color:#f1f5f9;font-size:15px;font-weight:600}.process-overview p{margin:0 0 12px;color:#94a3b8;font-size:13px;line-height:1.5}.process-overview ol{margin:0 0 12px;padding-left:20px;color:#94a3b8;font-size:12px;line-height:1.8}.process-overview ol li{margin-bottom:4px}.process-overview ol strong{color:#e2e8f0}.process-overview .process-note{margin:0;padding:10px 12px;background:#eab3081a;border:1px solid rgba(234,179,8,.2);border-radius:6px;color:#fbbf24;font-size:12px}.status-badge{display:inline-block;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;margin-bottom:20px}.status-default{background:#eab30826;border:1px solid rgba(234,179,8,.3);color:#fbbf24}.status-custom{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#10b981}.tag-dictionary-settings .loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px}.tag-dictionary-settings .spinner{width:36px;height:36px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.tag-dictionary-settings .error-banner{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;margin-bottom:16px}.tag-dictionary-settings .success-banner{padding:12px 18px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:8px;color:#10b981;font-size:14px;margin-bottom:16px}.correlation-config-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px 20px;margin-bottom:20px}.correlation-config-section h3{margin:0 0 8px;font-size:15px;font-weight:600;color:#f1f5f9}.correlation-config-section .section-description{color:#94a3b8;font-size:13px;margin:0 0 16px;line-height:1.5}.revision-sequence-editor{display:flex;flex-direction:column;gap:12px}.revision-chips{display:flex;flex-wrap:wrap;gap:8px}.revision-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:#3b82f6;color:#fff;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s}.revision-chip:hover{background:#2563eb}.revision-chip .chip-remove{background:none;border:none;color:#ffffffb3;cursor:pointer;padding:0 2px;font-size:16px;line-height:1;margin-left:2px}.revision-chip .chip-remove:hover{color:#fff}.revision-chip--selected{background:#1d4ed8;box-shadow:0 0 0 2px #60a5fa}.revision-chip .chip-check{margin-right:4px;font-size:11px}.revision-bulk-actions{display:flex;gap:8px;align-items:center}.btn-small.btn-danger{background:#dc2626}.btn-small.btn-danger:hover{background:#b91c1c}.btn-small.btn-secondary{background:#475569}.btn-small.btn-secondary:hover{background:#64748b}.add-revision{display:flex;gap:8px;align-items:center}.add-revision input{flex:1;max-width:200px;padding:8px 12px;border:1px solid #475569;border-radius:6px;background:#0f172a;color:#f1f5f9;font-size:13px}.add-revision input:focus{outline:none;border-color:#3b82f6}.add-revision input::placeholder{color:#64748b}.checkbox-label{display:flex;align-items:center;gap:8px;color:#cbd5e1;font-size:13px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6}.config-actions-inline{display:flex;gap:8px;padding-top:12px;border-top:1px solid #334155;margin-top:4px}.btn-small{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.btn-small:hover{background:#2563eb}.dictionaries-container{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.dictionary-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;overflow:hidden;transition:all .2s ease;box-shadow:0 2px 8px #0000001a}.dictionary-section:hover{border-color:#475569;box-shadow:0 4px 16px #0003}.dictionary-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;transition:background .2s ease}.dictionary-header:hover{background:#ffffff0a}.dictionary-header-left{display:flex;align-items:center;gap:10px}.expand-icon{color:#64748b;font-size:10px;width:16px}.dictionary-name{color:#f1f5f9;font-size:14px;font-weight:600}.dictionary-count{color:#64748b;font-size:13px}.dictionary-header-actions{display:flex;gap:6px}.btn-small{padding:5px 10px;background:#334155;border:1px solid #475569;border-radius:4px;color:#94a3b8;font-size:11px;cursor:pointer;transition:all .2s ease}.dictionary-content{padding:0 16px 16px;border-top:1px solid #334155}.dictionary-description{margin:12px 0 8px;color:#94a3b8;font-size:13px;line-height:1.5}.dictionary-usage{margin:0 0 16px;padding:10px 12px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:6px;color:#94a3b8;font-size:12px;line-height:1.5}.dictionary-usage strong{color:#60a5fa;font-weight:600}.priority-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:18px;padding:0 5px;background:#6366f133;border:1px solid rgba(99,102,241,.3);border-radius:4px;color:#818cf8;font-size:10px;font-weight:600;margin-right:6px}.dictionary-table-container{overflow-x:auto}.dictionary-table{width:100%;border-collapse:collapse;font-size:13px}.dictionary-table th{text-align:left;padding:10px 12px;background:#0f172a;color:#94a3b8;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155}.dictionary-table td{padding:8px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0}.dictionary-table tbody tr:hover{background:#ffffff05}.dictionary-table-list td:first-child{width:100%}.cell-code{font-family:SF Mono,Monaco,Inconsolata,monospace;color:#60a5fa;font-weight:500;white-space:nowrap}.cell-input{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:13px;transition:border-color .2s ease}.cell-input:focus{outline:none;border-color:#3b82f6}.cell-actions{white-space:nowrap;text-align:right;width:60px}.btn-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:4px;color:#64748b;cursor:pointer;font-size:16px;transition:all .2s ease}.btn-icon:hover{background:#ffffff0d}.btn-delete:hover{background:#ef444426;border-color:#ef44444d;color:#f87171}.btn-add-entry{margin-top:12px;padding:8px 14px;background:transparent;border:1px dashed #475569;border-radius:6px;color:#64748b;font-size:13px;cursor:pointer;transition:all .2s ease}.btn-add-entry:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.regex-section-wrapper{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;margin-bottom:24px;overflow:hidden}.regex-content-embedded{border-top:1px solid #334155}.regex-content-embedded .regex-pattern-settings{padding:16px;max-width:none}.regex-content-embedded .regex-pattern-settings .settings-header{display:none}.regex-content-embedded .regex-pattern-settings .status-badge{margin-bottom:16px}.regex-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;margin-bottom:24px;overflow:hidden}.regex-header{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;transition:background .2s ease}.regex-header:hover{background:#ffffff08}.section-title{color:#f1f5f9;font-size:14px;font-weight:600}.section-badge{padding:3px 8px;background:#eab30826;border:1px solid rgba(234,179,8,.3);border-radius:4px;color:#fbbf24;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.regex-content{padding:0 16px 16px;border-top:1px solid #334155}.regex-note{margin:12px 0 16px;color:#64748b;font-size:12px;line-height:1.5}.regex-pattern{padding:12px;background:#0f172a;border:1px solid #1e293b;border-radius:6px;margin-bottom:10px}.regex-pattern:last-child{margin-bottom:0}.regex-name{color:#e2e8f0;font-size:13px;font-weight:500;text-transform:capitalize;margin-bottom:4px}.regex-description{color:#64748b;font-size:12px;margin-bottom:8px}.regex-code{display:block;padding:8px 10px;background:#1e293b;border-radius:4px;color:#60a5fa;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;overflow-x:auto;white-space:nowrap;margin-bottom:6px}.regex-examples{color:#94a3b8;font-size:11px;font-style:italic}.tag-dictionary-settings .config-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:20px;border-top:1px solid #334155}.tag-dictionary-settings .btn-primary{padding:10px 20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.tag-dictionary-settings .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.tag-dictionary-settings .btn-primary:disabled{opacity:.5;cursor:not-allowed}.tag-dictionary-settings .btn-secondary{padding:10px 20px;background:#475569;border:none;border-radius:8px;color:#e2e8f0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.tag-dictionary-settings .btn-secondary:hover:not(:disabled){background:#64748b}.tag-dictionary-settings .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.tag-dictionary-settings .btn-danger{background:#ef444433;color:#f87171}.tag-dictionary-settings .btn-danger:hover:not(:disabled){background:#ef44444d}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #475569;border-radius:8px;padding:14px 18px;min-width:280px;max-width:450px;box-shadow:0 4px 20px #0006}.modal-content .modal-title{margin:0 0 6px;color:#f1f5f9;font-size:14px;font-weight:600}.modal-content .modal-message{margin:0;padding:8px 10px;background:#0f172a;border-radius:4px;color:#60a5fa;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:12px;word-break:break-all}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.modal-actions .btn-secondary{padding:6px 14px;background:#334155;border:1px solid #475569;border-radius:5px;color:#e2e8f0;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.modal-actions .btn-secondary:hover{background:#475569}.modal-actions .btn-danger{padding:6px 14px;background:#dc2626;border:1px solid #ef4444;border-radius:5px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.modal-actions .btn-danger:hover{background:#b91c1c}.modal-actions .btn-primary{padding:6px 14px;background:#2563eb;border:1px solid #3b82f6;border-radius:5px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.modal-actions .btn-primary:hover{background:#1d4ed8}.modal-input{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #475569;border-radius:5px;color:#f1f5f9;font-size:13px;font-family:SF Mono,Monaco,Inconsolata,monospace;margin-top:8px;box-sizing:border-box}.modal-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.modal-input::placeholder{color:#64748b}.table-actions{display:flex;gap:12px;margin-top:12px;align-items:center}.btn-titan{padding:10px 18px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;box-shadow:0 2px 8px #8b5cf640;position:relative;overflow:hidden}.btn-titan:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 50%);opacity:0;transition:opacity .2s}.btn-titan:hover:not(:disabled):before{opacity:1}.btn-titan:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#4f46e5);transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666}.btn-titan:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #8b5cf640}.btn-titan:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.titan-loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.titan-loading-content{background:#1e293b;padding:40px 60px;border-radius:16px;text-align:center;border:1px solid #334155;box-shadow:0 20px 40px #0006}.titan-loading-content .spinner{width:48px;height:48px;margin:0 auto 20px;border:3px solid #334155;border-top-color:#8b5cf6;border-radius:50%;animation:spin 1s linear infinite}.titan-loading-content p{margin:0;color:#f1f5f9;font-size:16px;font-weight:500}.titan-loading-content .titan-loading-sub{color:#64748b;font-size:13px;margin-top:8px;font-weight:400}.titan-job-indicator{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:12px 16px;box-shadow:0 8px 32px #0006;z-index:900;animation:slideInRight .3s ease}@keyframes slideInRight{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}.titan-job-indicator--complete{border-color:#22c55e;box-shadow:0 8px 32px #22c55e33}.titan-job-indicator--failed{border-color:#ef4444;box-shadow:0 8px 32px #ef444433}.titan-job-indicator--analyzing,.titan-job-indicator--calling_titan,.titan-job-indicator--pending{border-color:#6366f1;box-shadow:0 8px 32px #6366f133}.titan-job-indicator__content{display:flex;align-items:center;gap:12px;cursor:pointer}.titan-job-indicator__icon{width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0}.titan-job-indicator--complete .titan-job-indicator__icon{background:linear-gradient(135deg,#22c55e,#16a34a)}.titan-job-indicator--failed .titan-job-indicator__icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.titan-job-indicator--analyzing .titan-job-indicator__icon,.titan-job-indicator--calling_titan .titan-job-indicator__icon,.titan-job-indicator--pending .titan-job-indicator__icon{animation:indicatorPulse 2s infinite}@keyframes indicatorPulse{0%,to{opacity:1}50%{opacity:.6}}.titan-job-indicator__info{display:flex;flex-direction:column;gap:2px}.titan-job-indicator__title{font-size:13px;font-weight:600;color:#f1f5f9}.titan-job-indicator__detail{font-size:11px;color:#94a3b8}.titan-job-indicator__action{padding:6px 14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.titan-job-indicator--complete .titan-job-indicator__action{background:linear-gradient(135deg,#22c55e,#16a34a)}.titan-job-indicator__action:hover{transform:scale(1.05)}.titan-job-indicator__dismiss{width:24px;height:24px;background:transparent;border:1px solid #334155;border-radius:6px;color:#64748b;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;margin-left:4px}.titan-job-indicator__dismiss:hover{background:#374151;color:#f1f5f9;border-color:#475569}.dictionary-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #2d3548}.btn-titan-sm{padding:6px 12px;font-size:12px}.btn-titan-sm:hover:not(:disabled){transform:translateY(-1px)}.unified-classification-grid{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;overflow:hidden;margin-bottom:24px}.grid-header-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;background:#0f172a;border-bottom:1px solid #334155;flex-wrap:wrap}.grid-filter-tabs{display:flex;gap:2px;flex-wrap:wrap}.grid-search{position:relative;flex-shrink:0}.grid-search-input{width:220px;padding:8px 32px 8px 12px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:all .2s ease}.grid-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.grid-search-input::placeholder{color:#64748b}.grid-search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#475569;border:none;border-radius:4px;color:#94a3b8;font-size:14px;cursor:pointer;transition:all .15s ease}.grid-search-clear:hover{background:#64748b;color:#f1f5f9}.grid-filter-tab{padding:8px 16px;background:transparent;border:1px solid transparent;border-radius:6px;color:#94a3b8;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.grid-filter-tab:hover{background:#ffffff0d;color:#e2e8f0}.grid-filter-tab--active{background:#3b82f626;border-color:#3b82f64d;color:#60a5fa}.unified-grid-table-container{max-height:500px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#475569 #1e293b}.unified-grid-table-container::-webkit-scrollbar{width:8px}.unified-grid-table-container::-webkit-scrollbar-track{background:#1e293b}.unified-grid-table-container::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}.unified-grid-table-container::-webkit-scrollbar-thumb:hover{background:#64748b}.unified-grid-table{width:100%;border-collapse:collapse;font-size:13px}.unified-grid-table thead{position:sticky;top:0;z-index:10}.unified-grid-table th{text-align:left;padding:12px 16px;background:#0f172a;color:#94a3b8;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #334155}.unified-grid-table td{padding:10px 16px;border-bottom:1px solid #1e293b;color:#e2e8f0;vertical-align:middle}.unified-grid-table tbody tr:hover{background:#ffffff08}.unified-grid-table tbody tr:last-child td{border-bottom:none}.unified-grid-table .col-category{width:140px}.unified-grid-table .col-code{width:100px}.unified-grid-table .col-description{min-width:200px}.unified-grid-table .col-class{width:160px}.unified-grid-table .col-actions{width:60px;text-align:center}.category-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.category-badge--equipment_types{background:#3b82f626;border:1px solid rgba(59,130,246,.3);color:#60a5fa}.category-badge--valve_types{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#34d399}.category-badge--instrumentation_types{background:#8b5cf626;border:1px solid rgba(139,92,246,.3);color:#a78bfa}.category-badge--equipment_design_labels{background:#eab30826;border:1px solid rgba(234,179,8,.3);color:#fbbf24}.unified-grid-table .row-equipment_types{border-left:3px solid rgba(59,130,246,.5)}.unified-grid-table .row-valve_types{border-left:3px solid rgba(16,185,129,.5)}.unified-grid-table .row-instrumentation_types{border-left:3px solid rgba(139,92,246,.5)}.unified-grid-table .row-equipment_design_labels{border-left:3px solid rgba(234,179,8,.5)}.unified-grid-table .cell-code{font-family:SF Mono,Monaco,Inconsolata,monospace;color:#60a5fa;font-weight:600}.unified-grid-table .cell-input{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:all .2s ease}.unified-grid-table .cell-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.unified-grid-table .cell-input::placeholder{color:#64748b}.unified-grid-table .cell-na{color:#475569;font-style:italic}.unified-grid-table .cell-actions{text-align:center}.unified-grid-actions{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#0f172a;border-top:1px solid #334155;gap:16px;flex-wrap:wrap}.add-entry-buttons{display:flex;gap:8px;flex-wrap:wrap}.unified-grid-actions .btn-add-entry{margin-top:0;padding:8px 14px;background:transparent;border:1px dashed #475569;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.unified-grid-actions .btn-add-entry:hover{border-color:#3b82f6;color:#60a5fa;background:#3b82f614}.unified-grid-actions .btn-titan{flex-shrink:0}.auxiliary-mappings{display:flex;flex-direction:column;gap:16px}.auxiliary-intro{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px 20px}.auxiliary-intro p{margin:0;color:#94a3b8;font-size:13px;line-height:1.6}.unified-grid-table tbody tr.empty-row{border-left:none}.unified-grid-table tbody tr.empty-row td{text-align:center;color:#64748b;font-style:italic;padding:40px 16px;background:transparent}.unified-grid-table tbody tr.empty-row:hover{background:transparent}.unified-grid-table .row-adding{background:#3b82f614;animation:rowFadeIn .2s ease}@keyframes rowFadeIn{0%{opacity:0;background:#3b82f633}to{opacity:1;background:#3b82f614}}.unified-grid-table .cell-input-new{border-color:#3b82f6;background:#1e293b}.unified-grid-table .cell-actions-new{display:flex;gap:4px;justify-content:center}.unified-grid-table .btn-confirm{color:#22c55e}.unified-grid-table .btn-confirm:hover{background:#22c55e26;border-color:#22c55e4d}.unified-grid-table .btn-cancel{color:#ef4444}.unified-grid-table .btn-cancel:hover{background:#ef444426;border-color:#ef44444d}.unified-grid-actions .btn-add-entry:disabled{opacity:.4;cursor:not-allowed}.grid-selection-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#3b82f61a;border-bottom:1px solid rgba(59,130,246,.2)}.grid-selection-bar .selection-count{color:#60a5fa;font-size:13px;font-weight:500}.unified-grid-table .col-checkbox{width:40px;text-align:center}.unified-grid-table .cell-checkbox{text-align:center;width:40px}.unified-grid-table .cell-checkbox input[type=checkbox],.unified-grid-table .col-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6;cursor:pointer}.unified-grid-table .row-selected{background:#3b82f61a!important}.unified-grid-table .row-selected td{border-bottom-color:#3b82f633}@media (max-width: 768px){.grid-header-bar{flex-direction:column;align-items:stretch;gap:12px}.grid-filter-tabs{justify-content:center}.grid-filter-tab{padding:6px 12px;font-size:12px}.grid-search,.grid-search-input{width:100%}.unified-grid-table th,.unified-grid-table td{padding:8px 12px}.unified-grid-table .col-category{width:auto;min-width:100px}.unified-grid-table .col-class{display:none}.unified-grid-actions{flex-direction:column;align-items:stretch}.add-entry-buttons{justify-content:center}.unified-grid-actions .btn-titan{width:100%;justify-content:center}}.regex-pattern-settings{padding:24px;max-width:1200px;margin:0 auto}.regex-pattern-settings .settings-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.regex-pattern-settings .header-left h2{margin:0 0 4px;color:#f1f5f9;font-size:22px;font-weight:600}.regex-pattern-settings .settings-description{margin:0;color:#94a3b8;font-size:13px}.regex-pattern-settings .header-actions{display:flex;gap:8px;align-items:center}.regex-pattern-settings .loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px}.regex-pattern-settings .spinner{width:36px;height:36px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.regex-pattern-settings .status-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;margin-bottom:16px}.regex-pattern-settings .status-default{background:#eab30826;border:1px solid rgba(234,179,8,.3);color:#fbbf24}.regex-pattern-settings .status-custom{background:#10b98126;border:1px solid rgba(16,185,129,.3);color:#10b981}.regex-pattern-settings .error-banner{padding:10px 14px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px;margin-bottom:12px}.regex-pattern-settings .success-banner{padding:10px 14px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:6px;color:#10b981;font-size:13px;margin-bottom:12px}.patterns-layout{display:grid;grid-template-columns:260px 1fr;gap:20px;min-height:400px}.patterns-sidebar{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;overflow:hidden}.sidebar-header{padding:12px 14px;background:#0003;border-bottom:1px solid #334155;color:#64748b;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.pattern-list{display:flex;flex-direction:column}.pattern-list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;cursor:pointer;border-bottom:1px solid rgba(51,65,85,.5);transition:background .15s ease}.pattern-list-item:hover{background:#ffffff08}.pattern-list-item.selected{background:#3b82f626;border-left:3px solid #3b82f6}.pattern-list-item.has-error{background:#ef444414}.pattern-list-item:last-child{border-bottom:none}.pattern-list-name{color:#e2e8f0;font-size:13px;font-weight:500}.pattern-list-badges{display:flex;gap:6px}.badge-modified{background:#fbbf2433;border:1px solid rgba(251,191,36,.3);color:#fbbf24;font-size:9px;font-weight:600;padding:2px 5px;border-radius:3px;letter-spacing:.3px}.badge-error{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:50%;color:#f87171;font-size:10px;font-weight:700}.pattern-editor{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:20px}.editor-header h3{margin:0 0 6px;color:#f1f5f9;font-size:16px;font-weight:600}.editor-usage{margin:0 0 20px;color:#64748b;font-size:12px;line-height:1.5}.editor-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:300px;color:#64748b;font-size:14px}.editor-form{display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{color:#94a3b8;font-size:12px;font-weight:500}.pattern-input{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:border-color .2s ease;box-sizing:border-box}.pattern-input.mono{font-family:SF Mono,Monaco,Inconsolata,monospace}.pattern-input:focus{outline:none;border-color:#3b82f6}.pattern-input.input-error{border-color:#ef444499;background:#ef44440d}.error-message{color:#f87171;font-size:11px}.editor-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #334155}.btn-small{padding:6px 12px;background:#334155;border:1px solid #475569;border-radius:5px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .15s ease}.btn-small:hover{background:#475569;color:#e2e8f0}.btn-small:disabled{opacity:.5;cursor:not-allowed}.btn-small.btn-active{background:#3b82f633;border-color:#3b82f666;color:#60a5fa}.btn-titan{background:#a855f726;border-color:#a855f74d;color:#a855f7}.btn-titan:hover{background:#a855f740}.btn-danger{background:#ef444426;border-color:#ef44444d;color:#f87171}.btn-danger:hover:not(:disabled){background:#ef444440}.btn-import{cursor:pointer}.regex-pattern-settings .btn-primary{padding:8px 16px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid #60a5fa;border-radius:6px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;box-shadow:0 2px 4px #3b82f64d}.regex-pattern-settings .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 8px #3b82f666}.regex-pattern-settings .btn-primary:disabled{opacity:.6;cursor:not-allowed;background:#475569;border-color:#64748b;box-shadow:none}.regex-pattern-settings .btn-secondary{padding:8px 16px;background:#475569;border:none;border-radius:6px;color:#e2e8f0;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.regex-pattern-settings .btn-secondary:hover:not(:disabled){background:#64748b}.test-panel{margin-top:16px;padding:14px;background:#0f172a;border:1px solid #334155;border-radius:8px}.test-input-row{display:flex;gap:8px;margin-bottom:12px}.test-input{flex:1;padding:8px 12px;background:#1e293b;border:1px solid #475569;border-radius:4px;color:#f1f5f9;font-size:13px}.test-input:focus{outline:none;border-color:#3b82f6}.test-results{padding:10px 12px;background:#1e293b;border-radius:4px}.test-stats{color:#64748b;font-size:11px;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.test-highlighted{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:13px;line-height:1.6;word-break:break-all}.test-text-plain{color:#94a3b8}.test-text-match{background:#10b98140;border:1px solid rgba(16,185,129,.4);border-radius:3px;color:#10b981;padding:1px 4px;margin:0 1px}.no-project-warning{margin-top:16px;padding:10px 14px;background:#eab3081a;border:1px solid rgba(234,179,8,.2);border-radius:6px;color:#fbbf24;font-size:12px;text-align:center}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #475569;border-radius:12px;padding:20px 24px;min-width:320px;max-width:480px;width:90%;max-height:70vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.titan-modal{max-width:520px;max-height:60vh}.modal-title{margin:0 0 16px;color:#f1f5f9;font-size:18px;font-weight:600}.titan-form{display:flex;flex-direction:column;gap:16px}.titan-textarea{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;resize:vertical;min-height:80px;box-sizing:border-box}.titan-textarea:focus{outline:none;border-color:#a855f7}.btn-titan-generate{background:linear-gradient(135deg,#a855f7,#7c3aed)!important}.btn-titan-generate:hover:not(:disabled){background:linear-gradient(135deg,#9333ea,#6d28d9)!important}.titan-result{padding:16px;background:#a855f71a;border:1px solid rgba(168,85,247,.3);border-radius:8px;display:flex;flex-direction:column;gap:12px}.titan-result-header{color:#a855f7;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.titan-pattern{display:block;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#60a5fa;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:12px;overflow-x:auto;white-space:nowrap}.titan-explanation{color:#94a3b8;font-size:13px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #334155}.modal-content.confirm-modal{max-width:380px;text-align:center;padding:20px 24px}.confirm-modal-header{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:12px}.confirm-modal-header .confirm-icon{font-size:22px;line-height:1}.confirm-modal-header h3{margin:0;font-size:16px;font-weight:600;color:#f1f5f9}.confirm-message{color:#94a3b8;font-size:13px;line-height:1.5;margin:0 0 16px}.confirm-message strong{color:#f87171}.confirm-modal-actions{display:flex;justify-content:center;gap:10px}.confirm-modal-actions .btn-danger{padding:8px 16px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.confirm-modal-actions .btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c)}.confirm-modal-actions .btn-secondary{padding:8px 16px;font-size:13px}.doc-selector__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.doc-selector__modal{background:#1e293b;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0006;border:1px solid #334155}.doc-selector__header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #334155}.doc-selector__header h3{margin:0;font-size:18px;color:#f1f5f9;flex:1}.doc-selector__project{font-size:13px;color:#64748b;background:#0f172a;padding:4px 8px;border-radius:4px}.doc-selector__close{background:none;border:none;color:#94a3b8;font-size:24px;cursor:pointer;padding:0 4px;line-height:1}.doc-selector__close:hover{color:#f1f5f9}.doc-selector__search{padding:12px 20px;border-bottom:1px solid #334155}.doc-selector__search input{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px}.doc-selector__search input:focus{outline:none;border-color:#3b82f6}.doc-selector__search input::placeholder{color:#64748b}.doc-selector__tip{display:flex;flex-direction:column;gap:6px;padding:12px 20px;background:#0f172a;border-bottom:1px solid #334155;font-size:12px;line-height:1.5}.doc-selector__tip-row{display:flex;gap:20px;flex-wrap:wrap}.doc-selector__tip-item{display:flex;align-items:center;gap:6px}.doc-selector__tip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:3px;font-size:10px;font-weight:700}.doc-selector__tip-badge--good{background:#4ade8026;color:#4ade80}.doc-selector__tip-badge--warn{background:#f59e0b26;color:#f59e0b}.doc-selector__tip-label{color:#94a3b8}.doc-selector__tip-label strong{color:#e2e8f0;font-weight:600}.doc-selector__tip-note{color:#64748b;font-size:11px;font-style:italic}.doc-selector__info{display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:#0f172a;border-bottom:1px solid #334155}.doc-selector__count{font-size:13px;color:#94a3b8}.doc-selector__clear{background:none;border:none;color:#3b82f6;font-size:13px;cursor:pointer;padding:4px 8px}.doc-selector__clear:hover{color:#60a5fa;text-decoration:underline}.doc-selector__content{flex:1;overflow-y:auto;padding:12px 0;min-height:200px;max-height:400px}.doc-selector__loading,.doc-selector__error,.doc-selector__empty{padding:40px 20px;text-align:center;color:#64748b;font-size:14px}.doc-selector__error{color:#ef4444}.doc-selector__folder{margin-bottom:2px}.doc-selector__folder-header{display:flex;align-items:center;gap:6px;padding:8px 12px 8px 20px;cursor:pointer;transition:background .15s}.doc-selector__folder-header:hover{background:#3b82f61a}.doc-selector__folder-toggle{background:none;border:none;color:#64748b;cursor:pointer;font-size:10px;padding:4px;width:20px;text-align:center}.doc-selector__folder-icon{font-size:16px}.doc-selector__folder-name{flex:1;color:#f1f5f9;font-size:14px;font-weight:500}.doc-selector__folder-rev{font-size:11px;color:#64748b;background:#334155;padding:2px 6px;border-radius:4px}.doc-selector__folder-count{font-size:12px;color:#64748b;background:#0f172a;padding:2px 8px;border-radius:10px;min-width:24px;text-align:center}.doc-selector__select-all{background:none;border:none;color:#64748b;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;transition:all .15s}.doc-selector__select-all:hover{background:#3b82f633;color:#3b82f6}.doc-selector__select-all.all{color:#22c55e}.doc-selector__select-all.partial{color:#eab308}.doc-selector__folder-content{padding-left:28px}.doc-selector__drawing{display:flex;align-items:center;gap:8px;padding:6px 12px;margin:1px 0;cursor:pointer;border-radius:4px;transition:background .15s}.doc-selector__drawing:hover{background:#3b82f61a}.doc-selector__drawing.selected{background:#3b82f633}.doc-selector__checkbox{color:#64748b;font-size:16px}.doc-selector__drawing.selected .doc-selector__checkbox{color:#3b82f6}.doc-selector__drawing-icon{font-size:14px}.doc-selector__drawing-name{flex:1;color:#e2e8f0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-selector__drawing-id{font-size:11px;color:#64748b;font-family:monospace}.doc-selector__status{font-size:10px;padding:2px 5px;border-radius:3px;font-weight:600}.doc-selector__status.processed{color:#4ade80;background:#4ade8026}.doc-selector__status.pending,.doc-selector__status.uploaded{color:#f59e0b;background:#f59e0b26}.doc-selector__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #334155;background:#0f172a;border-radius:0 0 12px 12px}.doc-selector__cancel,.doc-selector__confirm{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.doc-selector__cancel{background:#334155;border:1px solid #475569;color:#e2e8f0}.doc-selector__cancel:hover{background:#475569}.doc-selector__confirm{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.doc-selector__confirm:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.doc-selector__confirm:disabled{opacity:.5;cursor:not-allowed}.titan-panel-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.titan-panel{background:#1a1a2e;border:1px solid #2d2d44;border-radius:12px;width:95%;max-width:720px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.titan-panel__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#252547,#1a1a2e);border-bottom:1px solid #2d2d44}.titan-panel__title{display:flex;align-items:center;gap:14px}.titan-panel__logo{width:40px;height:40px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:10px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #6366f14d}.titan-panel__logo-text{color:#fff;font-size:20px;font-weight:700}.titan-panel__title-text h2{margin:0;font-size:18px;font-weight:600;color:#fff}.titan-panel__subtitle{font-size:12px;color:#8b8ba7;margin-top:2px;display:block}.titan-panel__header-actions{display:flex;gap:8px}.titan-panel__minimize,.titan-panel__close{width:32px;height:32px;border:none;border-radius:8px;background:#2d2d44;color:#8b8ba7;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.titan-panel__minimize:hover,.titan-panel__close:hover{background:#3d3d5c;color:#fff}.titan-panel__cancel{padding:6px 14px;border:none;border-radius:6px;background:#ef444426;color:#f87171;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.titan-panel__cancel:hover{background:#ef444440;color:#fca5a5}.titan-panel__error{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#ef44441a;border-bottom:1px solid rgba(239,68,68,.2);color:#f87171;font-size:13px}.titan-panel__error-icon{width:20px;height:20px;background:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.titan-panel__info-tip{display:flex;align-items:flex-start;gap:10px;padding:12px 20px;background:#3b82f61a;border-bottom:1px solid rgba(59,130,246,.2);color:#93c5fd;font-size:13px;line-height:1.5}.titan-panel__info-icon{width:20px;height:20px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px}.titan-panel__info-tip strong{color:#60a5fa}.titan-panel__progress{display:flex;gap:24px;padding:24px;align-items:center}.titan-panel__progress-visual{flex-shrink:0}.titan-panel__progress-ring{position:relative;width:100px;height:100px}.titan-panel__progress-ring svg{width:100%;height:100%}.titan-panel__progress-bg{stroke:#2d2d44}.titan-panel__progress-value{stroke:#6366f1;stroke-linecap:round;transition:stroke-dasharray .5s ease}.titan-panel__progress-percent{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;color:#fff}.titan-panel__progress-info{flex:1}.titan-panel__phase{font-size:16px;font-weight:600;color:#fff;margin-bottom:6px}.titan-panel__progress-message{color:#8b8ba7;font-size:13px;margin:0 0 8px}.titan-panel__progress-hint{color:#6366f1;font-size:12px;margin:0;opacity:.8}.titan-panel__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0 24px 24px}.titan-panel__stat{background:#252547;border-radius:8px;padding:12px;text-align:center}.titan-panel__stat-value{display:block;font-size:20px;font-weight:600;color:#fff}.titan-panel__stat-label{display:block;font-size:11px;color:#8b8ba7;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.titan-panel__files{padding:0 24px 16px}.titan-panel__files-label{font-size:12px;color:#8b8ba7;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.titan-panel__files-list{display:flex;flex-wrap:wrap;gap:8px}.titan-panel__file-link{display:inline-flex;align-items:center;padding:6px 12px;background:#252547;border:1px solid #3d3d5c;border-radius:6px;color:#a78bfa;font-size:13px;text-decoration:none;transition:all .15s ease;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.titan-panel__file-link:hover{background:#2d2d55;border-color:#a78bfa;color:#c4b5fd}.titan-panel__file-link:before{content:"📄";margin-right:6px;flex-shrink:0}.titan-panel__failed{padding:40px;text-align:center}.titan-panel__failed-icon{width:56px;height:56px;background:#ef44441a;border:2px solid #ef4444;color:#ef4444;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin:0 auto 16px}.titan-panel__failed h3{color:#fff;margin:0 0 8px;font-size:18px}.titan-panel__failed p{color:#8b8ba7;margin:0 0 20px;font-size:14px}.titan-panel__retry-btn{background:#6366f1;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease}.titan-panel__retry-btn:hover{background:#5855e0}.titan-panel__summary{padding:12px 16px;background:#252547;margin:0 12px 10px;border-radius:8px;border:1px solid #2d2d44}.titan-panel__summary-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.titan-panel__summary-icon{width:32px;height:32px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.titan-panel__summary-header h3{margin:0;font-size:15px;font-weight:600;color:#fff}.titan-panel__summary-text{color:#b4b4cc;font-size:13px;line-height:1.5;margin:0 0 12px}.titan-panel__summary-stats{display:flex;gap:16px;font-size:12px;color:#8b8ba7}.titan-panel__summary-stats span{display:flex;align-items:center;gap:4px}.titan-panel__toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1e1e38;border-top:1px solid #2d2d44;border-bottom:1px solid #2d2d44}.titan-panel__counts{display:flex;gap:16px}.titan-panel__count{font-size:12px;color:#8b8ba7}.titan-panel__count-num{font-weight:600;margin-right:4px}.titan-panel__count--accepted .titan-panel__count-num{color:#22c55e}.titan-panel__count--rejected .titan-panel__count-num{color:#ef4444}.titan-panel__count--pending .titan-panel__count-num{color:#f59e0b}.titan-panel__bulk-btns{display:flex;gap:8px}.titan-panel__bulk-btn{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.titan-panel__bulk-btn--accept{background:#22c55e1a;color:#22c55e;border-color:#22c55e4d}.titan-panel__bulk-btn--accept:hover:not(:disabled){background:#22c55e33}.titan-panel__bulk-btn--reject{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.titan-panel__bulk-btn--reject:hover:not(:disabled){background:#ef444433}.titan-panel__bulk-btn:disabled{opacity:.4;cursor:not-allowed}.titan-panel__suggestions{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:6px}.titan-panel__no-suggestions{text-align:center;padding:40px;color:#8b8ba7;font-size:14px}.titan-panel__footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;background:#1e1e38;border-top:1px solid #2d2d44}.titan-panel__cancel-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;background:transparent;color:#8b8ba7;border:1px solid #3d3d5c;transition:all .15s ease}.titan-panel__cancel-btn:hover{background:#2d2d44;color:#fff}.titan-panel__apply-btn{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;background:#6366f1;color:#fff;border:none;transition:all .15s ease}.titan-panel__apply-btn:hover:not(:disabled){background:#5855e0}.titan-panel__apply-btn:disabled{opacity:.5;cursor:not-allowed}.titan-panel__edit-btn{padding:8px 16px;border-radius:6px;border:1px solid #6366f1;background:transparent;color:#6366f1;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.suggestion-card{background:#1e1e38;border:1px solid #2d2d44;border-radius:8px;overflow:visible;transition:all .15s ease}.suggestion-card:hover{border-color:#3d3d5c}.suggestion-card--accepted{border-left:3px solid #22c55e}.suggestion-card--rejected{border-left:3px solid #ef4444;opacity:.6}.suggestion-card--pending{border-left:3px solid #f59e0b}.suggestion-card--add .suggestion-card__action{background:#22c55e26;color:#22c55e}.suggestion-card--modify .suggestion-card__action{background:#eab30826;color:#eab308}.suggestion-card--remove .suggestion-card__action{background:#ef444426;color:#ef4444}.suggestion-card__header{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;overflow:visible;background:#252545}.suggestion-card__action{padding:2px 6px;border-radius:4px;font-size:9px;font-weight:600;letter-spacing:.5px;flex-shrink:0}.suggestion-card__key{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;color:#fff!important;font-weight:500;flex:1 1 auto;min-width:60px;overflow:visible;text-overflow:ellipsis;white-space:nowrap;background:transparent}code.suggestion-card__key{color:#fff!important;display:inline-block}.suggestion-card__confidence{font-size:12px;font-weight:500}.suggestion-card__confidence--high{color:#22c55e}.suggestion-card__confidence--medium{color:#f59e0b}.suggestion-card__confidence--low{color:#ef4444}.suggestion-card__badge{padding:2px 8px;border-radius:10px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.3px}.suggestion-card__badge--pending{background:#f59e0b26;color:#f59e0b}.suggestion-card__badge--accepted{background:#22c55e26;color:#22c55e}.suggestion-card__badge--rejected{background:#ef444426;color:#ef4444}.suggestion-card__toggle{width:24px;height:24px;border:none;background:#2d2d44;color:#8b8ba7;border-radius:4px;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .1s ease}.suggestion-card__toggle:hover{background:#3d3d5c;color:#fff}.suggestion-card__diff{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;background:#15152a;border-top:1px solid #2d2d44;padding:0;overflow:visible}.suggestion-card__diff-row{display:flex;align-items:flex-start;padding:4px 10px;gap:6px}.suggestion-card__diff-row--old{background:#ef444414}.suggestion-card__diff-row--new{background:#22c55e14}.suggestion-card__diff-marker{width:16px;font-weight:600;flex-shrink:0;text-align:center}.suggestion-card__diff-row--old .suggestion-card__diff-marker{color:#ef4444}.suggestion-card__diff-row--new .suggestion-card__diff-marker{color:#22c55e}.suggestion-card__diff-row code{color:#b4b4cc!important;word-break:break-all;flex:1;min-width:0;display:inline}.suggestion-card__diff-row--old code{color:#fca5a5!important}.suggestion-card__diff-row--new code{color:#86efac!important}.suggestion-card__details{padding:16px;background:linear-gradient(180deg,#1a1a2e,#151528);border-top:1px solid #2d2d44}.suggestion-card__reason{background:#252547;border-radius:8px;padding:14px;margin-bottom:14px;border-left:3px solid #6366f1}.suggestion-card__reason label,.suggestion-card__examples label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#6366f1;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.suggestion-card__reason label:before{content:"";display:inline-block;width:4px;height:4px;background:#6366f1;border-radius:50%}.suggestion-card__reason p{color:#d4d4e8;font-size:13px;line-height:1.6;margin:0}.suggestion-card__examples{background:#252547;border-radius:8px;padding:14px;border-left:3px solid #22c55e}.suggestion-card__examples label:before{content:"";display:inline-block;width:4px;height:4px;background:#22c55e;border-radius:50%}.suggestion-card__examples label{color:#22c55e}.suggestion-card__example-tags{display:flex;flex-wrap:wrap;gap:8px}.suggestion-card__example-tags code{background:#1a1a2e;border:1px solid #3d3d5c;padding:5px 10px;border-radius:6px;font-size:11px;color:#b4b4cc;font-family:JetBrains Mono,Fira Code,monospace;transition:all .15s ease}.suggestion-card__example-tags code:hover{background:#2d2d44;border-color:#6366f1;color:#fff}.suggestion-card__more{color:#6366f1;font-size:11px;padding:5px 10px;background:#6366f11a;border-radius:6px}.suggestion-card__actions{display:flex;gap:8px;padding:10px 12px;background:#1a1a2e;border-top:1px solid #2d2d44;justify-content:flex-end}.suggestion-card__btn{padding:6px 16px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.suggestion-card__btn--reject{background:transparent;color:#8b8ba7;border:1px solid #3d3d5c}.suggestion-card__btn--reject:hover{background:#ef44441a;color:#ef4444;border-color:#ef44444d}.suggestion-card__btn--accept{background:#6366f1;color:#fff}.suggestion-card__btn--accept:hover{background:#5855e0}.suggestion-card__btn--edit{background:transparent;color:#6366f1;border:1px solid #6366f1}.suggestion-card__btn--edit:hover{background:#6366f11a;border-color:#818cf8}.suggestion-card__btn--edit-active{background:#6366f1;color:#fff}.suggestion-card__btn--edit-active:hover{background:#818cf8;border-color:#818cf8}.suggestion-card__edit-form{display:flex;flex-direction:column;gap:8px;margin-top:4px}.suggestion-card__edit-fields{margin-left:20px;display:flex;flex-direction:column;gap:6px}.suggestion-card__edit-quote{color:#10b981}.suggestion-card__edit-input{flex:1;padding:4px 8px;border-radius:4px;border:1px solid #475569;background:#1e293b;color:#f1f5f9;font-size:13px;font-family:Courier New,monospace;transition:border-color .2s ease}.suggestion-card__edit-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.suggestion-card__edit-input::placeholder{color:#64748b}.titan-panel__edit-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;background:transparent;color:#6366f1;border:1px solid #6366f1;transition:all .15s ease}.titan-panel__edit-btn:hover{background:#6366f11a;border-color:#818cf8}.titan-panel__edit-btn--active{background:#6366f1;color:#fff}.titan-panel__edit-btn--active:hover{background:#818cf8;border-color:#818cf8}.titan-panel__suggestions::-webkit-scrollbar{width:8px}.titan-panel__suggestions::-webkit-scrollbar-track{background:#1a1a2e}.titan-panel__suggestions::-webkit-scrollbar-thumb{background:#3d3d5c;border-radius:4px}.titan-panel__suggestions::-webkit-scrollbar-thumb:hover{background:#4d4d6c}@media (max-width: 640px){.titan-panel{width:100%;max-height:100vh;border-radius:0}.titan-panel__stats{grid-template-columns:repeat(2,1fr)}.titan-panel__progress{flex-direction:column;text-align:center}.titan-panel__toolbar{flex-direction:column;gap:12px}.suggestion-card__header{flex-wrap:wrap}.suggestion-card__key{order:-1;width:100%;margin-bottom:4px}}.ocr-provider-settings{padding:24px;max-width:1400px;margin:0 auto}.ocr-provider-settings .settings-header h2{margin:0 0 8px;color:#f1f5f9;font-size:24px;font-weight:600}.ocr-provider-settings .settings-description{margin:0 0 20px;color:#94a3b8;font-size:14px;line-height:1.5}.ocr-provider-settings .loading-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:60px 40px;color:#94a3b8;font-size:14px}.ocr-provider-settings .spinner{width:36px;height:36px;border:3px solid rgba(59,130,246,.2);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.status-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px 20px;margin-bottom:20px}.status-card h3{margin:0 0 16px;color:#f1f5f9;font-size:15px;font-weight:600}.providers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.provider-card{background:#0f172a;border:2px solid #334155;border-radius:8px;padding:14px 16px;cursor:pointer;transition:all .2s ease}.provider-card:hover:not(.disabled){border-color:#475569;background:#1e293b}.provider-card.selected{border-color:#3b82f6;background:#3b82f61a}.provider-card.disabled{opacity:.5;cursor:not-allowed}.provider-card.active{border-color:#10b981;box-shadow:0 0 0 1px #10b9814d}.active-badge{display:inline-block;background:#10b981;color:#fff;font-size:9px;font-weight:700;padding:2px 6px;border-radius:3px;margin-right:6px;letter-spacing:.5px}.set-active-btn{margin-top:8px;padding:6px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;width:100%;transition:background .2s}.set-active-btn:hover{background:#2563eb}.provider-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.provider-name{color:#f1f5f9;font-size:14px;font-weight:600}.provider-status{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.provider-status.status-healthy{background:#10b98133;color:#10b981}.provider-status.status-unhealthy{background:#ef444433;color:#f87171}.provider-status.status-warning{background:#eab30833;color:#fbbf24}.provider-status.status-unknown{background:#64748b33;color:#64748b}.provider-card-status{color:#64748b;font-size:12px}.provider-card-detail{color:#475569;font-size:11px;margin-top:4px}.ocr-provider-settings .error-banner{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;margin-bottom:16px}.ocr-provider-settings .success-banner{padding:12px 18px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:8px;color:#10b981;font-size:14px;margin-bottom:16px}.config-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px 20px;margin-bottom:20px}.config-section h3{margin:0 0 16px;color:#f1f5f9;font-size:15px;font-weight:600}.ocr-provider-settings .toggle-group{margin-bottom:16px}.ocr-provider-settings .toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.ocr-provider-settings .toggle-label input[type=checkbox]{display:none}.ocr-provider-settings .toggle-slider{width:44px;height:24px;background:#475569;border-radius:12px;position:relative;transition:background .2s ease;flex-shrink:0}.ocr-provider-settings .toggle-slider:before{display:none!important}.ocr-provider-settings .toggle-slider:after{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s ease}.ocr-provider-settings .toggle-label input[type=checkbox]:checked+.toggle-slider{background:#3b82f6}.ocr-provider-settings .toggle-label input[type=checkbox]:checked+.toggle-slider:after{transform:translate(20px)}.ocr-provider-settings .toggle-text{color:#f1f5f9;font-size:14px;font-weight:500}.ocr-provider-settings .toggle-help{margin:8px 0 0 56px;color:#64748b;font-size:13px;line-height:1.5}.info-box{display:flex;gap:12px;padding:14px 16px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:8px;margin-top:16px}.info-icon{flex-shrink:0;width:24px;height:24px;background:#3b82f633;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#60a5fa;font-size:12px;font-weight:700}.info-content{flex:1}.info-content strong{display:block;color:#60a5fa;font-size:13px;font-weight:600;margin-bottom:4px}.info-content p{margin:0;color:#94a3b8;font-size:13px;line-height:1.5}.info-box.warning{background:#eab30814;border:1px solid rgba(234,179,8,.2);margin-bottom:16px}.info-box.warning .info-icon{background:#eab30833;color:#fbbf24}.info-box.warning .info-content strong{color:#fbbf24}.form-group{margin-bottom:16px}.form-group label{display:block;color:#e2e8f0;font-size:13px;font-weight:500;margin-bottom:6px}.form-input{width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;transition:border-color .2s ease;box-sizing:border-box}.form-input:focus{outline:none;border-color:#3b82f6}.form-input-small{max-width:120px}.form-textarea{min-height:100px;resize:vertical;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:12px}.form-help{margin:6px 0 0;color:#64748b;font-size:12px;line-height:1.4}select.form-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.provider-fields{padding-top:8px;border-top:1px solid #334155;margin-top:16px}.credentials-note{padding:12px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:6px;color:#94a3b8;font-size:12px;line-height:1.5;margin-top:16px}.credentials-note strong{color:#60a5fa}.credentials-note code{background:#0f172a;padding:2px 6px;border-radius:3px;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;color:#60a5fa}.credentials-saved{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:6px;color:#10b981;font-size:13px}.credentials-saved-icon{font-size:16px}.credentials-saved .btn-link{margin-left:auto;background:none;border:none;color:#60a5fa;font-size:12px;cursor:pointer;text-decoration:underline;padding:0}.credentials-saved .btn-link:hover{color:#93c5fd}.test-result{padding:16px;border-radius:8px;margin-bottom:20px}.test-result.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3)}.test-result.failed{background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.test-result h4{margin:0 0 8px;font-size:14px;font-weight:600}.test-result.success h4{color:#10b981}.test-result.failed h4{color:#f87171}.test-result .error-text{color:#f87171;font-size:13px;margin:0}.test-result .test-details{color:#94a3b8;font-size:13px}.test-result .test-details p{margin:4px 0}.ocr-provider-settings .config-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:20px;border-top:1px solid #334155}.ocr-provider-settings .btn-primary{padding:10px 20px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.ocr-provider-settings .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.ocr-provider-settings .btn-primary:disabled{opacity:.5;cursor:not-allowed}.ocr-provider-settings .btn-secondary{padding:10px 20px;background:#475569;border:none;border-radius:8px;color:#e2e8f0;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.ocr-provider-settings .btn-secondary:hover:not(:disabled){background:#64748b}.ocr-provider-settings .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.ocr-provider-settings .btn-danger{background:#ef444433;color:#f87171}.ocr-provider-settings .btn-danger:hover:not(:disabled){background:#ef44444d}.no-project-warning{margin-top:16px;padding:12px 16px;background:#eab3081a;border:1px solid rgba(234,179,8,.2);border-radius:6px;color:#fbbf24;font-size:13px;text-align:center}.combined-settings{padding:24px;min-height:calc(100vh - 200px);overflow-y:auto}.combined-settings__header{margin-bottom:0;padding-bottom:20px;border-bottom:1px solid #334155}.combined-settings__header-content{display:flex;flex-direction:column;gap:8px}.combined-settings__header h2{margin:0;color:#f1f5f9;font-size:24px;font-weight:600}.combined-settings__description{margin:0;color:#94a3b8;font-size:14px}.combined-settings__description strong{color:#3b82f6;font-weight:500}.combined-settings__tabs{display:flex;gap:0;margin-top:24px;border-bottom:2px solid #1e293b}.combined-settings__tab{padding:12px 24px;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:13px;font-weight:500;color:#94a3b8;transition:all .2s ease;white-space:nowrap;position:relative;margin-bottom:-2px}.combined-settings__tab:hover{color:#f1f5f9;background:#3b82f60d}.combined-settings__tab--active{color:#3b82f6;border-bottom-color:#3b82f6;background:#3b82f614}.combined-settings__content{padding-top:24px}.combined-settings__content .tag-dictionary-settings>.settings-header,.combined-settings__content .model-config-settings>.settings-header,.combined-settings__content .ocr-provider-settings>.settings-header{display:none}.combined-settings__content .tag-dictionary-settings .rules-tabs,.combined-settings__content .model-config-settings .tab-navigation{display:none}.combined-settings__content .tag-dictionary-settings,.combined-settings__content .model-config-settings,.combined-settings__content .ocr-provider-settings{padding:0}.suggestion-card{background:linear-gradient(180deg,#1e293b,#172033);border-radius:12px;border:1px solid #334155;padding:20px;margin-bottom:16px;transition:all .2s ease;box-shadow:0 2px 8px #00000026}.suggestion-card:hover{border-color:#475569;box-shadow:0 4px 16px #00000040;transform:translateY(-1px)}.suggestion-card--add{border-left:4px solid #22c55e;background:linear-gradient(180deg,#1e293b,#22c55e0d)}.suggestion-card--modify{border-left:4px solid #eab308;background:linear-gradient(180deg,#1e293b,#eab3080d)}.suggestion-card--remove{border-left:4px solid #ef4444;background:linear-gradient(180deg,#1e293b,#ef44440d)}.suggestion-card__header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.suggestion-card__action{font-size:12px;font-weight:600;text-transform:uppercase;padding:4px 8px;border-radius:4px;background:#ffffff1a}.suggestion-card--add .suggestion-card__action{background:#22c55e33;color:#22c55e}.suggestion-card--modify .suggestion-card__action{background:#eab30833;color:#eab308}.suggestion-card--remove .suggestion-card__action{background:#ef444433;color:#ef4444}.suggestion-card__key{font-size:16px;font-weight:700;color:#f1f5f9;font-family:monospace}.suggestion-card__confidence{margin-left:auto;font-size:12px;padding:4px 8px;border-radius:4px;background:#ffffff1a}.suggestion-card__confidence.high{color:#22c55e;background:#22c55e26}.suggestion-card__confidence.medium{color:#eab308;background:#eab30826}.suggestion-card__confidence.low{color:#ef4444;background:#ef444426}.suggestion-card__body{margin-bottom:16px}.suggestion-card__current,.suggestion-card__suggested{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:14px}.suggestion-card__label{color:#64748b;font-size:12px;min-width:70px}.suggestion-card__current .suggestion-card__value{color:#94a3b8;text-decoration:line-through}.suggestion-card__suggested .suggestion-card__value{color:#22c55e;font-family:monospace}.suggestion-card__reason{margin-top:12px}.suggestion-card__reason p{margin:4px 0 0;color:#e2e8f0;font-size:14px;line-height:1.5}.suggestion-card__examples{margin-top:12px}.suggestion-card__example-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.suggestion-card__example{font-size:12px;font-family:monospace;background:#0f172a;padding:4px 8px;border-radius:4px;color:#94a3b8}.suggestion-card__example-more{font-size:12px;color:#64748b;padding:4px 8px}.suggestion-card__edit-form{background:#0f172a;padding:12px;border-radius:6px;display:flex;flex-direction:column;gap:10px}.suggestion-card__edit-field{display:flex;align-items:center;gap:8px}.suggestion-card__edit-field label{font-size:12px;color:#64748b;min-width:80px}.suggestion-card__edit-field input,.suggestion-card__edit-field select{flex:1;padding:8px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:14px}.suggestion-card__edit-field input:focus,.suggestion-card__edit-field select:focus{outline:none;border-color:#3b82f6}.suggestion-card__actions{display:flex;gap:8px;justify-content:flex-end;padding-top:12px;border-top:1px solid #334155}.suggestion-card__btn{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.suggestion-card__btn--skip{background:transparent;border:1px solid #475569;color:#94a3b8}.suggestion-card__btn--skip:hover{background:#334155;color:#e2e8f0}.suggestion-card__btn--edit{background:#334155;border:1px solid #475569;color:#e2e8f0}.suggestion-card__btn--edit:hover{background:#475569}.suggestion-card__btn--apply{background:#3b82f6;border:1px solid #3b82f6;color:#fff}.suggestion-card__btn--apply:hover:not(:disabled){background:#2563eb}.suggestion-card__btn--apply:disabled{opacity:.5;cursor:not-allowed}.suggestions-panel{background:linear-gradient(180deg,#0f172a,#0c1322);border-radius:16px;border:1px solid #334155;padding:24px;margin-top:24px;box-shadow:0 8px 32px #0000004d}.suggestions-panel--empty{text-align:center;padding:40px}.suggestions-panel--empty p{color:#64748b;margin-bottom:16px}.suggestions-panel__close{padding:8px 20px;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;cursor:pointer}.suggestions-panel__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.suggestions-panel__title{display:flex;align-items:center;gap:12px}.suggestions-panel__title h3{margin:0;font-size:18px;color:#f1f5f9}.suggestions-panel__count{font-size:13px;color:#64748b;background:#1e293b;padding:4px 10px;border-radius:12px}.suggestions-panel__meta{font-size:13px;color:#64748b}.suggestions-panel__explanation{background:#1e293b;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;color:#e2e8f0;border-left:3px solid #3b82f6}.suggestions-panel__bulk-actions{display:flex;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}.suggestions-panel__bulk-btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.suggestions-panel__bulk-btn--apply{background:#22c55e;border:1px solid #22c55e;color:#fff}.suggestions-panel__bulk-btn--apply:hover:not(:disabled){background:#16a34a}.suggestions-panel__bulk-btn--apply:disabled{opacity:.5;cursor:not-allowed}.suggestions-panel__bulk-btn--dismiss{background:transparent;border:1px solid #475569;color:#94a3b8}.suggestions-panel__bulk-btn--dismiss:hover{background:#334155;color:#e2e8f0}.suggestions-panel__list{max-height:500px;overflow-y:auto}.qc-config-panel{padding:24px;height:calc(100vh - 200px);overflow-y:auto}.qc-config-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.btn-deactivate-batch{padding:10px 20px;background:#f59e0b26;border:1px solid rgba(245,158,11,.4);border-radius:6px;color:#fbbf24;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-deactivate-batch:hover:not(:disabled){background:#f59e0b40;border-color:#f59e0b99;transform:translateY(-1px)}.btn-deactivate-batch:disabled{opacity:.5;cursor:not-allowed}.btn-new-rule{padding:12px 24px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.btn-new-rule:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.qc-config-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:12px;background:#0f172a80;border-radius:8px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-group label{color:#94a3b8;font-size:11px;text-transform:uppercase}.filter-select,.filter-search{padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:12px;min-width:120px}.filter-select:focus,.filter-search:focus{outline:none;border-color:#3b82f6}.filter-search{flex:1;max-width:300px}.filter-checkbox{display:flex;align-items:center;gap:6px;font-size:14px;color:#e2e8f0}.filter-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.qc-config-table-container{overflow-x:auto;border-radius:8px;border:1px solid #334155;background:linear-gradient(180deg,#1e293b,#0f172a)}.qc-config-table{width:100%;border-collapse:collapse;font-size:12px}.qc-config-table th{background:#0f172a;color:#94a3b8;font-weight:500;text-align:center;padding:10px 12px;border-bottom:1px solid #334155;white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.qc-config-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0}.qc-config-table tbody tr:hover{background:#3b82f60d}.qc-config-table tbody tr{border-left:3px solid transparent}.plain-language-cell{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.created-by-cell,.date-cell{text-align:center;color:#94a3b8;font-size:12px;white-space:nowrap}.status-badges{display:flex;gap:6px;flex-wrap:wrap}.badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.badge-active{background:#10b98133;color:#10b981}.badge-inactive{background:#64748b33;color:#64748b}.badge-validated{background:#3b82f633;color:#60a5fa}.badge-needs-review{background:#f59e0b33;color:#f59e0b}.action-buttons{display:flex;gap:8px}.btn-edit,.btn-toggle,.btn-delete{padding:4px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#60a5fa;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-edit:hover{background:#3b82f640;border-color:#3b82f680}.btn-toggle{background:#64748b26;border-color:#64748b4d;color:#94a3b8}.btn-toggle:hover{background:#64748b40}.btn-delete{background:#ef444426;border-color:#ef44444d;color:#f87171}.btn-delete:hover{background:#ef444440;border-color:#ef444480}.modal-content{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;width:700px;max-width:100%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000080}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}.modal-header h3{margin:0;color:#f1f5f9;font-size:18px;font-weight:600}.modal-body{padding:16px 24px;flex:1}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;color:#e2e8f0;font-size:13px;font-weight:600}.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-group input[type=text]:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#3b82f6}.btn-compile{padding:10px 20px;background:linear-gradient(135deg,#8b5cf633,#3b82f633);border:1px solid rgba(139,92,246,.4);border-radius:8px;color:#a78bfa;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-compile:hover:not(:disabled){background:linear-gradient(135deg,#8b5cf659,#3b82f659);border-color:#8b5cf699;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf640}.btn-compile:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-validate{padding:10px 20px;background:linear-gradient(135deg,#3b82f633,#10b98133);border:1px solid rgba(59,130,246,.4);border-radius:8px;color:#60a5fa;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%}.btn-validate:hover:not(:disabled){background:linear-gradient(135deg,#3b82f659,#10b98159);border-color:#3b82f699;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f640}.btn-validate:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-validate.validated{background:linear-gradient(135deg,#10b98133,#05966933);border:1px solid rgba(16,185,129,.4);color:#34d399}.btn-validate.validated:hover{background:linear-gradient(135deg,#10b98159,#05966959);border-color:#10b98199}.validation-success{margin-top:12px;padding:10px 16px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:6px;color:#34d399;font-size:13px;font-weight:500}.validation-errors{margin-top:12px;padding:16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:13px}.validation-errors strong{display:block;margin-bottom:8px;font-weight:600;color:#fca5a5}.validation-errors ul{margin:8px 0;padding-left:20px}.validation-errors li{margin-bottom:6px;line-height:1.5}.validation-hint{margin-top:12px;padding-top:12px;border-top:1px solid rgba(239,68,68,.2);color:#94a3b8;font-size:12px;font-style:italic}.compiled-rule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.btn-toggle-preview{padding:4px 12px;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-toggle-preview:hover{background:#64748b}.compiled-rule-preview{background:#0f172a;border:1px solid #334155;border-radius:4px;padding:12px;font-size:12px;overflow-x:auto;max-height:300px;overflow-y:auto;color:#e2e8f0;font-family:SF Mono,Menlo,monospace}.compiled-rule-editor{background:#0f172a;border:1px solid #334155;border-radius:4px;padding:12px;font-size:12px;font-family:SF Mono,Menlo,monospace;color:#e2e8f0;width:100%;resize:vertical;min-height:200px;line-height:1.5;-moz-tab-size:2;tab-size:2;white-space:pre;overflow-wrap:normal;overflow-x:auto}.compiled-rule-editor:focus{outline:none;border-color:#3b82f6}.json-parse-error{margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#fca5a5;font-size:12px}.json-edit-hint{margin-top:8px;font-size:11px;color:#94a3b8;font-style:italic}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:#e2e8f0}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.modal-footer{padding:16px 24px;border-top:1px solid #334155;display:flex;justify-content:flex-end;gap:12px;background:#0f172a80}.btn-cancel,.btn-save{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.qc-results-viewer{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;height:100vh;width:100vw;background:#0f172a;color:#f1f5f9;overflow:hidden;z-index:1000}.qc-viewer-loading,.qc-viewer-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#94a3b8}.qc-viewer-loading .spinner{width:40px;height:40px;border:3px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.qc-viewer-error button{padding:8px 16px;background:#475569;border:none;border-radius:6px;color:#e2e8f0;cursor:pointer}.qc-viewer-error button:hover{background:#64748b}.qc-viewer-header{display:flex;align-items:center;gap:16px;padding:12px 24px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid #334155}.qc-viewer-header .btn-back{padding:6px 12px;background:#475569;border:none;border-radius:6px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.qc-viewer-header .btn-back:hover{background:#64748b}.qc-viewer-header .header-job-name{margin:0;font-size:18px;font-weight:600;color:#f1f5f9;flex-shrink:0}.btn-titan{padding:10px 20px;background:linear-gradient(135deg,#8b5cf633,#3b82f633);border:1px solid rgba(139,92,246,.4);border-radius:8px;color:#a78bfa;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;flex-shrink:0;margin-left:auto}.btn-titan:hover{background:linear-gradient(135deg,#8b5cf659,#3b82f659);border-color:#8b5cf699;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf640}.job-traceability{display:flex;gap:16px;margin-top:4px;font-size:11px;color:#94a3b8}.job-traceability .traceability-item{display:flex;align-items:center;gap:4px}.job-traceability .traceability-item strong{color:#cbd5e1;font-weight:500}.job-summary-inline{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;white-space:nowrap;flex:1;justify-content:center}.job-summary-inline .summary-item{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.job-summary-inline .summary-item.passed{background:#a855f733;color:#a855f7}.job-summary-inline .summary-item.failed,.job-summary-inline .summary-item.warning{background:#f59e0b33;color:#f59e0b}.job-summary-inline .summary-item.completed{background:#3b82f633;color:#3b82f6}.btn-view-json,.btn-export-pdf,.btn-add-comment,.btn-load-contours{padding:4px 10px;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:8px;white-space:nowrap;flex-shrink:0}.btn-view-json:hover,.btn-export-pdf:hover,.btn-add-comment:hover,.btn-load-contours:hover:not(:disabled){background:#64748b}.btn-load-contours:disabled{opacity:.5;cursor:not-allowed}.btn-load-contours.loaded{background:#22c55e33;border:1px solid rgba(34,197,94,.4);color:#22c55e}.btn-load-contours.loaded:hover:not(:disabled){background:#22c55e59;border-color:#22c55e99}.btn-toggle-contours{padding:4px 10px;background:#3b82f633;border:1px solid rgba(59,130,246,.4);border-radius:4px;color:#60a5fa;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:8px;white-space:nowrap;flex-shrink:0}.btn-toggle-contours:hover{background:#3b82f659;border-color:#3b82f699}.btn-toggle-contours.active{background:#3b82f666;border-color:#3b82f6;color:#93c5fd}.btn-export-pdf{background:#a855f733;border:1px solid rgba(168,85,247,.4);color:#a855f7}.btn-export-pdf:hover{background:#a855f759;border-color:#a855f799}.btn-add-comment{background:#3b82f633;border:1px solid rgba(59,130,246,.4);color:#60a5fa}.btn-add-comment:hover{background:#3b82f659;border-color:#3b82f699}.btn-add-comment.active{background:#3b82f666;border-color:#3b82f6;color:#93c5fd}.drawing-nav{display:flex;align-items:center;gap:8px;flex-shrink:0}.drawing-nav .nav-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:14px;cursor:pointer;transition:all .2s ease}.drawing-nav .nav-btn:hover{background:#64748b}.drawing-nav .nav-indicator{color:#94a3b8;font-size:12px;min-width:50px;text-align:center}.drawing-selector-bar{display:flex;align-items:center;gap:16px;background:#0f172acc;border-bottom:1px solid #334155;padding:8px 16px;overflow:hidden}.drawing-selector-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;flex:1;min-width:0}.drawing-selector-scroll::-webkit-scrollbar{height:4px}.drawing-selector-scroll::-webkit-scrollbar-track{background:transparent}.drawing-selector-scroll::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}.drawing-tab{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#94a3b8;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .2s ease;flex-shrink:0}.drawing-tab:hover{background:#334155;color:#e2e8f0}.drawing-tab.selected{background:#3b82f6;border-color:#3b82f6;color:#fff}.drawing-tab.has-issues{border-left:3px solid #ef4444}.drawing-tab.all-passed{border-left:3px solid #a855f7}.drawing-tab.selected.has-issues,.drawing-tab.selected.all-passed{border-left-color:transparent}.drawing-tab .tab-name{max-width:180px;overflow:hidden;text-overflow:ellipsis}.drawing-tab .tab-stats{display:flex;gap:4px}.drawing-tab .tab-stats .stat{padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600}.drawing-tab .tab-stats .stat.failed,.drawing-tab .tab-stats .stat.warning{background:#f59e0b4d;color:#fcd34d}.drawing-tab .tab-stats .stat.passed{background:#a855f74d;color:#c084fc}.drawing-tab.selected .tab-stats .stat{background:#fff3;color:#fff}.canvas-loading,.canvas-error{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#94a3b8;gap:12px}.canvas-loading .spinner{width:32px;height:32px;border:3px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}.loading-results{padding:24px;text-align:center;color:#64748b}.qc-viewer-content{display:flex;flex:1;overflow:hidden;width:100%;max-width:100%}.qc-viewer-canvas-section{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid #334155;min-width:0;max-width:100%;width:0}.drawing-selector-bar .zoom-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.qc-viewer-canvas-section .zoom-controls{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#0f172acc;border-bottom:1px solid #334155}.drawing-selector-bar .zoom-controls button{height:28px;display:flex;align-items:center;justify-content:center;background:#475569;border:none;border-radius:4px;color:#e2e8f0;cursor:pointer;transition:all .2s ease;white-space:nowrap}.drawing-selector-bar .zoom-controls button:hover{background:#64748b}.qc-viewer-canvas-section .zoom-controls button{height:28px;display:flex;align-items:center;justify-content:center;background:#475569;border:none;border-radius:4px;color:#e2e8f0;cursor:pointer;transition:all .2s ease;white-space:nowrap}.qc-viewer-canvas-section .zoom-controls button:hover{background:#64748b}.drawing-selector-bar .zoom-controls .zoom-btn-icon{width:28px;font-size:16px}.drawing-selector-bar .zoom-controls .zoom-btn-text{min-width:60px;padding:0 12px;font-size:13px;font-weight:500}.drawing-selector-bar .zoom-controls span{color:#94a3b8;font-size:12px;min-width:45px;text-align:center}.qc-viewer-canvas-section .zoom-controls .zoom-btn-icon{width:28px;font-size:16px}.qc-viewer-canvas-section .zoom-controls .zoom-btn-text{min-width:60px;padding:0 12px;font-size:13px;font-weight:500}.qc-viewer-canvas-section .zoom-controls span{color:#94a3b8;font-size:12px;min-width:45px;text-align:center}.qc-viewer-canvas-section .zoom-hint{color:#64748b!important;font-style:italic;margin-left:auto}.drawing-selector-bar .color-legend{display:flex;align-items:center;gap:16px;font-size:12px;flex-shrink:0}.color-legend{display:flex;gap:16px;padding:8px 16px;background:#1e293b99;border-bottom:1px solid #334155;font-size:12px}.color-legend .legend-item{display:flex;align-items:center;gap:6px}.color-legend .legend-item.failed,.color-legend .legend-item.warning{color:#f59e0b}.color-legend .legend-item.passed{color:#a855f7}.image-scroll-container{flex:1;overflow:auto;background:#0a0f1a;position:relative;min-width:0;min-height:0;width:100%;height:100%;display:block;padding:0;margin:0}.image-scroll-container img{display:block;height:auto;-webkit-user-select:none;user-select:none}.zoom-wrapper{display:inline-block;position:relative;margin:0;padding:0;line-height:0;vertical-align:top}.image-with-overlay{position:relative;display:inline-block;line-height:0;vertical-align:top;margin:0;padding:0}.bbox-overlay-svg{position:absolute;top:0;left:0;pointer-events:none}.bbox-overlay-svg .bbox-rect{transition:all .2s ease}.bbox-overlay-svg .bbox-rect.selected{filter:drop-shadow(0 0 8px currentColor)}.no-image{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px}.qc-viewer-results-section{width:380px;min-width:380px;flex-shrink:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#1e293b,#0f172a);transition:width .3s ease,min-width .3s ease}.qc-viewer-results-section.collapsed{width:50px;min-width:50px}.results-panel-header{display:flex;flex-direction:column;gap:0;padding:0;background:#0f172a99;border-bottom:1px solid #334155}.results-panel-header h3{margin:0;font-size:14px;font-weight:600;color:#e2e8f0}.results-tabs{display:flex;align-items:center;gap:6px;border-bottom:1px solid #334155;padding:8px 12px;flex-wrap:nowrap}.results-tab{padding:8px 12px;border:none;background:transparent;color:#64748b;font-size:13px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s;margin-bottom:-1px;position:relative;box-shadow:none;outline:none;border-radius:0;flex-shrink:0;white-space:nowrap}.results-tab:hover{color:#cbd5e1;background:transparent}.results-tab:focus{outline:none;border:none;box-shadow:none}.results-tab:focus-visible{outline:none;border:none;box-shadow:none}.results-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;border-bottom-width:2px;border-bottom-style:solid;background:transparent;border-top:none;border-left:none;border-right:none}.toggle-passed-inline{display:flex;align-items:center;gap:4px;color:#94a3b8;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:4px;transition:background .2s ease;flex-shrink:0;white-space:nowrap}.toggle-passed-inline:hover{background:#3b82f61a}.toggle-passed-inline input{accent-color:#3b82f6;cursor:pointer;margin:0}.toggle-passed-icon{font-size:14px;color:#3b82f6;font-weight:600}.results-panel-collapse-btn{padding:4px 6px;background:transparent;border:none;color:#94a3b8;font-size:14px;cursor:pointer;border-radius:4px;transition:all .2s ease;flex-shrink:0;white-space:nowrap;margin-left:auto;min-width:28px;display:flex;align-items:center;justify-content:center}.results-panel-collapse-btn:hover{background:#3b82f61a;color:#3b82f6}.results-panel-collapsed{width:100%;height:100%;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#0f172a99;border-left:2px solid #334155}.results-panel-collapsed-tabs{display:flex;flex-direction:column;gap:8px;padding:12px 4px;height:100%;justify-content:flex-start;align-items:center}.results-panel-collapsed-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;background:transparent;border:none;color:#64748b;font-size:10px;cursor:pointer;border-radius:4px;transition:all .2s ease;min-width:40px;gap:4px;border-left:2px solid transparent}.results-panel-collapsed-tab:hover{background:#3b82f61a;color:#cbd5e1}.results-panel-collapsed-tab.active{color:#3b82f6;border-left-color:#3b82f6;background:#3b82f61a}.collapsed-tab-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.collapsed-tab-count{font-size:12px;font-weight:700;color:inherit}.results-cards-container{flex:1;overflow-y:auto;padding:12px 12px 350px;display:flex;flex-direction:column;gap:10px;min-height:0}.no-results-message{color:#64748b;text-align:center;padding:24px;font-style:italic}.result-card{background:#1e293b99;border:1px solid #334155;border-radius:8px;padding:12px;cursor:pointer;transition:all .2s ease;border-left:3px solid #64748b}.result-card:hover{background:#1e293be6;transform:translate(2px)}.result-card.selected{background:#3b82f640!important;border-color:#3b82f6!important;border-width:2px!important;border-left-width:5px!important;border-left-color:#3b82f6!important;box-shadow:0 0 0 2px #3b82f640,0 4px 16px #3b82f633;padding:11px 11px 11px 10px}.result-card.selected:hover{background:#3b82f64d!important}.result-card.failed,.result-card.warning{border-left-color:#f59e0b}.result-card.passed{border-left-color:#a855f7}.result-card.error{border-left-color:#dc2626}.result-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.result-card-header .header-left-content{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.result-card-header .status-icon{font-size:16px;font-weight:700;flex-shrink:0}.result-card-header .rule-name{font-size:13px;font-weight:600;color:#f1f5f9;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-card-header .btn-reset{background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;padding:4px 8px;transition:all .2s ease;flex-shrink:0;line-height:1}.result-card-header .btn-reset:hover{background:#334155;border-color:#64748b;color:#cbd5e1}.result-card-header .bulk-select-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0;margin:0}.result-card-body{margin-bottom:10px}.result-card-body .result-message{margin:0;font-size:12px;color:#94a3b8;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-extraction-item{display:flex;align-items:center;margin-top:8px;padding:4px 8px;background:#3b82f61a;border-left:2px solid #3b82f6;border-radius:4px;font-size:11px}.result-extraction-item .extraction-value{color:#60a5fa;font-weight:500;font-family:Monaco,Menlo,monospace}.result-tag{display:flex;align-items:center;gap:6px;margin-top:8px;padding:4px 8px;background:#0f172a80;border-radius:4px;font-size:11px}.result-tag .tag-label{color:#64748b}.result-tag .tag-value{color:#60a5fa;font-weight:500;font-family:Monaco,Menlo,monospace}.result-property{display:flex;align-items:center;gap:6px;margin-top:6px;padding:6px 8px;background:#a855f71a;border-left:2px solid #a855f7;border-radius:4px;font-size:11px}.result-property .property-label{color:#94a3b8;font-weight:500}.result-property .property-value{color:#a855f7;font-weight:600;font-family:Monaco,Menlo,monospace}.no-bbox-warning{margin-top:8px;padding:4px 8px;background:#f59e0b1a;border-radius:4px;font-size:11px;color:#f59e0b}.result-card-footer{display:flex;justify-content:space-between;align-items:center}.result-card-footer .status-badge{padding:2px 8px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.result-card-footer .status-badge.passed{background:#a855f733;color:#a855f7}.result-card-footer .status-badge.failed,.result-card-footer .status-badge.warning{background:#f59e0b33;color:#f59e0b}.result-card-footer .status-badge.error{background:#dc262633;color:#f87171}.result-card-footer .view-hint{color:#64748b;font-size:10px;font-style:italic}.result-card.recommendation-accepted{border-left-color:#22c55e;background:#22c55e0d}.result-card.recommendation-edited{border-left-color:#3b82f6;background:#3b82f60d}.result-card.recommendation-declined{opacity:.5;border-left-color:#64748b}.recommendation-buttons{display:flex;gap:6px;flex-wrap:wrap}.btn-recommendation{padding:4px 12px;border:none;border-radius:4px;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s}.btn-recommendation:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-recommendation.btn-accept{background:#22c55e;color:#fff}.btn-recommendation.btn-accept:hover{background:#16a34a}.btn-recommendation.btn-edit{background:#3b82f6;color:#fff}.btn-recommendation.btn-edit:hover{background:#2563eb}.btn-recommendation.btn-delete{background:#ef4444;color:#fff}.btn-recommendation.btn-delete:hover{background:#dc2626}.btn-recommendation.btn-decline{background:#64748b;color:#fff}.btn-recommendation.btn-decline:hover{background:#475569}.recommendation-status-badge{padding:2px 8px;border-radius:3px;font-size:10px;font-weight:600;letter-spacing:.5px}.recommendation-status-badge.accepted{background:#22c55e33;color:#22c55e}.recommendation-status-badge.edited{background:#3b82f633;color:#3b82f6}.recommendation-status-badge.declined{background:#64748b33;color:#94a3b8}.recommendation-status-badge.pending{background:#f59e0b33;color:#fbbf24}.recommendation-status-section{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.recommendation-traceability{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:9px;color:#64748b}.recommendation-traceability .traceability-user{display:flex;align-items:center}.recommendation-traceability .traceability-user strong{color:#94a3b8;font-weight:500;font-style:normal}.recommendation-traceability .traceability-timestamp{display:flex;align-items:center;color:#64748b;font-style:italic}.edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.edit-modal{background:#1e293b;border:1px solid #334155;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000004d}.edit-modal-header{padding:20px;border-bottom:1px solid #334155;display:flex;justify-content:space-between;align-items:center}.edit-modal-header h3{margin:0;color:#f1f5f9;font-size:18px}.edit-modal-body{padding:20px;overflow-y:auto;flex:1}.edit-info{margin-bottom:20px;padding:12px;background:#0f172a80;border-radius:4px}.edit-info p{margin:4px 0;color:#cbd5e1;font-size:13px}.edit-info strong{color:#f1f5f9}.edit-original{margin-bottom:16px}.edit-original label{display:block;margin-bottom:8px;color:#94a3b8;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.original-message{padding:12px;background:#0f172a80;border:1px solid #334155;border-radius:4px;color:#cbd5e1;font-size:13px;font-style:italic}.edit-comment label{display:block;margin-bottom:8px;color:#94a3b8;font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.edit-comment textarea{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#f1f5f9;font-size:13px;font-family:inherit;resize:vertical;min-height:100px}.edit-comment textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.edit-modal-footer{padding:16px 20px;border-top:1px solid #334155;display:flex;justify-content:flex-end;gap:12px}.btn-cancel{padding:8px 16px;background:transparent;border:1px solid #475569;border-radius:4px;color:#cbd5e1;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel:hover{background:#47556933;border-color:#64748b}.btn-save{padding:8px 16px;background:#3b82f6;border:none;border-radius:4px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-save:hover{background:#2563eb}.declined-count{color:#94a3b8;font-size:.9em;font-weight:400}.results-cards-container::-webkit-scrollbar,.image-scroll-container::-webkit-scrollbar{width:8px;height:8px}.results-cards-container::-webkit-scrollbar-track,.image-scroll-container::-webkit-scrollbar-track{background:#0f172a}.results-cards-container::-webkit-scrollbar-thumb,.image-scroll-container::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.results-cards-container::-webkit-scrollbar-thumb:hover,.image-scroll-container::-webkit-scrollbar-thumb:hover{background:#475569}.comment-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;z-index:1000;pointer-events:none}.comment-modal-overlay>*{pointer-events:auto}.comment-modal{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #475569;border-radius:12px;padding:0;width:100%;max-width:400px;box-shadow:0 25px 60px #00000080;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none}.comment-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #334155;cursor:grab;-webkit-user-select:none;user-select:none}.comment-modal-header:active{cursor:grabbing}.comment-modal-header h3{margin:0;font-size:1.1rem;color:#f1f5f9}.comment-modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.comment-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #334155}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;color:#cbd5e1;font-weight:500}.color-picker{display:flex;gap:.75rem;align-items:center}.color-option{width:40px;height:40px;border-radius:8px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0003}.color-option:hover{transform:scale(1.1);box-shadow:0 4px 8px #0000004d}.color-option.selected{transform:scale(1.15);box-shadow:0 0 0 2px #ffffff80,0 4px 12px #0006}.btn-pick-anchor{padding:.75rem 1rem;background:#475569;border:1px solid #64748b;border-radius:6px;color:#e2e8f0;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%}.btn-pick-anchor:hover{background:#64748b;border-color:#94a3b8}.btn-pick-anchor.active{background:#3b82f6;border-color:#2563eb;color:#fff}.anchor-info{font-size:.85rem;color:#94a3b8;font-style:italic;margin-top:.25rem}.json-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000}.json-modal{background:#1e293b;border-radius:12px;border:1px solid #334155;width:90%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.json-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}.json-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#f1f5f9}.btn-close-modal{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;color:#94a3b8;font-size:28px;cursor:pointer;transition:all .2s ease;line-height:1}.btn-close-modal:hover{background:#334155;color:#f1f5f9}.json-modal-body{flex:1;overflow:auto;padding:24px;background:#0f172a}.json-content{margin:0;padding:16px;background:#0a0f1a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-family:Monaco,Menlo,Courier New,monospace;font-size:13px;line-height:1.6;overflow-x:auto;white-space:pre}.json-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155;background:#1e293b}.btn-copy-json,.json-modal-footer .btn-close{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-copy-json{background:#3b82f6;color:#fff}.btn-copy-json:hover{background:#2563eb}.json-modal-footer .btn-close{background:#475569;color:#e2e8f0}.json-modal-footer .btn-close:hover{background:#64748b}.json-modal-body::-webkit-scrollbar,.json-content::-webkit-scrollbar{width:8px;height:8px}.json-modal-body::-webkit-scrollbar-track,.json-content::-webkit-scrollbar-track{background:#0f172a}.json-modal-body::-webkit-scrollbar-thumb,.json-content::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}.json-modal-body::-webkit-scrollbar-thumb:hover,.json-content::-webkit-scrollbar-thumb:hover{background:#475569}@media (max-width: 1200px){.qc-viewer-results-section{width:320px;min-width:320px}}@media (max-width: 900px){.qc-viewer-content{flex-direction:column}.qc-viewer-canvas-section{height:50%;border-right:none;border-bottom:1px solid #334155}.qc-viewer-results-section{width:100%;min-width:unset;height:50%}.json-modal{width:95%;max-height:85vh}.json-modal-header,.json-modal-footer,.json-modal-body{padding:16px}}.extraction-results-section{position:fixed;bottom:0;left:0;right:0;background:#1e293b;border-top:2px solid #334155;z-index:100;transition:max-height .3s ease;max-height:30vh;display:flex;flex-direction:column;box-shadow:0 -2px 10px #0000004d}.qc-results-viewer:has(.extraction-results-section.expanded) .qc-viewer-content{padding-bottom:0}.extraction-results-section.collapsed{max-height:50px;overflow:hidden}.extraction-results-section.expanded{max-height:30vh;height:30vh}.extraction-results-collapsed{display:flex;align-items:center;justify-content:center;height:50px;cursor:pointer;background:#0f172a;border-top:1px solid #334155}.extraction-results-collapsed-tabs{display:flex;gap:4px;padding:0 12px;width:100%;justify-content:center;align-items:center;height:100%}.extraction-results-collapsed-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 12px;background:transparent;border:none;color:#64748b;font-size:10px;cursor:pointer;border-radius:4px;transition:all .2s ease;gap:2px;border-bottom:2px solid transparent;min-width:60px}.extraction-results-collapsed-tab:hover{background:#3b82f61a;color:#cbd5e1}.extraction-results-collapsed-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#3b82f61a}.extraction-results-collapsed-tab .collapsed-tab-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.extraction-results-collapsed-tab .collapsed-tab-count{font-size:11px;font-weight:700;color:inherit}.extraction-results-header-row{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:#0f172a;border-bottom:1px solid #334155;flex-shrink:0;min-height:44px;gap:12px}.extraction-results-header-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0;overflow:hidden}.extraction-results-header-right{display:flex;align-items:center;flex-shrink:0}.extraction-results-collapse-btn{display:flex;align-items:center;justify-content:center;padding:6px 8px;background:transparent;border:none;color:#94a3b8;font-size:12px;cursor:pointer;border-radius:4px;transition:all .2s ease;flex-shrink:0}.extraction-results-collapse-btn:hover{background:#3b82f61a;color:#3b82f6}.toggle-icon{font-size:12px;color:#94a3b8;transition:transform .2s}.extraction-results-section.expanded .toggle-icon{transform:rotate(0)}.extraction-results-section.collapsed .toggle-icon{transform:rotate(180deg)}.extraction-results-content{display:flex;flex-direction:column;flex:1;overflow:hidden;background:#0f172a}.extraction-result-tabs{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;flex:1;min-width:0;scrollbar-width:thin;scrollbar-color:#475569 transparent}.extraction-result-tabs::-webkit-scrollbar{height:4px}.extraction-result-tabs::-webkit-scrollbar-track{background:transparent}.extraction-result-tabs::-webkit-scrollbar-thumb{background:#475569;border-radius:2px}.extraction-result-tabs::-webkit-scrollbar-thumb:hover{background:#64748b}.extraction-result-tab{padding:6px 10px;background:transparent;border:none;border-bottom:2px solid transparent;border-radius:0;color:#94a3b8;cursor:pointer;font-size:.8em;white-space:nowrap;transition:all .2s;flex-shrink:0;margin-bottom:-1px}.extraction-result-tab:hover{color:#cbd5e1;background:transparent}.extraction-result-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;border-bottom-width:2px;border-bottom-style:solid;background:transparent;border-top:none;border-left:none;border-right:none}.extraction-results-table-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 12px 8px;min-height:0}.extraction-results-table{width:100%;border-collapse:collapse;font-size:.85em}.extraction-results-table thead{position:sticky;top:0;z-index:20;margin-top:0}.extraction-results-table th{padding:8px 8px 6px;text-align:left;border-bottom:2px solid #334155;color:#e2e8f0;font-weight:600;background:#0f172a;font-size:.9em;box-shadow:0 2px 2px -1px #0000004d}.extraction-results-table{margin-top:8px}.extraction-results-table tbody tr{border-bottom:1px solid #334155;transition:background .15s}.extraction-results-table tbody tr:hover{background:#1e293b}.extraction-results-table tbody tr[style*="cursor: pointer"]:hover{background:#334155}.extraction-results-table td{padding:6px 8px;color:#e2e8f0}.extraction-results-table tbody tr:nth-child(2n){background:#0f172a}.extraction-results-table tbody tr:nth-child(2n):hover{background:#1e293b}.extraction-results-table tbody tr.extraction-row-highlighted{background:#3b82f633!important;border-left:3px solid #3b82f6}.extraction-results-table tbody tr.extraction-row-highlighted:hover{background:#3b82f64d!important}.bbox-filter-dropdown{position:relative}.bbox-filter-button{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#334155;border:1px solid #475569;border-radius:4px;color:#e2e8f0;font-size:.85em;cursor:pointer;transition:all .2s;white-space:nowrap}.bbox-filter-button:hover{background:#475569;border-color:#64748b}.dropdown-arrow{font-size:.7em;color:#94a3b8}.bbox-filter-menu{position:absolute;bottom:100%;right:0;margin-bottom:4px;background:#1e293b;border:1px solid #334155;border-radius:6px;padding:8px;min-width:220px;max-height:300px;overflow-y:auto;z-index:1000;box-shadow:0 4px 12px #0000004d}.bbox-filter-menu-actions{display:flex;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #334155}.bbox-filter-action-btn{flex:1;padding:6px 8px;background:#334155;border:1px solid #475569;border-radius:4px;color:#e2e8f0;font-size:.8em;cursor:pointer;transition:all .2s}.bbox-filter-action-btn:hover{background:#475569;border-color:#64748b}.bbox-filter-menu-header{font-weight:600;color:#e2e8f0;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #334155;font-size:.9em}.bbox-filter-item{display:flex;align-items:center;gap:8px;padding:6px 4px;cursor:pointer;color:#e2e8f0;font-size:.85em;transition:background .15s;border-radius:4px}.bbox-filter-item:hover{background:#334155}.bbox-filter-item input[type=checkbox]{cursor:pointer;margin:0}.bbox-color-indicator{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.3);flex-shrink:0}.bbox-filter-item:has(input:not(:checked)) .bbox-color-indicator{opacity:.5}.qc-comment-confirmation-modal{max-width:600px;max-height:80vh;display:flex;flex-direction:column}.qc-comment-confirmation-modal .modal-body{max-height:60vh;overflow-y:auto}.comment-preview-summary{display:flex;flex-direction:column;gap:16px}.preview-intro{font-size:15px;color:#e2e8f0;margin:0}.preview-intro strong{color:#3b82f6;font-weight:600}.preview-warning{background:#422006;border:1px solid #854d0e;color:#fcd34d;padding:12px;border-radius:6px;font-size:13px}.preview-warning strong{font-weight:600}.color-breakdown{display:flex;flex-direction:column;gap:8px}.color-breakdown strong{color:#cbd5e1;font-size:13px;font-weight:600}.color-tags{display:flex;flex-wrap:wrap;gap:8px}.color-tag{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;background:#334155;color:#e2e8f0}.color-tag.color-red{background:#7f1d1d;color:#fca5a5}.color-tag.color-green{background:#14532d;color:#86efac}.color-tag.color-blue{background:#1e3a8a;color:#93c5fd}.comment-preview-list{display:flex;flex-direction:column;gap:8px}.comment-preview-list strong{color:#cbd5e1;font-size:13px;font-weight:600}.preview-comments{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px}.preview-comment-item{display:flex;align-items:flex-start;gap:8px;padding:8px;background:#1e293b;border-radius:4px;font-size:13px}.comment-color-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:2px}.comment-color-indicator.color-red{background:#ef4444}.comment-color-indicator.color-green{background:#22c55e}.comment-color-indicator.color-blue{background:#3b82f6}.comment-text{color:#e2e8f0;flex:1;line-height:1.4}.preview-more{padding:8px;text-align:center;color:#94a3b8;font-size:12px;font-style:italic}.invalid-comments{display:flex;flex-direction:column;gap:8px;margin-top:8px}.invalid-comments strong{color:#fca5a5;font-size:13px;font-weight:600}.invalid-list{display:flex;flex-direction:column;gap:6px;background:#450a0a;border:1px solid #7f1d1d;border-radius:6px;padding:12px;max-height:150px;overflow-y:auto}.invalid-item{padding:6px 8px;background:#7f1d1d;border-radius:4px;font-size:12px}.invalid-reason{color:#fca5a5}.invalid-more{padding:6px 8px;text-align:center;color:#fca5a5;font-size:11px;font-style:italic}.qc-comment-confirmation-modal .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid #334155}.qc-comment-confirmation-modal .confirm-btn{padding:10px 20px;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer}.qc-comment-confirmation-modal .confirm-btn:hover{background:#2563eb}.qc-comment-confirmation-modal .cancel-btn{padding:10px 20px;background:#334155;border:none;border-radius:6px;color:#f1f5f9;font-size:14px;cursor:pointer}.qc-comment-confirmation-modal .cancel-btn:hover{background:#475569}.bulk-action-footer{position:sticky;bottom:50px;background:linear-gradient(180deg,#0f172a,#1e293b);border-top:1px solid #334155;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;z-index:101;box-shadow:0 -4px 12px #0000004d;margin-top:auto}.qc-results-viewer:has(.extraction-results-section.expanded) .bulk-action-footer{bottom:30vh}.bulk-action-info{color:#cbd5e1;font-size:12px;font-weight:500;flex-shrink:0}.bulk-action-buttons{display:flex;gap:6px;flex-wrap:nowrap}.btn-bulk-accept,.btn-bulk-decline,.btn-bulk-delete{padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-bulk-accept{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;box-shadow:0 2px 8px #22c55e4d}.btn-bulk-accept:hover{background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-1px);box-shadow:0 4px 12px #22c55e66}.btn-bulk-decline{background:linear-gradient(135deg,#64748b,#475569);color:#fff;box-shadow:0 2px 8px #64748b4d}.btn-bulk-decline:hover{background:linear-gradient(135deg,#475569,#334155);transform:translateY(-1px);box-shadow:0 4px 12px #64748b66}.btn-bulk-delete{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;box-shadow:0 2px 8px #ef44444d}.btn-bulk-delete:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.drawing-qc-panel{padding:24px;height:100%;display:flex;flex-direction:column;overflow:hidden}.qc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #334155}.header-actions{display:flex;align-items:center;gap:12px}.btn-delete-batch{padding:10px 20px;background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:6px;color:#f87171;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-delete-batch:hover:not(:disabled){background:#ef444440;border-color:#ef444499;transform:translateY(-1px)}.btn-delete-batch:disabled{opacity:.5;cursor:not-allowed}.header-info h2{margin:0 0 8px;color:#f1f5f9;font-size:24px;font-weight:600}.header-description{margin:0;color:#94a3b8;font-size:14px}.btn-new-job{padding:12px 24px;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #10b9814d}.btn-new-job:hover{background:linear-gradient(135deg,#059669,#047857);transform:translateY(-1px);box-shadow:0 4px 12px #10b98166}.error-banner{padding:12px 18px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px;font-weight:500;margin-bottom:16px}.filter-select{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:13px;min-width:140px;cursor:pointer;transition:border-color .15s}.filter-select:focus{outline:none;border-color:#3b82f6}.filter-select:hover{border-color:#475569}.qc-jobs-table-container{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;border-radius:8px;border:1px solid #334155;background:linear-gradient(180deg,#1e293b,#0f172a)}.qc-jobs-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:12px;table-layout:auto}.qc-jobs-table th{background:#0f172a;color:#94a3b8;font-weight:500;text-align:center;padding:10px 12px;border-bottom:1px solid #334155;white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.qc-jobs-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:#e2e8f0;vertical-align:middle}.qc-jobs-table tbody tr:hover{background:#3b82f60d}.qc-jobs-table tbody tr{border-left:3px solid transparent}.qc-jobs-table tbody tr.status-completed{border-left-color:#10b981}.qc-jobs-table tbody tr.status-running,.qc-jobs-table tbody tr.status-running-extraction,.qc-jobs-table tbody tr.status-running-qc{border-left-color:#3b82f6}.qc-jobs-table tbody tr.status-running-extraction{border-left-color:#f97316}.qc-jobs-table tbody tr.status-running-qc{border-left-color:#3b82f6}.qc-jobs-table tbody tr.status-failed{border-left-color:#ef4444}.qc-jobs-table tbody tr.status-pending{border-left-color:#f59e0b}.status-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.status-badge.status-pending{background:#f59e0b33;color:#f59e0b}.status-badge.status-running,.status-badge.status-running-extraction,.status-badge.status-running-qc{background:#3b82f633;color:#60a5fa}.status-badge.status-running-extraction{background:#f9731633;color:#fb923c}.status-badge.status-running-qc{background:#3b82f633;color:#60a5fa}.status-badge.status-completed{background:#10b98133;color:#10b981}.status-badge.status-failed{background:#ef444433;color:#f87171}.status-badge.status-cancelled{background:#64748b33;color:#64748b}.qc-results-breakdown{display:flex;gap:4px;align-items:center;justify-content:center}.qc-stat-box{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;color:#fff}.qc-stat-box.passed{background:#22c55e4d;border:1px solid rgba(34,197,94,.5);color:#4ade80}.qc-stat-box.failed{background:#ef44444d;border:1px solid rgba(239,68,68,.5);color:#f87171}.qc-stat-box.warning{background:#f973164d;border:1px solid rgba(249,115,22,.5);color:#fb923c}.extractions-breakdown{display:flex;gap:4px;justify-content:center;align-items:center}.extractions-breakdown .extract-item{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:500;color:#fff}.extractions-breakdown .extract-item.equipment{background:#ef44444d;border:1px solid rgba(239,68,68,.5)}.extractions-breakdown .extract-item.sizing{background:#22c55e4d;border:1px solid rgba(34,197,94,.5)}.extractions-breakdown .extract-item.process-line{background:#f973164d;border:1px solid rgba(249,115,22,.5)}.extractions-breakdown .extract-item.design-conditions{background:#a855f74d;border:1px solid rgba(168,85,247,.5)}.extractions-breakdown .extract-item.text{background:#3b82f64d;border:1px solid rgba(59,130,246,.5)}.result-passed{color:#10b981;font-weight:500}.result-failed{color:#f87171;font-weight:500}.result-warning{color:#f59e0b;font-weight:500}.btn-view{padding:4px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#60a5fa;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-view:hover{background:#3b82f640;border-color:#3b82f680}.checked-by-cell{text-align:center;color:#94a3b8;font-size:13px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-cell{text-align:center;color:#94a3b8;font-size:13px}.job-actions{display:flex;gap:6px;align-items:center;justify-content:center}.btn-rerun{padding:4px 8px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:4px;color:#22c55e;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-rerun:hover:not(:disabled){background:#22c55e33;border-color:#22c55e80}.btn-rerun:disabled{opacity:.4;cursor:not-allowed}.btn-rerun-extraction{padding:4px 8px;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:4px;color:#22c55e;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-rerun-extraction:hover:not(:disabled){background:#22c55e33;border-color:#22c55e80}.btn-rerun-extraction:disabled{opacity:.4;cursor:not-allowed}.btn-delete{padding:4px 8px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-delete:hover:not(:disabled){background:#ef444433;border-color:#ef444480}.btn-delete:disabled{opacity:.4;cursor:not-allowed}.loading,.empty-state{padding:40px;text-align:center;color:#64748b;font-size:14px}.qc-job-detail-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.btn-back{padding:5px 10px;background:#475569;border:none;border-radius:4px;color:#e2e8f0;font-size:12px;cursor:pointer;transition:all .2s ease}.btn-back:hover{background:#64748b}.qc-job-summary{display:flex;gap:16px;margin-bottom:24px;flex-wrap:wrap}.summary-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:8px;padding:16px;min-width:120px}.summary-label{font-size:12px;color:#94a3b8;margin-bottom:8px;text-transform:uppercase}.summary-value{font-size:20px;font-weight:600;color:#f1f5f9}.summary-value.passed{color:#10b981}.summary-value.failed{color:#f87171}.summary-value.warning{color:#f59e0b}.qc-job-results{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal-content{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000080}.modal-content.large{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid #334155;flex-shrink:0}.modal-header h3{margin:0;color:#f1f5f9;font-size:16px;font-weight:600}.modal-close{background:none;border:none;color:#64748b;font-size:24px;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s ease}.modal-close:hover{color:#f1f5f9}.modal-body{padding:16px 20px;flex:1;overflow-y:auto}.modal-section{padding:16px 24px;border-bottom:1px solid rgba(51,65,85,.5)}.modal-section:last-of-type{border-bottom:none}.form-group{margin-bottom:12px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:4px;color:#e2e8f0;font-size:13px;font-weight:600}.form-group .form-help-text{font-size:12px;color:#94a3b8;margin:-2px 0 6px;line-height:1.4}.form-group input[type=text],.form-group textarea{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f1f5f9;font-size:14px;font-family:inherit;transition:border-color .2s ease}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6}.form-group input[type=text]::placeholder,.form-group textarea::placeholder{color:#64748b}.form-group textarea{resize:vertical}.rules-list{max-height:180px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:6px}.checkbox-label{display:flex;align-items:center;gap:8px;padding:2px 4px;cursor:pointer;color:#e2e8f0;font-size:12px;border-radius:4px;transition:background .15s;min-height:24px}.checkbox-label:hover{background:#3b82f60d}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0;margin:0;align-self:center}.empty-message{color:#94a3b8;font-style:italic;padding:12px;font-size:12px;text-align:center}.drawings-tree{max-height:250px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:6px}.selected-count{margin-top:6px;padding:5px 10px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:4px;font-size:12px;color:#60a5fa;font-weight:500}.folder-item{margin-bottom:2px}.folder-header{display:flex;align-items:center;padding:4px 6px;gap:6px;min-height:24px}.folder-header input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;flex-shrink:0}.folder-toggle-btn{background:none;border:none;color:#94a3b8;cursor:pointer;padding:2px;width:18px;height:18px;font-size:10px;display:flex;align-items:center;justify-content:center;transition:color .15s;flex-shrink:0}.folder-toggle-btn:hover{color:#e2e8f0}.folder-name{font-weight:600;color:#e2e8f0;font-size:13px;display:flex;align-items:center;gap:6px;flex:1;min-width:0}.folder-revision-label{margin-left:8px;font-size:11px;color:#94a3b8;font-weight:400}.folder-count{font-size:11px;color:#94a3b8;flex-shrink:0;margin-left:auto}.folder-children{margin-left:28px;margin-top:2px}.drawing-item,.drawing-item.checkbox-label{display:flex!important;align-items:center!important;padding:2px 0;cursor:pointer;gap:8px;min-height:24px;line-height:1.2}.drawing-item:hover{background:#3b82f60d;border-radius:4px;padding-left:4px;padding-right:4px}.drawing-item input[type=checkbox],.drawing-item.checkbox-label input[type=checkbox]{width:16px!important;height:16px!important;flex-shrink:0!important;margin:0!important;cursor:pointer;accent-color:#3b82f6;align-self:center}.drawing-name{color:#e2e8f0;font-size:12px;display:flex;align-items:center;gap:6px;flex:1;min-width:0;line-height:1.2}.drawing-revision{margin-left:8px;font-size:11px;color:#94a3b8}.drawing-processed-icon{margin-left:8px;font-size:11px;color:#10b981}.loading-text,.empty-text{padding:8px;color:#94a3b8;font-size:12px;font-style:italic}.modal-footer{padding:10px 20px;border-top:1px solid #334155;display:flex;justify-content:flex-end;gap:10px;background:#0f172a80;flex-shrink:0}.btn-cancel,.btn-save{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease}.btn-cancel{background:#475569;color:#e2e8f0}.btn-cancel:hover:not(:disabled){background:#64748b}.btn-save{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-save:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8)}.btn-save:disabled{opacity:.5;cursor:not-allowed}.delete-modal{max-width:400px;height:auto;max-height:none;width:auto;min-height:auto}.delete-modal .modal-content{height:auto;max-height:none;min-height:auto}.delete-modal .modal-header{padding:8px 16px}.delete-modal .modal-header h3{font-size:15px}.delete-modal .modal-body{padding:12px 16px;flex:0 0 auto}.delete-warning{text-align:center;padding:0}.warning-icon{font-size:32px;margin-bottom:8px;line-height:1}.warning-text{color:#f1f5f9;font-size:14px;font-weight:500;margin:0 0 6px;line-height:1.4}.delete-detail{color:#94a3b8;font-size:12px;margin:4px 0 0;line-height:1.4}.delete-items-list{text-align:left;background:#0f172a80;border:1px solid #334155;border-radius:6px;padding:8px 12px;margin:8px 0;max-height:120px;overflow-y:auto}.items-list-label{color:#cbd5e1;font-size:12px;font-weight:600;margin:0 0 6px}.delete-items-list ul{margin:0;padding-left:18px;color:#e2e8f0;font-size:12px}.delete-items-list li{margin:3px 0;line-height:1.3}.delete-modal .modal-footer{padding:8px 16px}.delete-modal .btn-cancel,.delete-modal .btn-delete-confirm{padding:8px 16px;font-size:13px}.btn-delete-confirm{padding:10px 20px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #ef44444d}.btn-delete-confirm:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.btn-delete-confirm:disabled{opacity:.5;cursor:not-allowed}.job-name-text{color:#f1f5f9;font-weight:500}.sheets-selection-header{display:flex;gap:6px;margin-bottom:6px}.btn-select-all,.btn-select-none{padding:4px 10px;background:#334155;border:1px solid #475569;border-radius:4px;color:#e2e8f0;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-select-all:hover,.btn-select-none:hover{background:#475569;border-color:#64748b}.sheets-list{max-height:300px;overflow-y:auto;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:12px}.loading-sheets,.no-sheets{color:#64748b;font-style:italic;padding:20px;text-align:center}.sheet-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:4px;transition:background .2s ease}.sheet-item:hover{background:#3b82f61a}.sheet-name{flex:1;color:#e2e8f0;font-size:13px}.sheet-info{color:#64748b;font-size:11px}.qc-job-results h3{color:#e2e8f0;font-size:16px;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid #334155}.qc-job-results h3:first-child{margin-top:0}.json-results{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:16px;color:#94a3b8;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre-wrap;word-wrap:break-word}.no-results{color:#64748b;font-style:italic;padding:20px;text-align:center;background:#1e293b;border-radius:8px;margin-top:12px}.col-expand{width:40px;min-width:40px;max-width:40px;text-align:center;padding:0!important}.btn-expand-row{background:transparent;border:none;color:#64748b;cursor:pointer;padding:4px 8px;font-size:12px;border-radius:4px;transition:all .15s ease}.btn-expand-row:hover{background:#ffffff1a;color:#f1f5f9}.job-details-row{background:#0f172a99!important}.job-details-row>td{padding:0!important;border:none!important;border-left:3px solid #3b82f6!important;background:#0f172a99!important}.job-details-content{padding:16px 24px 16px 48px}.job-details-content h4{margin:0 0 12px;color:#94a3b8;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.qc-results-grid{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.qc-result-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:10px 16px;background:#1e293b99;border-radius:6px;border-left:3px solid #64748b;min-height:40px}.qc-result-item.job-success{border-left-color:#10b981}.qc-result-item.job-error{border-left-color:#ef4444}.qc-result-item.pending{border-left-color:#64748b}.qc-result-item .result-icon{text-align:center;font-size:14px;font-weight:700}.qc-result-item .result-icon.success{color:#10b981}.qc-result-item .result-icon.error{color:#ef4444}.qc-result-item .result-drawing{color:#e2e8f0;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-counts-breakdown{display:flex;flex-direction:row;gap:4px;align-items:center}.mini-count{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:600}.mini-count.passed{background:#10b9814d;border:1px solid rgba(16,185,129,.5);color:#10b981}.mini-count.failed{background:#ef44444d;border:1px solid rgba(239,68,68,.5);color:#ef4444}.mini-count.warning{background:#f973164d;border:1px solid rgba(249,115,22,.5);color:#f97316}.loading-drawings{color:#64748b;font-style:italic;padding:12px;text-align:center}.qc-drawing-results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:16px}.qc-drawing-result-card{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:10px;padding:16px;transition:all .2s ease}.qc-drawing-result-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.qc-drawing-result-card.has-issues{border-left:4px solid #ef4444}.qc-drawing-result-card.all-passed{border-left:4px solid #10b981}.drawing-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.drawing-result-header .drawing-id{font-size:13px;font-weight:500;color:#e2e8f0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.btn-view-drawing{padding:6px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-view-drawing:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.drawing-result-stats{display:flex;gap:8px;margin-bottom:10px}.drawing-result-stats .stat-box{display:flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 10px;border-radius:6px;font-size:13px;font-weight:600}.drawing-result-stats .stat-box.passed{background:#10b98133;border:1px solid rgba(16,185,129,.4);color:#10b981}.drawing-result-stats .stat-box.failed{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#f87171}.drawing-result-stats .stat-box.warning{background:#f9731633;border:1px solid rgba(249,115,22,.4);color:#fb923c}.issues-indicator{display:flex;gap:8px;flex-wrap:wrap}.issue-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500}.issue-badge.failed{background:#ef444426;color:#f87171}.issue-badge.warning{background:#f9731626;color:#fb923c}.detailed-results-section{margin-top:24px;background:#0f172a80;border:1px solid #334155;border-radius:8px}.detailed-results-section summary{padding:12px 16px;color:#94a3b8;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.detailed-results-section summary:hover{color:#e2e8f0}.detailed-results-section[open] summary{border-bottom:1px solid #334155;color:#e2e8f0}.detailed-results-section .json-results{margin:0;border-radius:0 0 8px 8px}.sidebar{display:flex;flex-direction:column;width:260px;min-width:260px;height:100%;background:#0f172a;border-right:1px solid #1e293b;transition:width .2s ease,min-width .2s ease;position:relative;z-index:50}.sidebar--collapsed{width:56px;min-width:56px}.sidebar__logo{padding:16px 12px;border-bottom:1px solid #1e293b;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar__logo-image{max-width:100%;height:auto;max-height:40px;object-fit:contain}.sidebar--collapsed .sidebar__logo{padding:12px 8px}.sidebar--collapsed .sidebar__logo-image{max-height:32px}.sidebar__header{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #1e293b;min-height:64px;position:relative;z-index:10;overflow:visible}.sidebar--collapsed .sidebar__header{flex-direction:column;padding:10px 8px;gap:10px}.sidebar__toggle{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#1e293b;border:1px solid #334155;border-radius:6px;color:#94a3b8;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.sidebar__toggle:hover{background:#334155;color:#e2e8f0}.sidebar-project-selector{flex:1;position:relative;z-index:100}.sidebar-project-selector--loading{color:#64748b;font-size:.8rem;padding:8px}.sidebar-project-selector--collapsed{display:flex;justify-content:center}.sidebar-project-selector__icon-btn{background:transparent;border:none;cursor:pointer;padding:0}.sidebar-project-selector__avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:8px;color:#fff;font-weight:600;font-size:.85rem}.sidebar-project-selector__trigger{display:flex;align-items:center;gap:10px;width:100%;padding:8px;background:#1e293b80;border:1px solid #334155;border-radius:8px;color:#e2e8f0;cursor:pointer;transition:background .15s,border-color .15s}.sidebar-project-selector__trigger:hover{background:#33415580;border-color:#475569}.sidebar-project-selector__info{flex:1;text-align:left;overflow:hidden}.sidebar-project-selector__label{display:block;font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.sidebar-project-selector__name{display:block;font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-project-selector__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 10px 40px #00000080;overflow:visible;z-index:9999;max-height:280px;overflow-y:auto;pointer-events:auto}.sidebar-project-selector__dropdown--collapsed{left:0;right:auto;min-width:220px}.sidebar-project-selector__option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;color:#cbd5e1;text-align:left;cursor:pointer;transition:background .15s;pointer-events:auto;position:relative;z-index:1}.sidebar-project-selector__option:hover{background:#3b82f61a}.sidebar-project-selector__option--active{background:#3b82f633}.sidebar-project-selector__option-avatar{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:6px;color:#fff;font-weight:600;font-size:.75rem;flex-shrink:0}.sidebar-project-selector__option-info{flex:1;overflow:hidden}.sidebar-project-selector__option-name{display:block;font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-project-selector__option-code{display:block;font-size:.7rem;color:#64748b;font-family:monospace}.sidebar__nav{flex:1;overflow-y:auto;padding:8px 0 16px}.sidebar__section{margin-bottom:4px}.sidebar__section-title{padding:12px 16px 4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#64748b;white-space:nowrap;overflow:hidden;min-height:28px}.sidebar--collapsed .sidebar__section-title{padding:8px 0 4px;text-align:center}.sidebar__items{list-style:none;margin:0;padding:0}.sidebar__item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:transparent;border:none;color:#cbd5e1;font-size:.875rem;text-align:left;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;overflow:hidden}.sidebar--collapsed .sidebar__item{justify-content:center;padding:10px}.sidebar__item:hover{background:#1e293b;color:#f1f5f9}.sidebar__item--active{background:#1e40af;color:#fff}.sidebar__item--active:hover{background:#1d4ed8;color:#fff}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:1rem;flex-shrink:0}.sidebar__item-label{overflow:hidden;text-overflow:ellipsis}.sidebar--collapsed .sidebar__item-label{display:none}.sidebar__nav::-webkit-scrollbar{width:6px}.sidebar__nav::-webkit-scrollbar-track{background:transparent}.sidebar__nav::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.sidebar__nav::-webkit-scrollbar-thumb:hover{background:#475569}.sidebar__footer{display:flex;align-items:center;gap:8px;padding:12px;border-top:1px solid #1e293b;background:#0f172a;flex-shrink:0}.sidebar--collapsed .sidebar__footer{flex-direction:column;padding:10px 8px;gap:8px}.sidebar__footer-user{flex:1;overflow:hidden}.sidebar__footer-user-name{display:block;font-size:.8rem;font-weight:500;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__footer-logout{border:1px solid #334155;background:#1e293bcc;color:#e2e8f0;padding:.5rem 1rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.sidebar--collapsed .sidebar__footer-logout{width:100%;padding:.5rem;font-size:1rem}.sidebar__footer-logout:hover:not(:disabled){background:#334155cc;border-color:#475569}.sidebar__footer-logout:disabled{opacity:.5;cursor:not-allowed}.portal-layout{min-height:100vh;background:#020617;color:#e2e8f0;display:flex;flex-direction:column}.portal-layout--authed{height:100vh;overflow:hidden}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:linear-gradient(180deg,#0f172af2,#0f172ad9);border-bottom:1px solid #1e293b;flex-shrink:0;z-index:100}.portal-header__brand{display:flex;align-items:center;gap:.75rem}.portal-header__icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#38bdf8,#2563eb);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;letter-spacing:.05em}.portal-header__titles{display:flex;flex-direction:column}.portal-header__title{margin:0;font-size:1rem;font-weight:600;line-height:1.2}.portal-header__subtitle{margin:0;color:#64748b;font-size:.75rem}.portal-header__session{display:flex;align-items:center;gap:1rem}.portal-header__user-name{margin:0;font-weight:500;font-size:.875rem;color:#cbd5e1}.portal-header__logout{border:1px solid #334155;background:#1e293bcc;color:#e2e8f0;padding:.5rem 1rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.portal-header__logout:hover:not(:disabled){background:#334155cc;border-color:#475569}.portal-header__logout:disabled{opacity:.5;cursor:not-allowed}.project-selector{position:relative}.project-selector--loading{color:#64748b;font-size:.875rem;padding:.5rem 1rem}.project-selector__trigger{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#1e293b99;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:.875rem;cursor:pointer;transition:background .15s,border-color .15s;min-width:200px}.project-selector__trigger:hover{background:#33415599;border-color:#475569}.project-selector__label{color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.project-selector__value{flex:1;text-align:left;font-weight:500}.project-selector__chevron{color:#64748b;font-size:.65rem}.project-selector__dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 10px 40px #00000080;overflow:hidden;z-index:1000;max-height:300px;overflow-y:auto}.project-selector__option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:#cbd5e1;font-size:.875rem;text-align:left;cursor:pointer;transition:background .15s}.project-selector__option:hover{background:#3b82f61a}.project-selector__option--active{background:#3b82f633;color:#60a5fa}.project-selector__option-name{font-weight:500}.project-selector__option-code{color:#64748b;font-size:.75rem;font-family:monospace}.portal-body{display:flex;flex:1;overflow:hidden}.portal-main{flex:1;min-height:0;display:flex;flex-direction:column;background:radial-gradient(circle at top left,rgba(37,99,235,.05),transparent 50%)}.portal-content{flex:1;min-height:0;overflow-y:auto;padding:1.5rem}.portal-content--loading,.portal-content--select{display:flex;align-items:center;justify-content:center}.portal-content__loader{color:#64748b;font-size:.95rem}.portal-content__message{text-align:center;max-width:400px}.portal-content__message h2{margin:0 0 .5rem;font-size:1.25rem;color:#e2e8f0}.portal-content__message p{margin:0;color:#94a3b8;font-size:.95rem}.create-project-prompt{display:flex;align-items:center;justify-content:center;flex:1;padding:2rem}.create-project-prompt__card{background:#0f172acc;border:1px solid #1e293b;border-radius:16px;padding:2.5rem;max-width:420px;width:100%;text-align:center;box-shadow:0 25px 60px #0006}.create-project-prompt__icon{font-size:3rem;margin-bottom:1rem}.create-project-prompt__card h2{margin:0 0 .5rem;font-size:1.5rem;color:#f1f5f9}.create-project-prompt__card>p{margin:0 0 1.5rem;color:#94a3b8;font-size:.95rem;line-height:1.5}.create-project-prompt__form{display:flex;flex-direction:column;gap:1rem;text-align:left}.create-project-prompt__field{display:flex;flex-direction:column;gap:.35rem}.create-project-prompt__field label{font-size:.8rem;font-weight:500;color:#94a3b8}.create-project-prompt__field input{padding:.75rem 1rem;background:#1e293b99;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:.95rem;transition:border-color .15s,background .15s}.create-project-prompt__field input:focus{outline:none;border-color:#3b82f6;background:#1e293bcc}.create-project-prompt__field input::placeholder{color:#475569}.create-project-prompt__error{margin:0;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:.85rem}.create-project-prompt__submit{margin-top:.5rem;padding:.85rem 1.5rem;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:8px;color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.create-project-prompt__submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px #2563eb66}.create-project-prompt__submit:disabled{opacity:.6;cursor:not-allowed}.settings-panel{height:100%;display:flex;flex-direction:column}.settings-tabs{display:flex;gap:4px;padding:12px 24px;background:linear-gradient(180deg,#1e293b,#0f172a);border-bottom:1px solid #334155}.settings-tab{padding:10px 20px;background:transparent;border:1px solid #334155;border-radius:8px;color:#94a3b8;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.settings-tab:hover{background:#3b82f61a;border-color:#3b82f64d;color:#e2e8f0}.settings-tab.active{background:#3b82f633;border-color:#3b82f6;color:#60a5fa}.settings-content{flex:1;overflow-y:auto}.projects-management{padding:0}.projects-management__loading{color:#64748b;padding:2rem;text-align:center}.projects-management__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem}.projects-management__header h2{margin:0 0 .25rem;font-size:1.5rem;color:#f1f5f9}.projects-management__subtitle{margin:0;color:#94a3b8;font-size:.9rem}.projects-management__create-btn{padding:.65rem 1.25rem;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;border-radius:8px;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s}.projects-management__create-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #2563eb66}.projects-management__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.projects-management__empty{grid-column:1 / -1;text-align:center;padding:3rem;background:#1e293b66;border-radius:12px;border:1px dashed #334155;color:#94a3b8}.projects-management__card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#1e293b80;border:1px solid #334155;border-radius:12px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.projects-management__card:hover{background:#33415580;border-color:#475569;transform:translateY(-2px)}.projects-management__card--active{background:#2563eb26;border-color:#3b82f6}.projects-management__card--active:hover{background:#2563eb33}.projects-management__card-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:10px;color:#fff;font-weight:600;font-size:1.1rem;flex-shrink:0}.projects-management__card-info{flex:1;min-width:0}.projects-management__card-info h4{margin:0 0 .2rem;font-size:1rem;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.projects-management__card-code{font-size:.75rem;color:#64748b;font-family:monospace}.projects-management__card-badge{padding:.25rem .6rem;background:#22c55e33;border:1px solid rgba(34,197,94,.3);border-radius:999px;color:#4ade80;font-size:.7rem;font-weight:600;text-transform:uppercase}.projects-management__form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.projects-management__form{background:#1e293b;border:1px solid #334155;border-radius:16px;padding:1.5rem;width:100%;max-width:400px;box-shadow:0 25px 60px #00000080}.projects-management__form h3{margin:0 0 1rem;font-size:1.2rem;color:#f1f5f9}.projects-management__field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.projects-management__field label{font-size:.8rem;font-weight:500;color:#94a3b8}.projects-management__field input{padding:.75rem 1rem;background:#0f172a99;border:1px solid #334155;border-radius:8px;color:#e2e8f0;font-size:.95rem;transition:border-color .15s}.projects-management__field input:focus{outline:none;border-color:#3b82f6}.projects-management__field input::placeholder{color:#475569}.projects-management__error{margin:0 0 1rem;padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:.85rem}.projects-management__form-actions{display:flex;gap:.75rem;justify-content:flex-end}.projects-management__form-actions button{padding:.65rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .15s}.projects-management__form-actions button:not(.primary){background:transparent;border:1px solid #334155;color:#cbd5e1}.projects-management__form-actions button:not(.primary):hover{background:#33415580}.projects-management__form-actions button.primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;color:#fff}.projects-management__form-actions button.primary:hover:not(:disabled){box-shadow:0 4px 12px #2563eb66}.projects-management__form-actions button:disabled{opacity:.5;cursor:not-allowed}.projects-management__card-delete{position:absolute;top:8px;right:8px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:#64748b;font-size:16px;cursor:pointer;opacity:0;transition:all .15s}.projects-management__card{position:relative}.projects-management__card:hover .projects-management__card-delete{opacity:1}.projects-management__card-delete:hover{background:#ef444433;color:#f87171}.projects-management__modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.projects-management__modal{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #475569;border-radius:12px;padding:1.5rem;width:100%;max-width:420px;box-shadow:0 25px 60px #00000080}.projects-management__modal h3{margin:0 0 .75rem;font-size:1.1rem;color:#f1f5f9}.projects-management__modal p{margin:0 0 .75rem;color:#cbd5e1;font-size:.95rem;line-height:1.5}.projects-management__modal-warning{padding:.75rem;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:6px;color:#f87171;font-size:.85rem}.projects-management__modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.projects-management__modal-actions button{padding:.6rem 1.25rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.projects-management__modal-actions button:not(.danger){background:#334155;border:1px solid #475569;color:#e2e8f0}.projects-management__modal-actions button:not(.danger):hover{background:#475569}.projects-management__modal-actions button.danger{background:#dc2626;border:1px solid #ef4444;color:#fff}.projects-management__modal-actions button.danger:hover{background:#b91c1c}.projects-management__modal-actions button:disabled{opacity:.5;cursor:not-allowed}.projects-management__details-panel{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:20px;margin-top:20px}.projects-management__details-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}.projects-management__details-title{display:flex;align-items:center;gap:12px}.projects-management__details-title h3{margin:0;font-size:18px;font-weight:600;color:#f1f5f9}.projects-management__details-actions{display:flex;align-items:center;gap:10px}.projects-management__select-btn{padding:8px 16px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.projects-management__select-btn:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.projects-management__delete-btn{padding:8px 16px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.projects-management__delete-btn:hover{background:#ef444440;border-color:#ef444480}.projects-management__details-code{font-size:12px;font-weight:500;color:#94a3b8;background:#0f172a;padding:4px 8px;border-radius:4px;font-family:SF Mono,Monaco,monospace}.projects-management__details-close{width:28px;height:28px;background:transparent;border:1px solid transparent;border-radius:6px;color:#64748b;font-size:18px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.projects-management__details-close:hover{background:#ffffff0d;color:#e2e8f0}.projects-management__details-loading,.projects-management__details-error{padding:24px;text-align:center;color:#94a3b8;font-size:14px}.projects-management__details-error{color:#f87171}.projects-management__details-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.projects-management__stat{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:12px;text-align:center}.projects-management__stat-icon{font-size:18px;margin-bottom:4px}.projects-management__stat-value{display:block;font-size:24px;font-weight:700;color:#f1f5f9;line-height:1.2}.projects-management__stat-label{display:block;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.projects-management__details-jobs{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:12px;margin-bottom:16px}.projects-management__details-jobs h4{margin:0 0 8px;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.projects-management__jobs-breakdown{display:flex;flex-wrap:wrap;gap:8px}.projects-management__job-stat{font-size:12px;font-weight:500;padding:4px 10px;border-radius:4px}.projects-management__job-stat.completed{background:#10b98126;color:#10b981}.projects-management__job-stat.failed{background:#ef444426;color:#f87171}.projects-management__job-stat.running{background:#3b82f626;color:#60a5fa}.projects-management__details-configs{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:12px;margin-bottom:16px}.projects-management__details-configs h4{margin:0 0 10px;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.projects-management__config-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:#e2e8f0}.projects-management__config-item:not(:last-child){border-bottom:1px solid #1e293b}.projects-management__config-item span:first-child{width:18px;text-align:center}.projects-management__config-item span:first-child.configured{color:#10b981}.projects-management__config-item span:first-child.default{color:#475569}.projects-management__config-item span:nth-child(2){flex:1}.projects-management__config-status{font-size:11px;font-weight:500;padding:2px 8px;border-radius:4px;background:#1e293b;color:#64748b}.projects-management__config-item .configured+span+.projects-management__config-status{background:#10b98126;color:#10b981}.projects-management__details-footer{font-size:12px;color:#64748b;text-align:center;padding-top:16px;margin-top:16px;border-top:1px solid #1e293b}.projects-management__details-body{display:flex;flex-direction:column;gap:16px}.projects-management__details-section{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:16px}.projects-management__details-section h4{margin:0 0 12px;font-size:12px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px}.projects-management__config-list{display:flex;flex-direction:column}.projects-management__card--viewing{border-color:#3b82f6;background:linear-gradient(180deg,#3b82f61a,#0f172af2)}.projects-management__card--viewing:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#3b82f6;border-radius:10px 0 0 10px}@media (max-width: 768px){.portal-header{flex-wrap:wrap;gap:.75rem}.project-selector{order:3;width:100%}.project-selector__trigger{width:100%}.portal-body{flex-direction:column}.sidebar{width:100%!important;min-width:100%!important;height:auto;border-right:none;border-bottom:1px solid #1e293b}.sidebar--collapsed{height:56px}}
