.ui-badge{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600;border-radius:var(--radius-xs);white-space:nowrap;text-transform:capitalize}.ui-badge--sm{padding:2px 6px;font-size:10px}.ui-badge--md{padding:4px 8px;font-size:11px}.ui-badge--lg{padding:6px 12px;font-size:12px}.ui-badge--default{background:var(--bg-tertiary);color:var(--text-secondary)}.ui-badge--primary{background:var(--accent-bg-subtle, rgba(59, 130, 246, .15));color:var(--accent-primary)}.ui-badge--success{background:var(--success-bg-subtle, rgba(34, 197, 94, .15));color:var(--success)}.ui-badge--warning{background:var(--warning-bg-subtle, rgba(245, 158, 11, .15));color:var(--warning)}.ui-badge--error{background:var(--error-bg-subtle, rgba(239, 68, 68, .15));color:var(--error)}.ui-badge--info{background:#6366f126;color:#818cf8}.ui-badge--dot{padding-left:6px}.ui-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.ui-badge--primary .ui-badge__dot{animation:badgePulse 1.5s ease-in-out infinite}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.4}}.ui-badge__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ui-badge__icon svg{width:12px;height:12px}.ui-badge[data-status=queued],.ui-badge[data-status=pending]{background:#6366f126;color:#818cf8}.ui-badge[data-status=processing],.ui-badge[data-status=running]{background:var(--accent-bg-subtle, rgba(59, 130, 246, .15));color:var(--accent-primary)}.ui-badge[data-status=completed],.ui-badge[data-status=success],.ui-badge[data-status=processed]{background:var(--success-bg-subtle, rgba(34, 197, 94, .15));color:var(--success)}.ui-badge[data-status=failed],.ui-badge[data-status=error]{background:var(--error-bg-subtle, rgba(239, 68, 68, .15));color:var(--error)}.ui-badge--revision{background:#a855f726;color:#c084fc;font-family:SF Mono,Menlo,monospace}.ui-badge--count{border-radius:10px;min-width:20px;justify-content:center}.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}.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}.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%}.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}.save-reference-modal .modal-content{width:90%;max-width:480px}.warning-banner{background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);color:var(--warning);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:13px;margin-bottom:var(--space-lg)}.shape-info{background:var(--bg-primary);border-radius:var(--radius-sm);padding:var(--space-md);margin-bottom:var(--space-xl)}.info-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--bg-secondary)}.info-row:last-child{border-bottom:none}.info-row .label{color:var(--text-muted);font-size:13px}.info-row .value{color:var(--text-primary);font-size:13px;font-family:SF Mono,Monaco,monospace}.form-group{margin-bottom:var(--space-lg)}.form-group label{display:block;color:var(--text-secondary);font-size:13px;font-weight:500;margin-bottom:var(--space-sm)}.form-group input,.form-group textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-primary)}.form-group .hint{display:block;color:var(--text-muted);font-size:12px;margin-top:var(--space-xs)}.error-message{background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);color:var(--error);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:13px;margin-top:var(--space-md)}.cancel-btn{padding:var(--space-sm) var(--space-lg);background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;cursor:pointer}.cancel-btn:hover{background:var(--bg-elevated)}.save-btn{padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:14px;font-weight:500;cursor:pointer}.save-btn:hover{background:var(--accent-secondary)}.save-btn:disabled,.cancel-btn:disabled{opacity:.5;cursor:not-allowed}.clusters-panel{display:flex;flex-direction:column;height:100%}.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}.empty-state{text-align:center;padding:40px;color:#94a3b8}.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}.side-by-side-modal .modal-content{background:var(--bg-secondary);border-radius:var(--radius-lg);width:95vw;height:90vh;display:flex;flex-direction:column;overflow:hidden}.side-by-side-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.side-by-side-modal .modal-header h3{margin:0;color:var(--text-primary);font-size:16px}.zoom-controls{display:flex;align-items:center;gap:var(--space-sm)}.zoom-controls button{padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:none;border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer}.zoom-controls span{min-width:60px;text-align:center;color:var(--text-muted)}.close-btn{width:36px;height:36px;background:var(--error);border:none;border-radius:50%;color:#fff;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:var(--error-muted)}.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:var(--space-sm) var(--space-lg);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:var(--bg-primary)}.canvas-viewport canvas{transform-origin:0 0}.side-by-side-modal .modal-footer{padding:var(--space-sm) var(--space-xl);background:var(--bg-primary);border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);font-size:12px}.pipeline-dashboard{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-page);color:var(--text-secondary);min-height:100vh;padding:var(--space-xl)}.pipeline-header{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);padding:var(--space-xl) var(--space-2xl);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);border:1px solid var(--border-color)}.pipeline-header h1{font-size:28px;font-weight:600;color:var(--accent-hover);margin:0 0 var(--space-sm)}.pipeline-header .subtitle{color:var(--text-muted);font-size:14px;margin:0}.match-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{padding:var(--space-lg);border-radius:var(--radius-lg);border:1px solid}.stat-card.excellent{background:linear-gradient(135deg,#064e3b,#065f46);border-color:var(--success)}.stat-card.good{background:linear-gradient(135deg,#78350f,#92400e);border-color:var(--warning)}.stat-card.poor{background:linear-gradient(135deg,#7f1d1d,#991b1b);border-color:var(--error)}.stat-card.no-match{background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-color:var(--bg-elevated)}.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm);opacity:.8}.stat-value{font-size:28px;font-weight:700}.stat-range{font-size:12px;opacity:.7;margin-top:var(--space-xs)}.search-bar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.search-bar input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px}.search-bar input:focus{outline:none;border-color:var(--accent-primary)}.btn-refresh{padding:var(--space-sm) var(--space-xl);background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-weight:500;cursor:pointer;transition:background var(--transition-normal)}.btn-refresh:hover{background:var(--accent-secondary)}.revision-filter{padding:var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;cursor:pointer;min-width:180px}.revision-filter:focus{outline:none;border-color:var(--accent-primary)}.drawing-count{display:flex;align-items:center;padding:0 var(--space-md);color:var(--text-muted);font-size:14px;white-space:nowrap}.main-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}@media (max-width: 1200px){.main-content{grid-template-columns:1fr}}.drawings-panel,.details-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-xl);max-height:600px;overflow:hidden;display:flex;flex-direction:column}.diff-tabs{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:2px solid var(--border-color);padding-bottom:var(--space-sm)}.diff-tab{padding:var(--space-sm) var(--space-lg);background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;cursor:pointer;transition:all var(--transition-normal)}.diff-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.diff-tab.active{background:var(--accent-primary);border-color:var(--accent-hover);color:#fff}.diff-content{flex:1;overflow-y:auto}.loading-spinner{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-3xl);color:var(--text-muted)}.pipeline-dashboard .empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted)}.pipeline-dashboard .badge-added{background:var(--success);color:#fff}.pipeline-dashboard .badge-removed{background:var(--error);color:#fff}.pipeline-dashboard .badge-modified{background:var(--warning);color:#fff}.pipeline-dashboard .badge-unchanged{background:var(--text-muted);color:#fff}.revision-tabs{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:2px solid var(--border-color)}.revision-tab{padding:var(--space-sm) var(--space-xl);background:none;border:none;border-bottom:3px solid transparent;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;transition:all var(--transition-normal)}.revision-tab:hover{color:var(--text-primary);border-bottom-color:var(--bg-elevated)}.revision-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-count{color:var(--text-muted);font-size:12px;margin-left:var(--space-xs)}.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}.ui-card{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-slow);display:flex;flex-direction:column;animation:cardFadeIn .3s ease}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.ui-card:hover{border-color:var(--bg-elevated);background:linear-gradient(180deg,#253449,#1a2540)}.ui-card--clickable{cursor:pointer}.ui-card--clickable:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.ui-card--folder{background:linear-gradient(180deg,var(--bg-primary) 0%,#020617 100%);text-align:center}.ui-card--folder:hover{border-color:var(--accent-primary);box-shadow:0 8px 24px #3b82f633}.ui-card--equipment{align-items:center;gap:var(--space-md);min-height:200px}.ui-card--shape{align-items:center;gap:var(--space-md)}.ui-card--inactive{opacity:.6}.ui-card--inactive:hover{opacity:.8}.ui-card--selected{border-color:var(--accent-primary);background:linear-gradient(180deg,#1e3a5f 0%,var(--bg-primary) 100%);box-shadow:0 4px 16px #3b82f64d}.ui-card--expanded{cursor:default;padding:0;overflow:hidden}.ui-card--expanded:hover{transform:none;box-shadow:0 4px 16px #0000004d}.ui-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.ui-card__header--expanded{padding:var(--space-lg) 20px;border-bottom:1px solid var(--border-color);background:linear-gradient(180deg,var(--bg-primary) 0%,#0a0f1a 100%)}.ui-card__header-content{flex:1;min-width:0}.ui-card__title-row{display:flex;align-items:center;gap:var(--space-sm)}.ui-card__title{font-size:16px;font-weight:600;color:var(--text-primary);margin:0;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-card__subtitle{font-size:12px;color:var(--text-muted);margin:4px 0 0}.ui-card__header-badge{flex-shrink:0}.ui-card__header-actions{display:flex;align-items:center;gap:var(--space-sm)}.ui-card__close-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.ui-card__close-btn:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--text-primary)}.ui-card__preview{flex-shrink:0;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden}.ui-card__preview--sm{width:60px;height:60px}.ui-card__preview--md{width:100px;height:100px}.ui-card__preview--lg{width:140px;height:140px}.ui-card__content{flex:1;min-width:0}.ui-card--expanded .ui-card__content{padding:var(--space-lg);max-height:400px;overflow-y:auto}.ui-card__actions{display:flex;align-items:center;gap:var(--space-sm)}.ui-card__actions--bottom{width:100%;margin-top:auto;padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.ui-card__actions--inline{justify-content:space-between}.ui-card__section{margin-bottom:20px}.ui-card__section:last-child{margin-bottom:0}.ui-card__section-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--space-lg) 0}.ui-card__info{text-align:center;width:100%}.ui-card__name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 4px;text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-card__count-badge{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;background:#3b82f633;color:var(--accent-hover)}.ui-card__toggle{position:relative;display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer}.ui-card__toggle input{opacity:0;width:0;height:0;position:absolute}.ui-card__toggle-slider{position:relative;width:40px;height:22px;background-color:var(--bg-elevated);border-radius:22px;transition:var(--transition-normal)}.ui-card__toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:3px;bottom:3px;background-color:var(--text-muted);border-radius:50%;transition:var(--transition-normal)}.ui-card__toggle input:checked+.ui-card__toggle-slider{background-color:var(--success-muted)}.ui-card__toggle input:checked+.ui-card__toggle-slider:before{transform:translate(18px);background-color:#fff}.ui-card__toggle-label{font-size:12px;color:var(--text-muted)}.ui-card__expand-btn{padding:5px 12px;border:none;border-radius:var(--radius-xs);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);background:var(--bg-tertiary);color:var(--text-muted)}.ui-card__expand-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.ui-card__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:var(--space-lg);color:var(--text-muted)}.ui-card__spinner{width:28px;height:28px;border:3px solid rgba(59,130,246,.2);border-top-color:var(--accent-primary);border-radius:50%;animation:cardSpin .75s linear infinite}@keyframes cardSpin{to{transform:rotate(360deg)}}.ui-card__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:var(--space-md);color:var(--bg-elevated);font-size:14px;text-align:center}.ui-card__empty-icon{font-size:32px;opacity:.5}.ui-card__empty-action{margin-top:var(--space-md)}.ui-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.ui-card-grid--folders{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}.ui-card--folder .ui-card__preview{width:64px;height:64px;margin:0 auto var(--space-md);background:transparent;border:none;font-size:48px}.ui-card--folder .ui-card__info{margin-bottom:var(--space-md)}.ui-card--equipment .ui-card__actions--inline{width:100%;justify-content:space-between;margin-top:auto}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:1px solid transparent;white-space:nowrap;font-family:inherit}.ui-button:disabled{opacity:.5;cursor:not-allowed}.ui-button--sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-sm)}.ui-button--md{padding:10px 16px;font-size:13px}.ui-button--lg{padding:12px 24px;font-size:14px}.ui-button--primary{background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary, #6366f1) 100%);border-color:var(--accent-secondary, #6366f1);color:#fff}.ui-button--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-hover) 0%,#818cf8 100%);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.ui-button--primary:active:not(:disabled){transform:translateY(0)}.ui-button--secondary{background:transparent;border-color:var(--border-color);color:var(--text-secondary)}.ui-button--secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--text-muted);color:var(--text-primary)}.ui-button--danger{background:transparent;border-color:var(--error);color:var(--error)}.ui-button--danger:hover:not(:disabled){background:var(--error-bg-subtle, rgba(239, 68, 68, .15))}.ui-button--ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.ui-button--ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.ui-button--success{background:var(--success);border-color:var(--success);color:#fff}.ui-button--success:hover:not(:disabled){background:var(--success-muted);border-color:var(--success-muted)}.ui-button--warning{background:var(--warning);border-color:var(--warning);color:#fff}.ui-button--warning:hover:not(:disabled){background:var(--warning-muted);border-color:var(--warning-muted)}.ui-button--loading{position:relative;color:transparent!important}.ui-button__spinner{position:absolute;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:buttonSpin .6s linear infinite}.ui-button--primary .ui-button__spinner{border-color:#ffffff4d;border-top-color:#fff}@keyframes buttonSpin{to{transform:rotate(360deg)}}.ui-button__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.ui-button__icon svg{width:16px;height:16px}.ui-button--sm .ui-button__icon svg{width:14px;height:14px}.ui-button--icon-only{padding:8px}.ui-button--icon-only.ui-button--sm{padding:6px}.ui-button--icon-only.ui-button--lg{padding:10px}.ui-button--icon-only .ui-button__text{display:none}.ui-button--full-width{width:100%}.ui-button-group{display:flex;gap:var(--space-sm)}.ui-button-group--vertical{flex-direction:column}.ui-button__text{display:inline-flex;align-items:center}.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 var(--border-color);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:var(--text-muted);font-size:14px;cursor:pointer;padding:6px 10px;border-radius:6px;transition:all .15s ease}.breadcrumb-item:hover{background:#3b82f626;color:var(--accent-hover)}.breadcrumb-item.active{color:var(--text-primary);font-weight:600;background:#3b82f633;cursor:default}.breadcrumb-separator{color:var(--bg-elevated);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:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;transition:all .2s ease}.search-input-wrapper input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.search-input-wrapper input::placeholder{color:var(--bg-elevated)}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--bg-elevated);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:var(--success)}.clipboard-indicator .clip-icon{font-size:14px}.clipboard-indicator .clip-text{font-weight:500}.clipboard-indicator button{background:transparent;border:none;color:var(--error);cursor:pointer;padding:2px 6px;font-size:12px;border-radius:4px;margin-left:4px}.clipboard-indicator button:hover{background:#ef444433}.header-actions{display:flex;align-items:center;gap:12px}.btn-create{display:flex;align-items:center;gap:6px;padding:8px 14px;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);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,var(--accent-secondary) 0%,var(--accent-secondary) 100%);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:var(--bg-elevated);font-size:14px;text-align:center;background:#0f172a4d;border-radius:12px;border:1px dashed var(--border-color)}.folders-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin-bottom:32px}.folder-card{background:linear-gradient(180deg,var(--bg-primary) 0%,#020617 100%);border:1px solid var(--border-color);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:var(--accent-primary);transform:translateY(-2px);box-shadow:0 8px 24px #3b82f633}.folder-card.selected{border-color:var(--accent-primary);background:linear-gradient(180deg,#1e3a5f 0%,var(--bg-primary) 100%);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:var(--accent-hover);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:var(--accent-primary);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 var(--border-color);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:var(--success);cursor:pointer;font-size:14px;transition:all .15s ease}.folder-copy-btn:hover{background:#10b98166;border-color:var(--success-muted);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:var(--accent-hover);cursor:pointer;font-size:13px;font-weight:500;transition:all .15s ease}.folder-view-btn:hover{background:#3b82f666;border-color:var(--accent-primary);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:var(--text-primary);font-weight:600;font-size:15px;margin-bottom:8px}.folder-revision{display:inline-block;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);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:var(--bg-elevated);font-size:13px}.drawings-section{background:linear-gradient(180deg,var(--bg-primary) 0%,#020617 100%);border-radius:12px;padding:24px;border:1px solid var(--border-color)}.drawings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.drawings-header h3{margin:0;color:var(--text-primary);font-size:18px;font-weight:600}.btn-upload{display:flex;align-items:center;gap:8px;padding:10px 18px;background:linear-gradient(135deg,var(--success-muted) 0%,#059669 100%);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:var(--bg-elevated);cursor:not-allowed;transform:none;box-shadow:none}.upload-progress{background:linear-gradient(135deg,#3b82f626,#2563eb1a);padding:12px 18px;border-radius:8px;color:var(--accent-hover);margin-bottom:16px;border:1px solid rgba(59,130,246,.3);font-weight:500}.drop-zone{border:2px dashed var(--bg-elevated);border-radius:12px;padding:40px;text-align:center;color:var(--bg-elevated);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:var(--accent-primary);color:var(--text-muted);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:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.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:var(--text-secondary);border-bottom:1px solid var(--bg-secondary);font-size:14px;vertical-align:middle}.drawings-table tr:hover td{background:#3b82f60d}.drawings-table td.empty{color:var(--bg-elevated);text-align:center;padding:40px 16px;font-style:italic}.projects-dashboard .empty-state{min-height:300px;background:linear-gradient(180deg,#0f172a4d,#02061733);border:1px dashed var(--border-color);margin:20px auto;max-width:500px}.folders-grid .empty-state{grid-column:1 / -1}.loading,.error{padding:40px;text-align:center;color:var(--bg-elevated);font-size:14px}.loading-state{grid-column:1 / -1}.error{color:var(--error);background:#ef44441a;border-radius:8px;border:1px solid rgba(239,68,68,.2)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.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 var(--bg-elevated);border-radius:8px;cursor:pointer;transition:all .2s ease;font-size:14px}.btn-icon:hover{background:#3b82f633;border-color:var(--accent-primary)}.btn-icon.btn-danger:hover{background:#ef444433;border-color:var(--error)}.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 var(--bg-elevated);border-radius:8px;cursor:pointer;transition:all .15s ease;font-size:14px}.btn-icon-sm:hover{background:#3b82f666;border-color:var(--accent-primary);transform:scale(1.08)}.btn-icon-sm.btn-danger:hover{background:#ef444466;border-color:var(--error)}.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:var(--accent-hover);font-weight:600;font-size:14px}.btn-sm{padding:10px 16px;min-height:38px;background:linear-gradient(135deg,var(--accent-primary) 0%,var(--accent-secondary) 100%);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,var(--accent-secondary) 0%,var(--accent-secondary) 100%);transform:translateY(-1px);box-shadow:0 4px 10px #3b82f666}.btn-sm.btn-danger{background:linear-gradient(135deg,var(--error) 0%,var(--error-muted) 100%);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,var(--error-muted) 0%,#b91c1c 100%);box-shadow:0 4px 10px #ef444466}.btn-sm.btn-secondary,.btn-sm.btn-secondary:hover{background:var(--bg-elevated)}.th-checkbox{width:40px;text-align:center}.drawings-table input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.selected-row td{background:#3b82f61a!important}.clipboard-row td{background:#10b9811a!important;border-left:2px solid var(--success-muted)}.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:var(--text-muted);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.projects-modal{min-width:400px}.modal-title-group{display:flex;flex-direction:column;gap:6px}.modal-subtitle{color:var(--text-muted);font-size:14px;margin:0}.modal-danger{border-color:#ef444466}.modal-danger h3{color:var(--error)}.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:var(--accent-hover);font-size:13px;margin:12px 0 0;padding:10px 14px;background:#3b82f61a;border-radius:8px;border:1px solid rgba(59,130,246,.2)}.extraction-data-warning{margin:16px 0}.loading-extraction-data{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13px;padding:12px;background:#1e293b80;border-radius:8px}.extraction-stats ul{margin:8px 0 0;padding-left:20px;font-size:13px;color:var(--text-secondary)}.extraction-stats li{margin:4px 0}.associated-jobs{margin-top:12px;padding:12px;background:#1e293b80;border-radius:8px;border:1px solid var(--border-color)}.jobs-label{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.associated-jobs ul{margin:0;padding-left:16px;font-size:13px;color:var(--text-secondary)}.associated-jobs li{margin:4px 0}.job-date{color:var(--bg-elevated);font-size:12px}.more-jobs{color:var(--bg-elevated);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 var(--border-color);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 var(--border-color)}.file-icon{font-size:20px}.file-original-name{color:var(--text-secondary);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:var(--bg-elevated);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:var(--bg-secondary);border-radius:3px}.upload-files-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.upload-files-list::-webkit-scrollbar-thumb:hover{background:var(--bg-elevated)}.upload-progress-section{background:linear-gradient(180deg,#0f172acc,#1e293b80);border:1px solid var(--border-color);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:var(--text-secondary);font-size:14px;font-weight:500}.upload-progress-count{color:var(--accent-hover);font-size:14px;font-weight:600;font-family:SF Mono,Menlo,monospace}.upload-progress-bar-container{height:12px;background:var(--bg-primary);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,var(--accent-primary) 0%,var(--accent-hover) 50%,var(--accent-primary) 100%);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,var(--success-muted) 0%,var(--success) 50%,var(--success-muted) 100%);animation:none}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-current-file{color:var(--text-muted);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:var(--success-muted);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,var(--success-muted) 0%,#059669 100%);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:var(--text-muted);font-size:14px;padding:8px 0}.upload-progress-percent{font-size:24px;font-weight:700;color:var(--accent-hover);font-family:SF Mono,Menlo,monospace}.upload-progress-details{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:8px}.upload-progress-details .upload-current-file{flex:1;text-align:right}.upload-files-section{transition:opacity .2s ease}.upload-files-section.uploading{opacity:.6;pointer-events:none}.upload-files-section.uploading .upload-files-list{max-height:200px}.upload-file-item.uploaded{background:#10b9811a;border-color:#10b9814d}.upload-file-item.uploaded .file-icon{color:var(--success-muted)}.upload-file-item.current{background:#3b82f61a;border-color:#3b82f64d}.upload-file-item.current .file-icon{color:var(--accent-hover);animation:pulse 1s ease-in-out infinite}.upload-files-section.uploading .upload-file-item{padding:12px 16px;margin-bottom:8px}.upload-files-section.uploading .upload-file-original{margin-bottom:0;padding-bottom:0;border-bottom:none}.upload-files-more{text-align:center;color:var(--bg-elevated);font-size:13px;padding:12px;font-style:italic}.spinner-large{width:48px;height:48px;border:4px solid rgba(59,130,246,.2);border-top-color:var(--accent-primary);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:var(--text-secondary);font-size:16px;font-weight:500;margin:0}.loading-content .loading-subtitle{color:var(--text-muted);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:var(--text-muted);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:var(--success);border:1px solid rgba(16,185,129,.4)}.page-indicator{color:var(--text-muted);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 var(--border-color)}.upload-search-input{flex:1;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px}.upload-search-input:focus{outline:none;border-color:var(--accent-primary)}.upload-search-input::placeholder{color:var(--bg-elevated)}.upload-file-count{color:var(--text-muted);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:var(--error);font-size:14px;cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-remove-file:hover{background:#ef44444d;border-color:var(--error)}.upload-no-results{padding:24px;text-align:center;color:var(--bg-elevated);font-size:14px}.jobs-badge-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--bg-elevated);font-size:12px;cursor:pointer;transition:all .15s ease}.jobs-badge-btn:hover{background:var(--border-color);border-color:var(--bg-elevated)}.jobs-badge-btn.has-jobs{background:#3b82f626;border-color:#3b82f64d;color:var(--accent-hover)}.jobs-badge-btn.has-jobs:hover{background:#3b82f640}.jobs-badge-btn.expanded{background:#3b82f640;border-color:var(--accent-primary)}.jobs-count{font-weight:600}.jobs-expand-icon{font-size:8px;color:var(--text-muted)}.jobs-loading{color:var(--text-muted)}.jobs-none{color:var(--bg-elevated)}.expanded-row{background:#3b82f60d}.jobs-expanded-row{background:var(--bg-primary)}.jobs-expanded-row>td{padding:0!important;border-bottom:2px solid var(--border-color)}.jobs-history-container{padding:16px 20px;margin-left:40px;border-left:2px solid var(--accent-primary)}.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:var(--text-secondary)}.jobs-history-count{font-size:11px;color:var(--bg-elevated);padding:2px 8px;background:var(--bg-secondary);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:var(--bg-secondary);color:var(--text-muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.jobs-history-table td{padding:10px 12px;color:var(--text-secondary);border-bottom:1px solid var(--bg-secondary)}.jobs-history-table tbody tr:hover{background:#ffffff05}.jobs-history-empty{padding:16px;text-align:center;color:var(--bg-elevated);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 var(--bg-secondary)}.jobs-page-btn{padding:6px 12px;background:var(--border-color);border:1px solid var(--bg-elevated);border-radius:4px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.jobs-page-btn:hover:not(:disabled){background:var(--bg-elevated)}.jobs-page-btn:disabled{opacity:.4;cursor:not-allowed}.jobs-page-info{font-size:12px;color:var(--text-muted)}.modal-combine{min-width:450px;max-width:550px}.combine-preview{background:#0f172a80;border:1px solid var(--border-color);border-radius:8px;padding:12px 16px;margin-bottom:16px}.combine-preview-label{display:block;color:var(--text-muted);font-size:12px;margin-bottom:8px}.combine-files-list{list-style:none;padding:0;margin:0;max-height:150px;overflow-y:auto}.combine-files-list li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--bg-secondary);font-size:13px}.combine-files-list li:last-child{border-bottom:none}.combine-order{color:var(--bg-elevated);font-size:11px;min-width:20px}.combine-filename{color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combine-pages{color:var(--bg-elevated);font-size:11px}.combine-options{margin:16px 0;padding:12px;background:#0f172a80;border:1px solid var(--border-color);border-radius:8px}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--text-secondary);font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary);cursor:pointer}.btn-combine{background:linear-gradient(135deg,#8b5cf6,#6366f1)!important;border-color:#7c3aed!important}.btn-combine:hover{background:linear-gradient(135deg,#7c3aed,#4f46e5)!important}.classification-modal{max-width:500px;width:90%}.classification-modal .selection-info{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,var(--success-bg-subtle),rgba(16,185,129,.05));border:1px solid var(--success-border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.classification-modal .selection-count{font-size:24px;font-weight:600;color:var(--success)}.classification-modal .selection-label{color:var(--text-muted);font-size:14px}.classification-modal .mode-description{color:var(--text-muted);font-size:13px;line-height:1.5;margin-bottom:var(--space-xl);padding:var(--space-md);background:#1e293b80;border-radius:var(--radius-sm)}.classification-modal .form-group{margin-bottom:var(--space-lg)}.classification-modal .form-group label{display:block;margin-bottom:var(--space-sm);color:var(--text-secondary);font-size:13px;font-weight:500}.classification-modal .form-group select,.classification-modal .form-group input,.classification-modal .form-group textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.classification-modal .form-group select:focus,.classification-modal .form-group input:focus,.classification-modal .form-group textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.classification-modal .form-group textarea{resize:vertical;min-height:60px}.classification-modal .form-group .hint{display:block;margin-top:var(--space-xs);color:var(--text-muted);font-size:11px}.classification-modal .error-message{padding:var(--space-sm) var(--space-md);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-sm);color:var(--error);font-size:13px;margin-top:var(--space-md)}.classification-modal .modal-footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--border-color);margin-top:var(--space-xl)}.classification-modal .cancel-btn{padding:var(--space-sm) var(--space-xl);background:var(--bg-tertiary);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;cursor:pointer;transition:background var(--transition-normal)}.classification-modal .cancel-btn:hover:not(:disabled){background:var(--bg-elevated)}.classification-modal .save-btn{padding:var(--space-sm) var(--space-xl);background:var(--btn-gradient-success);border:none;border-radius:var(--radius-sm);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:opacity var(--transition-normal),transform var(--transition-fast)}.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__count{font-size:12px;color:var(--text-muted)}.equipment-card__composite-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;background:#a855f733;color:#c084fc}.equipment-card__test-all-bar{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.equipment-card__test-all-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:var(--accent-primary);border:none;color:#fff;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.equipment-card__test-all-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.equipment-card__test-all-btn svg{flex-shrink:0}.equipment-card__subsection-title{font-size:11px;font-weight:600;color:var(--bg-elevated);text-transform:uppercase;letter-spacing:.5px;margin:var(--space-lg) 0 var(--space-md) 0}.equipment-card__component-shapes{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.equipment-card__examples-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}.equipment-card__example{position:relative;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:10px;transition:all var(--transition-fast);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:var(--accent-primary);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:var(--text-secondary)}.equipment-card__example-source{font-size:10px;color:var(--bg-elevated);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:var(--accent-hover);border-radius:3px;font-family:SF Mono,Menlo,monospace}.equipment-card__example-actions{position:absolute;top:4px;right:4px;display:flex;gap:4px;opacity:1}.equipment-card__tune-btn{background:#10b9811a;border:none;color:#10b981;cursor:pointer;padding:2px;border-radius:3px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.equipment-card__tune-btn:hover{background:#10b98133}.equipment-card__test-btn{background:#3b82f61a;border:none;color:var(--accent-primary);cursor:pointer;padding:2px;border-radius:3px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.equipment-card__test-btn:hover{background:#3b82f633}.equipment-card__remove-btn{background:#ef44441a;border:none;color:var(--error);cursor:pointer;padding:2px;border-radius:3px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.equipment-card__remove-btn:hover{background:#ef444433}.equipment-card__confirm-delete{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:var(--error);color:#fff}.btn-confirm-yes:hover{background:var(--error-muted)}.btn-confirm-no{background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border-color)}.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:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);transition:all var(--transition-fast)}.equipment-card__composite:hover{border-color:var(--accent-primary);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:var(--text-primary)}.equipment-card__composite-components{display:flex;flex-wrap:wrap;gap:6px}.equipment-card__component-type{font-size:11px;padding:3px 8px;background:#3b82f626;color:var(--accent-hover);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__composite-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.equipment-card__test-composite-btn{display:flex;align-items:center;gap:6px;background:var(--accent-primary);border:none;color:#fff;padding:8px 14px;border-radius:var(--radius-md);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.equipment-card__test-composite-btn:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.equipment-card__test-composite-btn svg{flex-shrink:0}.btn-merge{display:flex;align-items:center;gap:var(--space-sm);background:transparent;border:1px solid var(--accent-primary);color:var(--accent-primary);padding:10px var(--space-lg);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-merge:hover{background:#3b82f626;border-color:var(--accent-hover);color:var(--accent-hover)}.btn-delete-card{display:flex;align-items:center;gap:var(--space-sm);background:transparent;border:1px solid var(--error);color:var(--error);padding:var(--space-sm) 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-delete-card:hover{background:#ef44441a}.equipment-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.equipment-card__job-stats{background:var(--bg-primary);border-radius:var(--radius-md);padding:var(--space-lg)}.equipment-card__stats-row{display:flex;justify-content:space-around;gap:var(--space-md);margin-bottom:var(--space-lg)}.equipment-card__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.equipment-card__stat-value{font-size:20px;font-weight:700;color:var(--text-primary)}.equipment-card__stat-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.equipment-card__stat.stat-tp .equipment-card__stat-value{color:#22c55e}.equipment-card__stat.stat-fp .equipment-card__stat-value{color:#ef4444}.equipment-card__stat.stat-unreviewed .equipment-card__stat-value{color:var(--text-secondary)}.equipment-card__precision-row{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:var(--space-md)}.equipment-card__precision-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.equipment-card__precision-value{font-size:16px;font-weight:700}.equipment-card__precision-value.excellent{color:#22c55e}.equipment-card__precision-value.good{color:#84cc16}.equipment-card__precision-value.fair{color:#f59e0b}.equipment-card__precision-value.poor{color:#ef4444}.equipment-card__precision-formula{font-size:12px;color:var(--text-muted);font-family:SF Mono,Menlo,monospace}.equipment-card__jobs-count{font-size:12px;color:var(--text-muted);text-align:center;margin-bottom:var(--space-md)}.equipment-card__no-jobs{text-align:center;color:var(--text-muted);font-size:13px;padding:var(--space-lg) 0}.equipment-card__view-jobs-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.equipment-card__view-jobs-btn:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.equipment-card__view-jobs-btn svg{flex-shrink:0}.pagination{display:flex;align-items:center;gap:12px}.pagination__info{font-size:12px;color:var(--text-muted);white-space:nowrap}.pagination__buttons{display:flex;gap:4px}.pagination__btn{display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s;font-family:inherit}.pagination--sm .pagination__btn{padding:4px 8px;font-size:12px;min-width:28px;height:28px}.pagination--md .pagination__btn{padding:6px 12px;font-size:13px;min-width:32px;height:32px}.pagination--lg .pagination__btn{padding:8px 14px;font-size:14px;min-width:36px;height:36px}.pagination__btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--accent-primary)}.pagination__btn:disabled{opacity:.5;cursor:not-allowed}.pagination__btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.pagination__btn--number{font-weight:500}.progress-bar{display:flex;align-items:center;gap:8px;width:100%}.progress-bar__track{flex:1;background:var(--bg-tertiary);border-radius:4px;overflow:hidden}.progress-bar--xs .progress-bar__track{height:4px}.progress-bar--sm .progress-bar__track{height:6px}.progress-bar--md .progress-bar__track{height:8px}.progress-bar--lg .progress-bar__track{height:12px}.progress-bar__fill{height:100%;transition:width .3s ease;border-radius:4px}.progress-bar__fill--default{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.progress-bar__fill--success{background:linear-gradient(90deg,#22c55e,#4ade80)}.progress-bar__fill--danger{background:linear-gradient(90deg,#ef4444,#f87171)}.progress-bar__fill--warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.progress-bar__label{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:36px;text-align:right}.segmented-control{display:flex;gap:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:2px}.segmented-control__btn{display:flex;align-items:center;justify-content:center;gap:6px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s;font-family:inherit;font-weight:500;white-space:nowrap}.segmented-control--sm .segmented-control__btn{padding:6px 12px;font-size:12px}.segmented-control--md .segmented-control__btn{padding:8px 16px;font-size:13px}.segmented-control--lg .segmented-control__btn{padding:10px 20px;font-size:14px}.segmented-control__btn:hover:not(.active){color:var(--text-primary);background:var(--bg-tertiary)}.segmented-control__btn.active{background:var(--accent-primary);color:#fff}.segmented-control__btn--success.active{background:#22c55e}.segmented-control__btn--danger.active{background:#ef4444}.segmented-control__btn--warning.active{background:#f59e0b}.reference-shapes-panel{padding:24px;height:100%;overflow-y:auto}.panel-header{margin-bottom:24px}.panel-header h2{margin:0 0 8px;color:var(--text-primary);font-size:24px;font-weight:600}.panel-subtitle{margin:0;color:var(--text-muted);font-size:14px}.panel-tabs{margin-bottom:24px}.empty-state p{max-width:400px;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 var(--border-color);border-radius:var(--radius-lg);padding:20px;transition:all .2s}.shape-card:hover{border-color:var(--accent-primary);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:var(--text-primary);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:var(--accent-hover);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:var(--radius-xs);color:#a78bfa;font-size:11px;font-weight:500}.metric{display:flex;flex-direction:column;gap:4px}.metric-label{font-size:11px;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:14px;color:var(--text-secondary);font-family:SF Mono,Menlo,monospace}.shape-description{font-size:13px;color:var(--text-muted);margin-bottom:12px;line-height:1.5}.shape-source{font-size:12px;color:var(--text-disabled);margin-bottom:16px}.shape-actions{display:flex;gap:8px}.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:var(--success)}.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:var(--text-muted);font-weight:500}.sheet-selector select{padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;cursor:pointer;max-width:400px}.sheet-selector select:focus{outline:none;border-color:var(--accent-primary)}.contours-section h3{margin:0 0 16px;color:var(--text-primary);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:var(--bg-primary);color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.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:var(--text-secondary);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:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;overflow-y:auto;padding:20px}.modal-dialog{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 20px 60px #00000080;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal{background:linear-gradient(180deg,#1e293b,#0f172a);padding:28px;min-width:400px}.modal h3{margin:0 0 16px}.modal p{color:var(--text-muted);font-size:14px;margin:0 0 12px}.modal.modal-danger{border-color:#ef444466}.modal.modal-danger h3{color:var(--error)}.warning-text{color:#fbbf24!important;padding:10px 14px;background:#fbbf241a;border-radius:var(--radius-md);border:1px solid rgba(251,191,36,.2)}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.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:var(--text-muted);font-size:13px;font-weight:500}.merge-target-label select{padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;cursor:pointer;transition:border-color .15s}.merge-target-label select:hover{border-color:var(--accent-primary)}.merge-target-label select:focus{outline:none;border-color:var(--accent-primary);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:var(--radius-sm);color:var(--error);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:var(--radius-lg);color:var(--accent-hover);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:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.selection-count{color:var(--text-primary);font-size:13px;font-weight:500}.selection-actions{display:flex;align-items:center;gap:8px}.toolbar-btn{padding:5px 12px;border:none;border-radius:var(--radius-xs);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:var(--bg-elevated)}.toolbar-btn.delete{background:#dc2626;color:#fff}.toolbar-btn.delete:hover{background:#b91c1c}.toolbar-btn.clear{background:transparent;color:var(--text-disabled);padding:5px 8px}.toolbar-btn.clear:hover{color:var(--text-primary)}.equipment-card-wrapper{position:relative;cursor:pointer;border-radius:var(--radius-lg);transition:all var(--transition-normal)}.equipment-card-wrapper:before{content:"";position:absolute;top:8px;left:8px;width:20px;height:20px;background:#1e293be6;border:2px solid #475569;border-radius:var(--radius-xs);opacity:0;transition:all var(--transition-normal);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:var(--accent-primary)}.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:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden;min-height:0}.zoom-controls{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#1e293bcc;border-bottom:1px solid var(--border-color)}.zoom-controls span{color:var(--text-muted);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:var(--text-disabled)}.no-contours-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:80px;color:var(--text-disabled);text-align:center}.no-contours-state p{margin:0;font-size:14px}.image-help-text{padding:8px 12px;background:#1e293b80;color:var(--text-disabled);font-size:11px;text-align:center;border-top:1px solid #1e293b}.contour-panel-section{display:flex;flex-direction:column;gap:8px;overflow:hidden;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border-color);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:var(--radius-md);flex-shrink:0}.selection-count{font-size:14px;font-weight:600;color:var(--success)}.classification-mode-toggle{display:flex;gap:4px;margin-left:auto}.classification-mode-toggle button{padding:6px 12px;background:var(--border-color);border:1px solid #475569;border-radius:var(--radius-xs);color:var(--text-muted);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.classification-mode-toggle button:hover{background:var(--bg-elevated)}.classification-mode-toggle button.active{background:#3b82f6;border-color:var(--accent-primary);color:#fff}.contours-table-wrapper{flex:1;overflow-x:auto;overflow-y:hidden;border-radius:var(--radius-md);background:var(--bg-primary);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:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:12px;font-weight:600;color:var(--text-muted);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:var(--bg-secondary)}.virtual-contours-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-xs)}.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:var(--text-secondary);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:var(--success)}.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:var(--text-muted);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:var(--text-muted);text-align:right}.vcol-depth.depth-0{color:var(--success)}.vcol-depth.depth-1{color:var(--accent-primary)}.vcol-depth.depth-2{color:#8b5cf6}.vcol-depth.depth-3{color:var(--warning)}.vcol-depth.depth-4{color:#ef4444}.contour-count-footer{padding:8px 12px;font-size:11px;color:var(--text-disabled);background:var(--bg-secondary);border-top:1px solid var(--border-color);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:var(--success)}.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:var(--success)}.col-depth.depth-1{color:var(--accent-primary)}.col-depth.depth-2{color:#8b5cf6}.col-depth.depth-3{color:var(--warning)}.col-depth.depth-4{color:#ef4444}.contours-table.selectable th.col-shape,.contours-table.selectable td.col-shape{width:80px;font-size:11px;color:var(--text-muted);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:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:12px;cursor:pointer}.hierarchy-filter-select:hover{border-color:var(--accent-primary)}.hierarchy-filter-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f633}.modal-content .modal-header .close-btn{width:32px;height:32px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-content .modal-header .close-btn:hover{background:#ef44441a;border-color:#ef4444;color:var(--error)}@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 var(--border-color);border-radius:var(--radius-lg);padding:20px;margin-bottom:24px}.default-shapes-gallery h3{margin:0 0 8px;color:var(--text-primary);font-size:16px;font-weight:600}.gallery-description{margin:0 0 20px;color:var(--text-muted);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:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:14px;text-align:center;transition:all var(--transition-normal)}.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:var(--text-primary);font-size:13px;font-weight:600}.shape-type-count{color:var(--text-disabled);font-size:11px}.shape-type-card.has-references .shape-type-count{color:var(--accent-primary)}.shape-type-desc{margin:0;color:var(--text-disabled);font-size:10px;line-height:1.4}.seed-defaults-action{display:flex;align-items:center;gap:16px;padding-top:16px;border-top:1px solid var(--border-color)}.seed-help{color:var(--text-disabled);font-size:12px;line-height:1.4}.saved-shapes-list{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px}.saved-shapes-list h3{margin:0 0 16px;color:var(--text-primary);font-size:16px;font-weight:600}.equipment-cards-section{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px}.equipment-cards-section h3{margin:0 0 16px;color:var(--text-primary);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:var(--bg-primary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.browse-mode-toggle .segmented-control{width:100%}.browse-mode-toggle .segmented-control__btn{flex:1}.repository-browser{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px}.browse-help{margin:0 0 20px;color:var(--text-muted);font-size:13px;line-height:1.5}.repository-files-list{overflow:hidden;border-radius:var(--radius-md)}.repository-table{width:100%;border-collapse:collapse}.repository-table th{background:var(--bg-primary);padding:12px 14px;text-align:left;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.repository-table td{padding:12px 14px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid #1e293b}.repository-table tbody tr{background:var(--bg-primary);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:var(--text-primary)}.filename-cell .file-date{font-size:11px;color:var(--text-disabled)}.pages-cell{text-align:center;color:var(--text-muted)}.contours-cell{text-align:center;font-family:SF Mono,Menlo,monospace;font-size:12px;color:var(--text-muted)}.actions-cell{text-align:right}.processed-drawings-toolbar{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:var(--radius-sm);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}.toolbar-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-color)}.sheet-selector-inline{display:flex;align-items:center;gap:8px}.sheet-selector-inline label{font-size:13px;color:var(--text-muted);font-weight:500;white-space:nowrap}.sheet-selector-inline select{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;cursor:pointer;min-width:240px}.sheet-selector-inline select:focus{outline:none;border-color:var(--accent-primary)}.page-navigation{display:flex;align-items:center;gap:4px;margin-left:6px;padding-left:10px;border-left:1px solid #334155}.page-navigation .ui-button{width:26px;height:26px;padding:0}.page-indicator{font-size:12px;color:var(--text-muted);font-weight:500;min-width:80px;text-align:center;white-space:nowrap}.run-selector-inline{display:flex;align-items:center;gap:8px;margin-left:10px;padding-left:12px;border-left:1px solid #334155}.run-selector-inline label{font-size:13px;color:var(--text-muted);font-weight:500;white-space:nowrap}.run-selector-inline select{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;cursor:pointer;min-width:200px}.run-selector-inline select:focus{outline:none;border-color:var(--accent-primary)}.contours-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 20px;color:var(--text-muted);font-size:14px}.contours-loading .spinner{width:20px;height:20px}.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:var(--text-secondary);font-size:13px;-webkit-user-select:none;user-select:none}.filter-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.filter-slider{display:flex;align-items:center;gap:10px;padding-left:16px;border-left:1px solid #334155}.filter-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.filter-slider input[type=range]{width:100px;height:4px;cursor:pointer;accent-color:var(--accent-primary)}.filter-value{font-size:13px;font-weight:600;color:var(--accent-primary);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 var(--border-color);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:var(--text-muted);white-space:nowrap}.contour-stats .stat strong{color:var(--text-primary)}.contour-stats .stat-note{font-size:11px;color:var(--text-disabled);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:var(--text-muted)}.config-input span{white-space:nowrap}.config-input input[type=number]{width:70px;padding:6px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:SF Mono,Menlo,monospace}.config-input input[type=number]:focus{outline:none;border-color:var(--accent-primary)}.config-input .input-unit{font-size:11px;color:var(--text-disabled)}.config-input-group{display:flex;align-items:center}.config-label{display:flex;align-items:center;gap:4px;white-space:nowrap;color:var(--text-muted);font-size:13px}.info-tooltip-wrapper{position:relative;display:inline-flex;align-items:center;cursor:help}.info-icon{width:14px;height:14px;color:var(--text-disabled);transition:color .15s ease}.info-tooltip-wrapper:hover .info-icon{color:var(--accent-primary)}.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:var(--text-secondary);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 var(--transition-normal);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)}.reextract-action{margin-left:auto}.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:var(--text-muted);font-weight:500}.config-field input[type=number]{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:SF Mono,Menlo,monospace}.config-field input[type=number]:focus{outline:none;border-color:var(--accent-primary)}.config-field .field-help{font-size:11px;color:var(--text-disabled);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:var(--radius-md);margin-top:8px}.reextract-warning svg{flex-shrink:0;color:var(--warning)}.reextract-warning p{margin:0;font-size:13px;color:#fbbf24;line-height:1.5}.reextract-result{padding:12px 14px;border-radius:var(--radius-md);margin-top:16px}.reextract-result.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--success)}.reextract-result.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:var(--warning)}.reextract-result p{margin:0;font-size:13px}.expand-button{margin-left:auto}.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:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.fullscreen-title-section{display:flex;align-items:center;gap:16px}.fullscreen-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.fullscreen-page-nav{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.fullscreen-page-nav .ui-button{width:28px;height:28px;padding:0}.fullscreen-page-nav .page-indicator{color:var(--text-muted);font-size:13px;min-width:80px;text-align:center}.fullscreen-controls span{color:var(--text-muted);font-size:13px;font-family:SF Mono,Menlo,monospace;min-width:50px;text-align:center}.fullscreen-close-button{margin-left:16px}.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-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-secondary);font-size:14px}.fullscreen-loading .spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.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:var(--bg-secondary);border-top:1px solid var(--border-color)}.fullscreen-footer span{font-size:12px;color:var(--text-muted)}.fullscreen-footer span:last-child{color:var(--text-disabled)}.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}.collapse-panel-button{width:26px;height:26px;padding:0}.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:var(--radius-md);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:var(--radius-md);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 var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.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:var(--text-disabled);pointer-events:none}.filter-search input{padding:8px 36px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;width:220px;transition:all var(--transition-normal)}.filter-search input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.filter-search input::placeholder{color:var(--text-disabled)}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;padding:0;border-radius:4px}.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:var(--bg-elevated);margin:0 4px}@media (max-width: 768px){.floating-action-bar{flex-wrap:wrap;border-radius:20px;padding:12px;gap:8px}.floating-action-bar .ui-button__text{display:none}.equipment-filter-bar{flex-direction:column;align-items:stretch;gap:12px}.filter-search input{width:100%}}.repo-controls{display:flex;justify-content:space-between;align-items:center;padding:12px 0;margin-bottom:8px;border-bottom:1px solid var(--border-color)}.repo-search{display:flex;align-items:center;position:relative}.repo-search .search-icon{position:absolute;left:10px;font-size:14px;color:var(--text-disabled);pointer-events:none;z-index:1}.repo-search-input{width:250px;padding:8px 32px 8px 34px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:all var(--transition-normal)}.repo-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}.repo-search-input::placeholder{color:var(--text-disabled)}.repo-count{color:var(--text-muted);font-size:13px}.repo-actions{display:flex;align-items:center;gap:12px}.checkbox-cell{width:32px;text-align:center}.checkbox-cell input[type=checkbox],.repository-table thead th input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.repo-pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--border-color);margin-top:8px}.no-results{text-align:center;color:var(--text-disabled);padding:24px;font-style:italic}.progress-banner{background:linear-gradient(135deg,#1e3a5f,#0f2942);border:1px solid #3b82f6;border-radius:var(--radius-md);padding:12px 16px;margin-bottom:16px}.progress-banners{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.progress-header{display:flex;align-items:center;gap:12px;margin-bottom:8px}.progress-filename{color:var(--text-primary);font-weight:600;font-size:13px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-duration{color:var(--text-disabled);font-size:12px;font-family:SF Mono,Menlo,monospace}.progress-info{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px}.progress-text{color:#93c5fd;font-size:13px;flex:1}.progress-percent{color:var(--accent-primary);font-weight:600;font-size:14px;flex-shrink:0}.repository-table tbody tr.running{background:#3b82f61a;animation:runningPulse 2s ease-in-out infinite}@keyframes runningPulse{0%,to{background:#3b82f61a}50%{background:#3b82f626}}.expand-cell{width:28px;padding:8px!important;text-align:center}.expand-cell .ui-button{width:24px;height:24px;padding:0}.repository-table tbody tr.expanded{background:#3b82f61a}.runs-cell{text-align:center}.runs-badge{display:inline-block;padding:2px 8px;background:#8b5cf626;border-radius:10px;font-size:11px;font-weight:500;color:#a78bfa}.runs-badge-hint{color:#475569;font-size:12px}.action-buttons{display:flex;gap:8px;justify-content:flex-end}.extraction-runs-row{background:#0f172a!important}.extraction-runs-row td{padding:0!important;border-bottom:2px solid #334155}.extraction-runs-container{background:linear-gradient(180deg,#1e293b,#0f172a);border-left:3px solid #3b82f6;padding:16px 20px;margin-left:28px}.runs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.runs-header h4{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.runs-summary{font-size:12px;color:var(--text-disabled)}.sheet-runs{margin-bottom:16px}.sheet-runs:last-child{margin-bottom:0}.sheet-name{font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:8px;padding-left:4px}.runs-list{display:flex;flex-direction:column;gap:8px}.run-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color .15s}.run-item:hover{border-color:#475569}.run-item.custom{border-left:3px solid #f59e0b}.run-item.default{border-left:3px solid #10b981}.run-info{display:flex;align-items:center;gap:12px;min-width:220px}.run-badge{padding:3px 8px;border-radius:var(--radius-xs);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.run-item.custom .run-badge{background:#f59e0b26;color:var(--warning)}.run-item.default .run-badge{background:#10b98126;color:var(--success)}.run-contours{font-size:13px;font-weight:500;color:var(--text-secondary)}.run-pages{font-size:12px;color:var(--text-muted);padding:2px 6px;background:#64748b33;border-radius:var(--radius-xs)}.run-duration{font-size:12px;font-weight:500;color:#22c55e;padding:2px 8px;background:#22c55e1a;border-radius:var(--radius-xs)}.run-date{font-size:11px;color:var(--text-disabled)}.run-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary);flex-shrink:0}.run-item.selected{background:#3b82f61a;border-color:var(--accent-primary)}.runs-bulk-actions{display:flex;gap:8px;padding:8px 12px;margin-bottom:8px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm)}.run-config{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.run-config span{font-size:11px;color:var(--text-disabled);padding:2px 6px;background:#33415580;border-radius:var(--radius-xs);font-family:SF Mono,Menlo,monospace}.run-item.running{border-left:3px solid #3b82f6;background:#3b82f60d}.run-badge.running{background:#3b82f633;color:var(--accent-primary);animation:pulse 2s infinite}.run-progress{font-size:12px;color:var(--accent-primary);font-weight:500}.run-primary-action{margin-bottom:12px}.custom-process-modal{max-width:500px;max-height:85vh;overflow-y:auto;border-radius:12px;box-shadow:0 20px 60px #00000080}.process-config-form{margin:20px 0}.config-preset-row{margin-bottom:20px}.config-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.config-summary{padding:12px 16px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);font-size:13px;color:var(--text-muted)}.config-summary strong{color:var(--accent-hover)}.config-values{margin-top:6px;font-size:12px;font-family:SF Mono,Menlo,monospace;color:var(--text-disabled)}.no-runs-notice{padding:16px 20px;background:#64748b1a;border:1px solid rgba(100,116,139,.2);border-radius:var(--radius-md);text-align:center}.no-runs-notice p{margin:0;color:var(--text-muted);font-size:13px;line-height:1.6}.delete-confirm-modal{width:450px;max-width:90vw}.modal-header.warning{background:linear-gradient(135deg,#ef444426,#dc26261a);border-bottom:1px solid rgba(239,68,68,.2)}.modal-header.warning h3{color:var(--error)}.warning-content{display:flex;gap:16px;padding:24px;background:#ef44440d;border-bottom:1px solid rgba(51,65,85,.5)}.test-matches-modal{width:90%;max-width:700px;max-height:85vh;display:flex;flex-direction:column}.test-matches-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color)}.test-matches-modal .modal-header h3{margin:0;color:var(--text-primary);font-size:18px;font-weight:600}.test-matches-modal .modal-body{padding:20px;overflow-y:auto;flex:1}.test-matches-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 20px;color:var(--text-muted)}.test-matches-loading .spinner{width:32px;height:32px}.test-matches-error{display:flex;align-items:center;gap:12px;padding:16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--error)}.test-matches-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.test-matches-summary .summary-stat{background:linear-gradient(180deg,#1e293b,#0f172a);border:1px solid var(--border-color);border-radius:10px;padding:16px;text-align:center}.test-matches-summary .stat-value{display:block;font-size:24px;font-weight:700;color:var(--accent-primary);margin-bottom:4px}.test-matches-summary .stat-label{font-size:12px;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.5px}.test-matches-params{display:flex;gap:16px;padding:12px 16px;background:#3b82f61a;border-radius:var(--radius-md);margin-bottom:20px;font-size:13px;color:var(--text-muted)}.test-matches-distribution{margin-bottom:24px}.test-matches-distribution h4{margin:0 0 12px;color:var(--text-primary);font-size:14px;font-weight:600}.distribution-bars{display:flex;flex-direction:column;gap:6px}.distribution-row{display:flex;align-items:center;gap:10px}.bucket-label{width:60px;font-size:11px;color:var(--text-disabled);text-align:right;font-family:SF Mono,Menlo,monospace}.bar-container{flex:1;height:16px;background:var(--bg-secondary);border-radius:var(--radius-xs);overflow:hidden}.bar-container .bar{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:var(--radius-xs);transition:width .3s ease}.bucket-count{width:40px;font-size:12px;color:var(--text-muted);text-align:right;font-family:SF Mono,Menlo,monospace}.test-matches-list{margin-top:20px}.test-matches-list h4{margin:0 0 12px;color:var(--text-primary);font-size:14px;font-weight:600}.matches-table{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.matches-header{display:grid;grid-template-columns:2fr 1fr 1fr 80px;gap:8px;padding:10px 12px;background:var(--bg-secondary);font-size:11px;font-weight:600;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.5px}.match-row{display:grid;grid-template-columns:2fr 1fr 1fr 80px;gap:8px;padding:10px 12px;border-bottom:1px solid #1e293b;font-size:13px;transition:background .15s}.match-row:last-child{border-bottom:none}.match-row:hover{background:#3b82f60d}.match-drawing{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-sheet{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-confidence{font-weight:600;font-family:SF Mono,Menlo,monospace}.match-confidence.high{color:var(--success)}.match-confidence.medium{color:var(--warning)}.match-confidence.low{color:#ef4444}.match-area{color:var(--text-disabled);text-align:right;font-family:SF Mono,Menlo,monospace}.matches-more{padding:12px;text-align:center;color:var(--text-disabled);font-size:12px;font-style:italic}.test-matches-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center}.test-matches-empty svg{color:#475569}.test-matches-empty p{margin:0;color:var(--text-muted);font-size:15px}.test-matches-empty .hint{color:var(--text-disabled);font-size:13px}.composite-test-modal{max-width:700px}.composite-pattern-info{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.composite-pattern-info h4{margin:0;font-size:16px;color:var(--text-primary);text-transform:capitalize}.composite-pattern-info .component-count{font-size:12px;padding:4px 10px;background:#a855f726;color:#c084fc;border-radius:12px}.test-matches-summary .summary-stat.highlight{background:#3b82f626;border:1px solid rgba(59,130,246,.3)}.test-matches-summary .summary-stat.highlight .stat-value{color:var(--accent-primary)}.component-matches-section{margin-top:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md)}.component-matches-section h4{margin:0 0 12px;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.component-matches-grid{display:flex;flex-wrap:wrap;gap:8px}.component-match-stat{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.component-match-stat .component-type{font-size:12px;color:var(--text-muted);text-transform:capitalize}.component-match-stat .component-count-value{font-size:14px;font-weight:600;color:var(--text-primary)}.component-hint{margin:12px 0 0;font-size:12px;color:var(--text-disabled)}.composite-matches-table{display:flex;flex-direction:column;gap:2px}.composite-match-row{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.composite-match-row:hover{background:var(--bg-tertiary)}.match-components{display:flex;flex-wrap:wrap;gap:4px}.component-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:10px;font-size:10px;color:#10b981;text-transform:capitalize}.component-chip .component-conf{font-weight:600;opacity:.8}.no-match-reasons{margin-top:8px;padding:12px;background:#ef44441a;border-radius:var(--radius-sm);font-size:12px;color:var(--error)}@media (max-width: 640px){.test-matches-summary{grid-template-columns:repeat(2,1fr)}.matches-header,.match-row{grid-template-columns:1fr 1fr}.matches-header span:nth-child(3),.matches-header span:nth-child(4),.match-row .match-sheet,.match-row .match-area{display:none}}.tune-matching-modal{max-width:520px;max-height:85vh}.tune-matching-modal .modal-body{max-height:60vh;overflow-y:auto}.tune-intro{margin:0 0 20px;padding:12px 16px;background:#3b82f61a;border-radius:var(--radius-md);color:var(--text-muted);font-size:13px;line-height:1.5}.tune-section{margin-bottom:24px}.tune-section h4{margin:0 0 8px;color:var(--text-secondary);font-size:14px;font-weight:600}.tune-help{margin:0 0 12px;color:var(--text-disabled);font-size:12px}.tune-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid rgba(51,65,85,.5)}.tune-row:last-child{border-bottom:none}.tune-row label{flex:0 0 120px;color:#cbd5e1;font-size:13px;font-weight:500}.tune-row input[type=range]{flex:1;height:4px;background:var(--bg-secondary);border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.tune-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:transform .15s}.tune-row input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.tune-value{flex:0 0 50px;text-align:right;font-size:13px;font-weight:600;color:var(--text-secondary);font-family:Monaco,Menlo,monospace}.tune-value.disabled{color:var(--text-disabled)}.tune-value.high{color:var(--success)}.tune-actions-quick{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px;border-top:1px solid var(--border-color);margin-top:8px}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-primary)}.shape-test-modal{max-width:900px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.shape-test-modal .modal-body{flex:1;overflow-y:auto;padding:20px}.shape-test-progress{padding:20px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:16px}.shape-test-progress .progress-header{display:flex;justify-content:space-between;margin-bottom:12px}.shape-test-progress .progress-status{color:var(--text-primary);font-weight:500}.shape-test-progress .progress-percent{color:var(--accent-primary);font-weight:600}.shape-test-progress .progress-bar{margin-bottom:12px}.shape-test-progress .progress-details{display:flex;justify-content:space-between;color:var(--text-muted);font-size:12px}.shape-test-error{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center;color:var(--error)}.shape-test-summary{display:flex;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:20px;flex-wrap:wrap}.shape-test-summary .summary-stat{flex:1;min-width:100px;text-align:center;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.shape-test-summary .summary-stat .stat-value{display:block;font-size:24px;font-weight:700;color:var(--text-primary)}.shape-test-summary .summary-stat .stat-label{display:block;font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-top:4px}.shape-test-summary .summary-stat.true-positive .stat-value{color:#22c55e}.shape-test-summary .summary-stat.false-positive .stat-value{color:#ef4444}.shape-test-summary .summary-stat.unreviewed .stat-value{color:#f59e0b}.shape-test-results h4{margin:0 0 16px;color:var(--text-secondary);font-size:14px;font-weight:600}.shape-test-results .no-results{padding:40px 20px;text-align:center;color:var(--text-muted)}.shape-test-results .results-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto}.shape-test-results .result-item{background:var(--bg-secondary);border-radius:var(--radius-md);padding:16px;border-left:4px solid var(--border-color)}.shape-test-results .result-item.true_positive{border-left-color:#22c55e;background:#22c55e0d}.shape-test-results .result-item.false_positive{border-left-color:#ef4444;background:#ef44440d}.shape-test-results .result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.shape-test-results .result-drawing{font-weight:500;color:var(--text-primary)}.shape-test-results .result-confidence{font-size:13px;color:var(--accent-primary);font-weight:600}.result-shapes-row{display:flex;align-items:center;gap:16px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:12px}.reference-shape-preview,.matched-shape-preview{display:flex;flex-direction:column;align-items:center;gap:6px}.preview-label{font-size:10px;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.comparison-arrow{font-size:20px;color:var(--text-disabled)}.no-geometry{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:1px dashed var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:11px}.feature-scores{margin-bottom:12px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.feature-scores .feature-scores-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-bottom:8px}.feature-scores .feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.feature-scores .feature-item{display:flex;align-items:center;gap:8px;font-size:12px}.feature-scores .feature-name{color:var(--text-secondary);text-transform:capitalize;min-width:70px}.feature-bar-container{flex:1;height:6px;background:var(--bg-primary);border-radius:3px;overflow:hidden;min-width:60px}.feature-bar{height:100%;border-radius:3px;transition:width .3s ease}.feature-bar.good{background:#22c55e}.feature-bar.ok{background:#f59e0b}.feature-bar.poor{background:#ef4444}.feature-weight{font-size:10px;color:var(--text-disabled);min-width:24px}.feature-scores .feature-score{font-weight:600;padding:2px 6px;border-radius:3px}.feature-scores .feature-score.good{color:#22c55e;background:#22c55e1a}.feature-scores .feature-score.ok{color:#f59e0b;background:#f59e0b1a}.feature-scores .feature-score.poor{color:#ef4444;background:#ef44441a}.feature-scores .feature-deviation{color:var(--text-disabled);font-size:11px}.component-details{margin-bottom:12px}.component-details .component-title{font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px}.component-details .component-list{display:flex;gap:8px;flex-wrap:wrap}.component-details .component-chip{padding:4px 10px;background:var(--bg-tertiary);border-radius:12px;font-size:12px;color:var(--text-secondary)}.result-validation{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(51,65,85,.3)}.result-validation .validation-buttons{display:flex;gap:8px}.result-validation .validation-comment{flex:1;font-size:12px;color:var(--text-muted);font-style:italic}.load-more-button{width:100%;margin-top:16px;border-style:dashed;background:var(--bg-secondary)}.modal-header-actions{display:flex;align-items:center;gap:8px}.jobs-panel{position:fixed;bottom:20px;right:20px;width:340px;max-height:50vh;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #0006;z-index:100;overflow:hidden;display:flex;flex-direction:column}.jobs-panel-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-weight:600;font-size:13px;color:var(--text-primary)}.jobs-panel-header svg{stroke:var(--accent-primary)}.jobs-panel-hint{margin-left:auto;font-size:10px;font-weight:400;color:var(--text-muted);opacity:.8}.bulk-delete-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:10px;font-weight:500;color:var(--text-danger, #ef4444);background:transparent;border:1px solid var(--text-danger, #ef4444);border-radius:4px;cursor:pointer;transition:all .15s ease;margin-left:auto}.bulk-delete-btn:hover{background:var(--text-danger, #ef4444);color:#fff}.bulk-delete-btn svg{stroke:currentColor}.jobs-panel-list{flex:1;overflow-y:auto;padding:8px;max-height:340px}.job-card{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:8px;transition:all .15s}.job-card:last-child{margin-bottom:0}.job-card.running,.job-card.pending{border-left:3px solid var(--accent-primary)}.job-card.completed{border-left:3px solid #22c55e}.job-card.failed{border-left:3px solid #ef4444}.job-card.cancelled{border-left:3px solid var(--text-muted);opacity:.7}.job-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.job-name{font-weight:500;font-size:13px;color:var(--text-primary);text-transform:capitalize}.job-progress{margin-top:8px}.job-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.job-actions .ui-button{width:28px;height:28px;padding:0}.job-actions .ui-button__icon svg{width:14px;height:14px}.sheet-selector-modal{max-width:640px;width:95vw;height:85vh;max-height:85vh;display:flex;flex-direction:column;overflow:visible}.sheet-selector-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0}.sheet-selector-modal .modal-header h3{margin:0;font-size:18px;font-weight:600}.sheet-selector-modal .modal-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:20px 24px;min-height:0}.job-name-input-group{margin-bottom:20px;flex-shrink:0}.job-name-input-group label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.job-name-input{width:100%;padding:12px 14px;font-size:14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.job-name-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.job-name-input::placeholder{color:var(--text-muted)}.matching-params-config{padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:16px;flex-shrink:0}.matching-params-config .params-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.matching-params-config .params-label{color:var(--text-primary);font-weight:600;font-size:13px}.matching-params-config .params-hint{font-size:11px;color:var(--text-muted);font-style:italic}.matching-params-config .params-inputs{display:flex;gap:24px}.matching-params-config .param-input-group{flex:1}.matching-params-config .param-input-group label{display:block;font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.matching-params-config .param-input-wrapper{display:flex;align-items:center;gap:6px}.matching-params-config .param-input{width:80px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;font-size:14px;font-family:SF Mono,Menlo,monospace;color:var(--text-primary);text-align:right}.matching-params-config .param-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.matching-params-config .param-unit{font-size:13px;color:var(--text-muted);font-weight:500}.matching-params-config .param-desc{display:block;font-size:11px;color:var(--text-muted);margin-top:4px}.matching-params-config .params-options{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.matching-params-config .param-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-secondary)}.matching-params-config .param-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-blue)}.matching-params-config .param-checkbox .checkbox-label{-webkit-user-select:none;user-select:none}.matching-params-config .param-checkbox:hover{color:var(--text-primary)}.worker-config-section{margin-top:16px;padding:12px;background:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-subtle)}.worker-config-section .config-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.worker-config-section .config-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.worker-config-section .config-input-group{display:flex;align-items:center;gap:8px}.worker-config-section .config-select{padding:6px 10px;font-size:13px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-primary);cursor:pointer}.worker-config-section .config-select:focus{outline:none;border-color:var(--accent-blue)}.worker-config-section .config-hint{font-size:11px;color:var(--text-muted)}.worker-config-section .config-note{margin-top:8px;font-size:11px;color:var(--text-muted)}.loading-sheets{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px;color:var(--text-muted)}.no-sheets-message{padding:60px;text-align:center;color:var(--text-muted)}.sheet-selector-stats{display:flex;align-items:center;gap:24px;padding:16px 20px;background:var(--bg-secondary);border-radius:10px;margin-bottom:16px;flex-shrink:0}.sheet-selector-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}.sheet-selector-stats .stat-number{font-size:20px;font-weight:700;color:var(--text-primary)}.sheet-selector-stats .stat-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.sheet-selector-stats .stat-divider{width:1px;height:36px;background:var(--border-color);margin:0 8px}.sheet-selector-stats .stat-item.selected .stat-number,.sheet-selector-stats .stat-item.selected .stat-label{color:var(--accent-primary)}.sheet-selector-controls{display:flex;gap:12px;margin-bottom:12px;flex-shrink:0}.sheet-search-wrapper{flex:1;position:relative;display:flex;align-items:center}.sheet-search-wrapper .search-icon{position:absolute;left:12px;stroke:var(--text-muted);pointer-events:none}.sheet-search-input{width:100%;padding:10px 36px 10px 38px;font-size:14px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);transition:border-color .15s,box-shadow .15s}.sheet-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.sheet-search-input::placeholder{color:var(--text-muted)}.sheet-action-buttons{display:flex;gap:8px}.sheet-selector-hint{font-size:13px;color:var(--text-secondary);margin-bottom:12px;padding:10px 14px;background:#3b82f614;border-radius:6px;border-left:3px solid var(--accent-primary);flex-shrink:0}.sheet-selector-list{flex-shrink:0;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary)}.no-results-message{padding:40px;text-align:center;color:var(--text-muted);font-style:italic}.sheet-selector-modal .drawing-group{border-bottom:1px solid var(--border-color)}.sheet-selector-modal .drawing-group:last-child{border-bottom:none}.sheet-selector-modal .drawing-group.has-selection{background:#3b82f60a}.sheet-selector-modal .drawing-header{display:flex;align-items:center;gap:8px;padding:12px 14px;transition:background .15s}.sheet-selector-modal .drawing-header:hover{background:#3b82f60f}.expand-toggle.ui-button{width:20px;height:20px;padding:0;flex-shrink:0}.expand-toggle .ui-button__icon svg{transition:transform .15s}.expand-toggle.expanded .ui-button__icon svg{transform:rotate(90deg)}.expand-placeholder{width:20px;flex-shrink:0}.drawing-checkbox{display:flex;align-items:center;cursor:pointer;flex-shrink:0}.sheet-selector-modal .drawing-header input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.sheet-selector-modal .drawing-name{flex:1;font-weight:500;font-size:14px;color:var(--text-primary);cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-selector-modal .drawing-count{font-size:12px;font-weight:500;color:var(--text-muted);background:var(--bg-tertiary);padding:3px 10px;border-radius:12px;flex-shrink:0}.sheet-selector-modal .drawing-group.has-selection .drawing-count{background:#3b82f626;color:var(--accent-primary)}.sheet-selector-modal .drawing-count.clickable{cursor:pointer;transition:all .15s}.sheet-selector-modal .drawing-count.clickable:hover{background:var(--accent-primary);color:#fff}.sheet-selector-modal .sheets-list{padding:8px 14px 12px 48px;background:var(--bg-secondary);border-top:1px solid var(--border-color);max-height:300px;overflow-y:auto}.sheets-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 0 8px;border-bottom:1px solid var(--border-color);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.sheets-list-header .sheet-count-info{font-size:12px;color:var(--text-muted)}.select-all-in-doc{font-size:12px;font-weight:500;color:var(--accent-primary);background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s}.select-all-in-doc:hover{background:#3b82f61a}.sheet-selector-modal .sheet-item{display:flex;align-items:center;gap:10px;padding:8px 12px;margin:2px 0;border-radius:6px;cursor:pointer;transition:background .15s;border:1px solid transparent;background:var(--bg-primary)}.sheet-selector-modal .sheet-page-number{display:flex;align-items:center;justify-content:center;min-width:36px;height:24px;padding:0 8px;background:var(--bg-tertiary);border-radius:4px;font-size:12px;font-weight:600;color:var(--text-secondary);font-family:SF Mono,Menlo,monospace}.sheet-selector-modal .sheet-item.selected .sheet-page-number{background:#3b82f633;color:var(--accent-primary)}.sheet-selector-modal .sheet-item:hover{background:var(--bg-primary);border-color:var(--border-color)}.sheet-selector-modal .sheet-item.selected{background:#3b82f61a;border-color:#3b82f64d}.sheet-selector-modal .sheet-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.sheet-selector-modal .sheet-name{flex:1;font-size:13px;color:var(--text-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-selector-modal .sheet-contours{font-size:12px;color:var(--text-muted);flex-shrink:0}.sheets-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 0 4px;margin-top:8px;border-top:1px solid var(--border-color)}.sheets-pagination .pagination-btn{padding:6px 12px;font-size:12px;font-weight:500;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .15s}.sheets-pagination .pagination-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--accent-primary)}.sheets-pagination .pagination-btn:disabled{opacity:.4;cursor:not-allowed}.sheets-pagination .pagination-info{font-size:12px;color:var(--text-secondary);display:flex;flex-direction:column;align-items:center;gap:2px}.sheets-pagination .pagination-range{font-size:11px;color:var(--text-muted)}.sheet-selector-modal .modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px 20px;border-top:1px solid var(--border-color)}.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 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)}.recommendations-panel{width:380px;min-width:320px;max-width:420px;flex-shrink:0;align-self:stretch;border-left:1px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-secondary);overflow:hidden}.recommendations-panel.collapsed{width:48px;min-width:48px;cursor:pointer;background:var(--bg-tertiary)}.recommendations-panel.collapsed:hover{background:var(--bg-elevated)}.collapsed-indicator{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;padding-top:var(--space-lg);gap:var(--space-lg)}.collapsed-icon{color:var(--text-muted);font-size:12px}.collapsed-counts{display:flex;flex-direction:column;gap:var(--space-md)}.collapsed-count-item{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);background:var(--bg-primary)}.collapsed-count-item .count-dot{width:8px;height:8px;border-radius:50%}.collapsed-count-item.pending .count-dot{background:var(--warning)}.collapsed-count-item.accepted .count-dot{background:var(--success)}.collapsed-count-item.declined .count-dot{background:var(--text-muted)}.collapsed-count-item.passed .count-dot{background:var(--success)}.collapsed-count-item .count-value{font-size:12px;font-weight:600;color:var(--text-primary);min-width:14px;text-align:center}.recommendations-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);gap:var(--space-md)}.recommendations-panel .panel-title{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.recommendations-panel .panel-title h3{margin:0;font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;line-height:1}.recommendations-panel .btn-collapse{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;font-size:8px;transition:all var(--transition-fast);flex-shrink:0}.recommendations-panel .btn-collapse:hover{background:var(--bg-elevated);border-color:var(--border-hover);color:var(--text-primary)}.recommendations-panel .panel-controls{flex-shrink:0}.recommendations-panel .filter-dropdown{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:11px;padding:2px 6px;cursor:pointer;outline:none;transition:border-color var(--transition-fast)}.recommendations-panel .filter-dropdown:hover,.recommendations-panel .filter-dropdown:focus{border-color:var(--border-hover)}.recommendations-panel .filter-dropdown option{background:var(--bg-secondary);color:var(--text-primary)}.bulk-actions-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:var(--bg-tertiary);border-top:1px solid var(--border-color);gap:var(--space-md);flex-shrink:0}.selection-count{font-size:13px;font-weight:500;color:var(--text-primary)}.bulk-buttons{display:flex;gap:var(--space-sm)}.bulk-btn{padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.bulk-btn-accept{background:var(--success);color:#fff;border:none}.bulk-btn-accept:hover{background:var(--success-hover)}.bulk-btn-decline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.bulk-btn-decline:hover{background:var(--bg-elevated);color:var(--text-primary)}.bulk-btn-clear{background:transparent;color:var(--text-muted);border:none}.bulk-btn-clear:hover{color:var(--text-primary)}.pending-badge{background:var(--warning-bg-subtle);color:var(--warning);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:12px;font-weight:500}.all-clear-badge{background:var(--success-bg-subtle);color:var(--success);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:12px;font-weight:500}.recommendations-panel .panel-content{flex:1;min-height:0;position:relative}.recommendations-panel .panel-content-inner{position:absolute;top:0;left:0;right:0;bottom:0;overflow-y:auto;padding:var(--space-md)}.recommendations-panel .panel-loading,.recommendations-panel .panel-error,.recommendations-panel .panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl);color:var(--text-muted);text-align:center;font-size:13px}.recommendations-panel .panel-error{color:var(--error)}.recommendations-panel .panel-error button{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);cursor:pointer;font-size:12px}.recommendations-panel .spinner-small{width:20px;height:20px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.recommendations-list{display:flex;flex-direction:column;gap:var(--space-md)}.recommendation-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast)}.recommendation-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.recommendation-card.clickable{cursor:pointer}.recommendation-card.clickable:hover{background:var(--bg-elevated)}.recommendation-card.active{background:var(--bg-elevated);border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f64d}.recommendation-card.active.critical{box-shadow:0 0 0 2px #ef44444d}.recommendation-card.active.warning{box-shadow:0 0 0 2px #eab3084d}.recommendation-card.color-blue{border-left:3px solid var(--accent-primary)}.recommendation-card.color-red{border-left:3px solid var(--error)}.recommendation-card.color-green{border-left:3px solid var(--success)}.recommendation-card.accepted,.recommendation-card.edited,.recommendation-card.declined{opacity:.85}.recommendation-card.declined{border-left-color:var(--text-muted)!important}.recommendation-card.passed{border-left-color:var(--success);background:#22c55e0d}.recommendation-card.passed .card-header-row{background:#22c55e1a}.recommendation-card.passed .rule-name:before{content:"✓ ";color:var(--success)}.recommendation-card .card-header-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#0003;border-bottom:1px solid var(--border-light)}.recommendation-card .card-left-actions{display:flex;align-items:center;flex-shrink:0}.recommendation-card .btn-reset-icon{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);transition:all var(--transition-fast);line-height:1}.recommendation-card .btn-reset-icon:hover:not(:disabled){color:var(--accent-primary);background:var(--bg-elevated)}.recommendation-card .btn-reset-icon:disabled{opacity:.5;cursor:not-allowed}.recommendation-card .card-title-section{flex:1;display:flex;align-items:center;gap:var(--space-xs);min-width:0}.recommendation-card .rule-name{flex:1;font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommendation-card .card-right-actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.recommendation-card .checkbox-wrapper{display:flex;align-items:center;cursor:pointer}.recommendation-card .checkbox-wrapper input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.recommendation-card .card-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#0003;border-bottom:1px solid var(--border-light)}.recommendation-card .severity-icon{font-size:12px}.recommendation-card .card-body{padding:var(--space-md)}.recommendation-card .message{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.5}.recommendation-card .affected-item{margin-top:var(--space-sm);display:flex;align-items:center;gap:var(--space-sm);font-size:12px}.recommendation-card .affected-label{color:var(--text-muted)}.recommendation-card .affected-item code{background:var(--bg-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:monospace;font-size:11px;color:var(--accent-primary)}.recommendation-card .card-actions{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border-light);background:#0000001a}.recommendation-card .card-actions button{flex:1;padding:var(--space-sm);border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.recommendation-card .btn-decline{background:transparent;color:var(--text-muted);border:1px solid var(--border-color)!important}.recommendation-card .btn-decline:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.recommendation-card .btn-edit{background:var(--bg-elevated);color:var(--text-primary)}.recommendation-card .btn-edit:hover:not(:disabled){background:var(--accent-primary);color:#fff}.recommendation-card .btn-accept{background:var(--success);color:#fff}.recommendation-card .btn-accept:hover:not(:disabled){background:var(--success-hover)}.recommendation-card .card-actions button:disabled{opacity:.5;cursor:not-allowed}.recommendation-card .card-footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-top:1px solid var(--border-light);background:#0000001a}.recommendation-card .actioned-info{font-size:11px;color:var(--text-muted);line-height:1.4}.recommendation-card .actioned-line-1{font-weight:500;color:var(--text-secondary)}.recommendation-card .actioned-line-2{color:var(--text-muted)}.recommendation-card .btn-revert{flex-shrink:0;font-size:11px!important;padding:2px 8px!important;opacity:.7;transition:opacity var(--transition-fast)}.recommendation-card .btn-revert:hover{opacity:1}.recommendation-card .edit-form{display:flex;flex-direction:column;gap:var(--space-md)}.recommendation-card .edit-textarea{width:100%;padding:var(--space-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;font-family:inherit;resize:vertical;min-height:60px}.recommendation-card .edit-textarea:focus{outline:none;border-color:var(--accent-primary)}.recommendation-card .color-selector{display:flex;flex-direction:column;gap:var(--space-sm)}.recommendation-card .color-label{font-size:12px;color:var(--text-muted)}.recommendation-card .color-options{display:flex;gap:var(--space-sm)}.recommendation-card .color-option{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:12px;color:var(--text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:2px solid var(--border-color);background:var(--bg-primary);transition:all var(--transition-fast);flex:1}.recommendation-card .color-option:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.recommendation-card .color-option.selected{color:var(--text-primary)}.recommendation-card .color-option.blue.selected{border-color:var(--accent-primary);background:#3b82f626}.recommendation-card .color-option.red.selected{border-color:var(--error);background:#ef444426}.recommendation-card .color-option.green.selected{border-color:var(--success);background:#22c55e26}.recommendation-card .color-option input[type=radio]{display:none}.recommendation-card .color-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:2px solid transparent}.recommendation-card .color-dot.blue{background:var(--accent-primary)}.recommendation-card .color-dot.red{background:var(--error)}.recommendation-card .color-dot.green{background:var(--success)}.recommendation-card .color-option.selected .color-dot{border-color:#ffffff80}.recommendation-card .edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.recommendation-card .edit-actions button{padding:var(--space-sm) var(--space-md);border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer}.recommendation-card .edit-actions .btn-cancel{background:transparent;color:var(--text-muted);border:1px solid var(--border-color)}.recommendation-card .edit-actions .btn-cancel:hover:not(:disabled){background:var(--bg-elevated)}.recommendation-card .edit-actions .btn-save{background:var(--success);color:#fff}.recommendation-card .edit-actions .btn-save:hover:not(:disabled){background:var(--success-hover)}.recommendation-card .edit-actions button:disabled{opacity:.5;cursor:not-allowed}.passed-checks-section{margin-top:var(--space-lg);border-top:1px solid var(--border-color);padding-top:var(--space-md)}.passed-checks-toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.passed-checks-toggle:hover{background:var(--bg-elevated)}.passed-icon{color:var(--success)}.toggle-arrow{margin-left:auto;color:var(--text-muted);font-size:10px}.passed-checks-list{list-style:none;margin:var(--space-sm) 0 0;padding:0}.passed-check-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:12px;color:var(--text-muted)}.check-icon{color:var(--success);font-size:11px}.check-name{flex:1}.all-clear-message{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center}.all-clear-icon{font-size:32px;color:var(--success)}.all-clear-message span:last-child{color:var(--text-secondary);font-size:14px;font-weight:500}.equipment-extraction-panel{padding:var(--space-xl);height:calc(100vh - 200px);overflow-y:auto}.extraction-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-xl);margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.header-info h2{margin:0 0 var(--space-sm);color:var(--text-primary);font-size:24px;font-weight:600}.header-description{margin:0;color:var(--text-muted);font-size:14px}.header-controls{display:flex;align-items:flex-start;gap:var(--space-lg);flex-shrink:0;flex-wrap:wrap}.revision-filter-group{display:flex;flex-direction:column;gap:var(--space-sm)}.filter-mode-select{display:flex;align-items:center;gap:var(--space-sm)}.filter-mode-select label{color:var(--text-muted);font-size:13px;white-space:nowrap}.filter-mode-select select{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;cursor:pointer}.filter-mode-select select:focus{outline:none;border-color:var(--accent-primary)}.revision-checkboxes{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.revision-checkbox{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.revision-checkbox:hover{border-color:var(--accent-primary);background:var(--accent-bg-subtle)}.revision-checkbox.checked{border-color:var(--accent-primary);background:var(--accent-bg-medium);color:var(--accent-hover)}.revision-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent-primary);cursor:pointer}.revision-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.revision-checkbox span{font-weight:500}.selection-info{padding:var(--space-sm) var(--space-md);background:var(--accent-bg-subtle);border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-sm)}.selected-count{color:var(--accent-hover);font-size:13px;font-weight:500}.job-name-input input{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;width:160px;transition:border-color var(--transition-normal)}.job-name-input input:focus{outline:none;border-color:var(--accent-primary)}.job-name-input input::placeholder{color:var(--text-disabled)}.job-name-input input:disabled{opacity:.5;cursor:not-allowed}.btn-extract{padding:var(--space-sm) var(--space-lg);background:var(--btn-gradient-success);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-success)}.btn-extract:hover:not(:disabled){background:var(--btn-gradient-success-hover);transform:translateY(-1px);box-shadow:var(--shadow-success-lg)}.btn-extract:disabled{opacity:.5;cursor:not-allowed;transform:none}.extraction-progress{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl)}.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:var(--space-lg)}.progress-title{color:var(--text-primary);font-size:16px;font-weight:600}.extraction-progress.running .progress-title{color:var(--accent-hover)}.extraction-progress.completed .progress-title{color:var(--success)}.extraction-progress.error .progress-title{color:var(--error)}.extraction-progress.partial-error .progress-title{color:var(--warning)}.progress-bar-container{height:8px;background:var(--bg-primary);border-radius:var(--radius-xs);overflow:hidden;margin-bottom:var(--space-md)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary) 0%,var(--success) 100%);border-radius:var(--radius-xs);transition:width .3s ease}.extraction-progress.completed .progress-bar-fill{background:var(--btn-gradient-success)}.extraction-progress.error .progress-bar-fill{background:var(--btn-gradient-error)}.extraction-progress.partial-error .progress-bar-fill,.progress-bar-fill.has-errors{background:var(--btn-gradient-warning)}.progress-details{display:flex;justify-content:space-between;align-items:center;color:var(--text-muted);font-size:13px;flex-wrap:wrap;gap:var(--space-sm)}.result-counts{display:flex;gap:var(--space-md)}.success-count{color:var(--success);font-weight:500}.error-count{color:var(--error);font-weight:500}.current-drawing{color:var(--text-disabled);font-style:italic}.extraction-errors{margin-top:var(--space-md);padding:var(--space-md);background:var(--error-bg-subtle);border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md);max-height:200px;overflow-y:auto}.errors-header{color:var(--error);font-weight:600;font-size:13px;margin-bottom:var(--space-sm)}.errors-list{display:flex;flex-direction:column;gap:var(--space-xs)}.error-item{color:#fca5a5;font-size:12px;padding:var(--space-xs) var(--space-sm);background:#0003;border-radius:var(--radius-xs);word-break:break-word;white-space:pre-wrap;font-family:SF Mono,Menlo,monospace}.error-item.more-errors{color:var(--text-muted);font-style:italic;background:transparent}.project-tree{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.tree-project{margin-bottom:var(--space-sm)}.tree-project:last-child{margin-bottom:0}.tree-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);cursor:default}.tree-item:hover{background:#3b82f60d}.project-item{background:#1e293b80}.project-item:hover{background:var(--accent-bg-subtle)}.folder-item{background:#0f172a80}.drawing-item{padding:var(--space-sm) var(--space-md)}.expand-btn{width:24px;height:24px;padding:0;background:transparent;border:none;color:var(--text-disabled);font-size:10px;cursor:pointer;border-radius:var(--radius-xs);transition:all var(--transition-normal)}.expand-btn:hover{background:var(--accent-bg-medium);color:var(--accent-primary)}.tree-item input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.tree-item input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.item-icon{font-size:16px;flex-shrink:0}.item-name{color:var(--text-secondary);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:var(--text-disabled);font-size:12px;font-family:SF Mono,Menlo,monospace}.item-count{color:var(--text-disabled);font-size:12px}.drawing-id{color:var(--text-muted);font-size:12px;font-family:SF Mono,Menlo,monospace;padding:2px var(--space-xs);background:#94a3b81a;border-radius:var(--radius-xs)}.extraction-method-cell{text-align:center;width:60px}.extraction-badge{display:inline-block;padding:2px var(--space-xs);border-radius:var(--radius-xs);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.extraction-badge.heuristics{background:var(--accent-bg-subtle);color:var(--accent-hover)}.extraction-badge.ocr{background:#a855f733;color:#a855f7}.confidence-cell{text-align:center;width:50px;font-size:11px;color:var(--text-muted)}.tree-children{margin-left:32px;border-left:1px solid var(--border-color);padding-left:var(--space-sm)}.empty-state h3{font-size:18px}.empty-state p{color:var(--text-disabled);font-size:14px}.errors-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.btn-toggle-errors{padding:var(--space-xs) var(--space-sm);background:#ffffff1a;border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-xs);color:#fca5a5;font-size:11px;cursor:pointer;transition:all var(--transition-normal)}.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:var(--text-muted);font-style:italic}.job-history-section{margin-top:var(--space-2xl);background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg)}.job-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.job-history-header h3{margin:0;color:var(--text-primary);font-size:16px;font-weight:600}.btn-refresh{padding:var(--space-xs) var(--space-md);background:var(--bg-elevated);border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.btn-refresh:hover:not(:disabled){background:var(--text-disabled)}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.empty-jobs{text-align:center;padding:var(--space-xl);color:var(--text-disabled);font-size:14px}.job-list{display:flex;flex-direction:column;gap:var(--space-md)}.job-card{background:#0f172a80;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);transition:border-color var(--transition-normal)}.job-card.success{border-left:3px solid var(--success)}.job-card.partial{border-left:3px solid var(--warning)}.job-card.failed{border-left:3px solid var(--error)}.job-card.running{border-left:3px solid var(--accent-primary)}.job-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-sm)}.job-info{display:flex;flex-direction:column;gap:2px}.job-project{color:var(--text-secondary);font-size:14px;font-weight:500}.job-name{color:var(--text-muted);font-size:12px}.job-status{padding:3px var(--space-sm);border-radius:var(--radius-xs);font-size:10px;font-weight:600;text-transform:uppercase}.job-status.completed{background:var(--success-bg-subtle);color:var(--success)}.job-status.failed{background:var(--error-bg-subtle);color:var(--error)}.job-status.running{background:var(--accent-bg-subtle);color:var(--accent-hover)}.job-card-stats{display:flex;gap:var(--space-lg);flex-wrap:wrap;margin-bottom:var(--space-sm)}.job-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.job-stat .stat-label{color:var(--text-disabled);font-size:10px;text-transform:uppercase}.job-stat .stat-value{color:var(--text-secondary);font-size:14px;font-weight:600}.job-stat.success .stat-value{color:var(--success)}.job-stat.error .stat-value{color:var(--error)}.job-card-time{color:var(--text-disabled);font-size:11px}.job-errors-section{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-color)}.btn-toggle-job-errors{background:none;border:none;color:#fca5a5;font-size:12px;cursor:pointer;padding:0;display:flex;align-items:center;gap:var(--space-xs)}.btn-toggle-job-errors:hover{color:var(--error)}.job-errors-list{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-xs);max-height:300px;overflow-y:auto}.job-error-item{padding:var(--space-sm);background:var(--error-bg-subtle);border-radius:var(--radius-xs);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:var(--error);font-weight:600;margin-right:var(--space-xs)}.job-error-item .error-message{color:#fca5a5}.logs-panel{background:linear-gradient(180deg,var(--bg-primary) 0%,#020617 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-xl);overflow:hidden}.logs-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);background:#1e293b80;border-bottom:1px solid var(--border-color)}.logs-title{color:var(--text-secondary);font-size:12px;font-weight:500}.logs-controls{display:flex;gap:var(--space-sm)}.btn-toggle-logs,.btn-clear-logs{padding:var(--space-xs) var(--space-sm);background:var(--bg-elevated);border:none;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all var(--transition-normal)}.btn-toggle-logs:hover,.btn-clear-logs:hover{background:var(--text-disabled)}.logs-content{max-height:120px;overflow-y:auto;padding:var(--space-xs) var(--space-sm);font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;line-height:1.3}.log-line{color:var(--text-muted);padding:1px 0;white-space:pre-wrap;word-break:break-word}.log-line.success{color:var(--success)}.log-line.error{color:var(--error)}.logs-content::-webkit-scrollbar{width:6px}.logs-content::-webkit-scrollbar-track{background:var(--bg-primary)}.logs-content::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.logs-content::-webkit-scrollbar-thumb:hover{background:var(--text-disabled)}.job-filters{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md);background:#0f172a80;border-radius:var(--radius-md);align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs)}.filter-group label{color:var(--text-muted);font-size:11px;text-transform:uppercase}.filter-group select,.filter-group input{padding:var(--space-xs) var(--space-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-primary);font-size:12px;min-width:120px}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:var(--accent-primary)}.btn-clear-filters{padding:var(--space-xs) var(--space-md);background:transparent;border:1px solid var(--text-disabled);border-radius:var(--radius-xs);color:var(--text-muted);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.btn-clear-filters:hover{background:var(--border-color);color:var(--text-primary)}.job-table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color)}.job-table{width:100%;border-collapse:collapse;font-size:12px}.job-table th{background:var(--bg-primary);color:var(--text-muted);font-weight:500;text-align:left;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border-color);white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.job-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--bg-secondary);color:var(--text-secondary)}.job-table tbody tr:hover{background:#3b82f60d}.job-row.success{border-left:3px solid var(--success)}.job-row.partial{border-left:3px solid var(--warning)}.job-row.failed{border-left:3px solid var(--error)}.job-row.running{border-left:3px solid var(--accent-primary)}.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}.extractions-breakdown .extract-item{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 6px;border-radius:var(--radius-xs);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)}.btn-expand-row{background:none;border:none;color:var(--text-disabled);cursor:pointer;padding:var(--space-xs);font-size:10px;transition:color var(--transition-normal)}.btn-expand-row:hover{color:var(--accent-primary)}.job-name-text{color:var(--text-primary);font-weight:500}.status-pill{display:inline-block;padding:3px var(--space-sm);border-radius:var(--radius-xs);font-size:10px;font-weight:600;text-transform:uppercase}.status-pill.success{background:var(--success-bg-subtle);color:var(--success)}.status-pill.partial{background:var(--warning-bg-subtle);color:var(--warning)}.status-pill.failed{background:var(--error-bg-subtle);color:var(--error)}.status-pill.running{background:var(--accent-bg-subtle);color:var(--accent-hover)}.success-text{color:var(--success);font-weight:500}.error-text{color:var(--error);font-weight:500}.col-qc{width:100px;text-align:center}.qc-results{display:flex;align-items:center;justify-content:center;gap:2px}.qc-passed{color:var(--success);font-weight:500}.qc-failed{color:var(--text-muted);font-weight:500}.qc-failed.has-failures{color:var(--error)}.qc-running{color:var(--accent-primary);font-size:12px}.qc-error{color:var(--error);font-size:12px}.qc-skipped,.qc-pending,.qc-disabled{color:var(--text-muted);font-size:12px}.job-details-row td{padding:0;background:var(--bg-primary)}.job-details-content{padding:var(--space-lg);border-top:1px solid var(--border-color)}.details-section{margin-bottom:var(--space-lg)}.details-section:last-child{margin-bottom:0}.details-section h4{color:var(--text-secondary);font-size:12px;font-weight:600;margin:0 0 var(--space-sm);display:flex;align-items:center;gap:var(--space-md)}.btn-toggle-errors-inline{background:none;border:1px solid var(--bg-elevated);color:var(--text-muted);font-size:10px;padding:2px var(--space-sm);border-radius:var(--radius-xs);cursor:pointer}.btn-toggle-errors-inline:hover{background:var(--border-color);color:var(--text-primary)}.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:var(--radius-xs);font-size:11px}.result-item.success{border-left:2px solid #10b981}.result-item.error{border-left:2px solid #ef4444}.result-item.more{color:var(--text-disabled);font-style:italic;border:none}.result-icon{font-size:12px}.result-item.success .result-icon{color:var(--success)}.result-item.error .result-icon{color:var(--error)}.result-drawing{color:var(--text-secondary);font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-counts{color:var(--text-disabled);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:var(--radius-xs);font-size:11px;color:#fca5a5;display:flex;gap:6px}.error-detail-item strong{color:var(--error);white-space:nowrap}.job-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-color)}.pagination-info{color:var(--text-disabled);font-size:12px}.pagination-controls{display:flex;gap:8px}.btn-page{padding:6px 12px;background:var(--bg-elevated);border:none;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.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:var(--radius-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);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-overlay{z-index:2000;padding:20px}.modal{background:linear-gradient(180deg,#1e293b,#0f172a)}.extraction-modal{width:700px;max-width:100%;max-height:85vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#1e293b,#0f172a)}.extraction-modal .modal-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:0}.extraction-modal .modal-header,.extraction-modal .modal-actions{flex-shrink:0}.job-details-modal{width:600px;max-width:100%}.delete-confirm-modal{width:450px;max-width:90vw;background:linear-gradient(180deg,#1e293b,#0f172a)}.delete-confirm-modal .modal-body{padding:0}.btn-close-modal{background:none;border:none;color:var(--text-disabled);font-size:24px;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s ease}.btn-close-modal:hover{color:var(--text-primary)}.modal-section{padding:16px 24px;border-bottom:1px solid rgba(51,65,85,.5)}.modal-section:last-of-type{border-bottom:none}.modal-label{display:block;color:var(--text-secondary);font-size:13px;font-weight:600;margin-bottom:8px}.modal-input{width:100%;padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;transition:border-color .2s ease}.modal-input:focus{outline:none;border-color:var(--accent-primary)}.modal-input::placeholder{color:var(--text-disabled)}.modal-input:disabled{opacity:.5;cursor:not-allowed}.qc-options{display:flex;flex-direction:column;gap:12px}.qc-checkbox-main{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;color:var(--text-primary)}.qc-checkbox-main input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.qc-loading{color:var(--text-muted);font-size:13px;padding:8px 0}.rule-selection{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:12px;margin-top:12px}.rule-selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rule-count{font-size:12px;color:var(--text-muted)}.rule-selection-actions{display:flex;gap:12px}.rule-selection-actions .btn-link{background:none;border:none;color:var(--accent-primary);font-size:12px;cursor:pointer;padding:0}.rule-selection-actions .btn-link:hover{text-decoration:underline}.rule-checkboxes{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto}.rule-checkbox{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .15s ease}.rule-checkbox:hover{background:var(--bg-secondary)}.rule-checkbox.selected{background:#3b82f61a}.rule-checkbox input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent-primary);flex-shrink:0}.rule-checkbox .rule-name{flex:1;font-size:13px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-rules-message{font-size:13px;color:var(--text-muted);padding:8px 0}.no-rules-message a{color:var(--accent-primary)}.no-rules-message a:hover{text-decoration:underline}.modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;border-top:1px solid var(--border-color);background:#0f172a80}.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:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px}.revision-filter-select:focus{outline:none;border-color:var(--accent-primary)}.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:var(--accent-hover);font-size:13px;font-weight:500}.project-tree-modal{flex:1;min-height:150px;max-height:300px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);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:var(--radius-xs);font-size:13px;color:var(--text-secondary)}.project-tree-modal .tree-item:hover{background:#3b82f61a}.project-tree-modal .expand-btn{background:none;border:none;color:var(--text-disabled);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:var(--text-disabled);font-size:11px}.project-tree-modal .item-count{color:var(--text-disabled);font-size:11px;background:#64748b33;padding:2px 6px;border-radius:var(--radius-xs)}.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:var(--radius-sm);border:1px solid var(--border-color)}.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 var(--border-color)}.extraction-in-progress{display:flex;align-items:center;gap:10px;color:var(--text-muted);font-size:14px}.spinner-small{width:18px;height:18px;border:2px solid rgba(59,130,246,.2);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.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}.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:var(--text-muted);font-size:13px;min-width:120px}.detail-value{color:var(--text-secondary);font-size:14px;flex:1}.btn-mark-failed{padding:4px 10px;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-xs);color:var(--error);font-size:11px;cursor:pointer;margin-left:12px;transition:all var(--transition-normal)}.btn-mark-failed:hover{background:#ef44444d}.detail-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-color)}.detail-section h4{color:var(--text-secondary);font-size:14px;font-weight:600;margin:0 0 12px}.btn-titan{padding:10px 20px;background:linear-gradient(135deg,#8b5cf633,#3b82f633);border:1px solid rgba(139,92,246,.4);border-radius:var(--radius-md);color:#a78bfa;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-titan:hover{background:linear-gradient(135deg,#8b5cf659,#3b82f659);border-color:#8b5cf699;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf640}.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:var(--text-secondary);font-size:14px;line-height:1.5}.warning-text p:last-child{margin-bottom:0}.warning-text strong{color:var(--error)}.warning-text ul{margin:8px 0 12px;padding-left:20px;color:var(--text-muted);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:var(--radius-xs);color:var(--accent-hover);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.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:var(--radius-xs);color:#ef4444;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);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:var(--radius-sm);color:var(--error);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-delete-selected:hover{background:#ef444440}.job-details-fullview{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-primary);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 var(--border-color);position:sticky;top:0;z-index:10}.fullview-header .header-job-name{color:var(--text-secondary);font-size:14px;font-weight:600;white-space:nowrap;flex-shrink:0}.sheet-selector{position:relative;flex-shrink:0}.sheet-selector-btn{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-elevated);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px;cursor:pointer;min-width:200px;max-width:300px}.sheet-selector-btn:hover{background:var(--bg-tertiary)}.sheet-current{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-selector-arrow{font-size:10px;color:var(--text-muted)}.sheet-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:300px;overflow-y:auto;z-index:100;min-width:300px}.sheet-dropdown-item{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border-light)}.sheet-dropdown-item:last-child{border-bottom:none}.sheet-dropdown-item:hover{background:var(--accent-bg-subtle)}.sheet-dropdown-item.active{background:var(--accent-bg-medium)}.sheet-dropdown-item.error{opacity:.5;cursor:not-allowed}.sheet-dropdown-item .sheet-status{font-size:12px;font-weight:600}.sheet-dropdown-item.success .sheet-status{color:var(--success)}.sheet-dropdown-item.error .sheet-status{color:var(--error)}.sheet-dropdown-item .sheet-name{flex:1;font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-search{flex:1;max-width:250px;position:relative}.header-search-input{width:100%;padding:6px 28px 6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:12px}.header-search-input:focus{outline:none;border-color:var(--accent-primary)}.header-search-input::placeholder{color:var(--text-disabled)}.header-search .search-spinner{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--accent-primary);font-size:12px;animation:spin 1s linear infinite}.header-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:0 4px;line-height:1}.header-search-clear:hover{color:var(--text-primary)}.header-search-results{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:280px;overflow-y:auto;z-index:100;min-width:300px}.header-search-results .search-results-header{padding:6px 10px;font-size:10px;color:var(--text-muted);border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.header-search-result-item{display:flex;align-items:center;gap:6px;padding:6px 10px;cursor:pointer;transition:background var(--transition-fast)}.header-search-result-item:hover{background:var(--accent-bg-subtle)}.header-search-result-item.current-drawing{background:var(--accent-bg-medium)}.header-search-result-item .result-text{flex:1;font-size:11px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-search-result-item .result-category{font-size:9px;padding:1px 4px;border-radius:var(--radius-xs);background:var(--bg-tertiary);color:var(--text-muted)}.header-search-result-item .result-drawing{font-size:9px;color:var(--text-disabled)}.search-results-more{padding:6px 10px;font-size:10px;color:var(--text-muted);text-align:center;border-top:1px solid var(--border-color)}.header-zoom{display:flex;align-items:center;gap:2px;flex-shrink:0}.header-zoom button{padding:4px 6px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all var(--transition-fast)}.header-zoom button:hover{background:var(--bg-tertiary);border-color:var(--border-hover)}.header-zoom span{min-width:40px;text-align:center;font-size:11px;color:var(--text-muted)}.header-zoom .btn-fullscreen{font-size:12px}.header-legend{display:flex;align-items:center;gap:4px;flex-shrink:0}.header-legend .legend-badge{min-width:24px;height:20px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:600;color:#fff;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.header-legend .legend-badge:hover{transform:scale(1.1)}.header-legend .legend-badge:not(.active){opacity:.35}.header-legend .legend-badge.equipment{background:#ef4444}.header-legend .legend-badge.sizing{background:#22c55e}.header-legend .legend-badge.process-line{background:#f97316}.header-legend .legend-badge.text{background:#3b82f6}.header-legend .legend-badge.design-conditions{background:#a855f7}.header-legend .legend-badge.standalone{background:#14b8a6}.header-legend .legend-badge.shapes{background:#f59e0b}.fullview-header .btn-titan{margin-left:auto}.btn-back{padding:5px 10px;background:var(--bg-elevated);border:none;border-radius:var(--radius-xs);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.btn-back:hover{background:#64748b}.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 var(--border-color);border-radius:var(--radius-lg);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:var(--text-muted);font-size:13px;min-width:100px}.summary-value{color:var(--text-secondary);font-size:14px}.summary-stats{display:flex;gap:24px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.summary-stats .stat{flex:1;text-align:center;padding:12px;background:#0f172a80;border-radius:var(--radius-md)}.summary-stats .stat-number{font-size:28px;font-weight:700;color:var(--text-primary)}.summary-stats .stat-label{font-size:12px;color:var(--text-disabled);margin-top:4px}.summary-stats .stat.success .stat-number{color:var(--success)}.summary-stats .stat.error .stat-number{color:var(--error)}.drawings-section{margin-bottom:24px}.drawings-section h3{color:var(--text-primary);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 var(--border-color);border-radius:var(--radius-md);padding:14px;transition:all var(--transition-normal)}.drawing-card:hover{border-color:#475569}.drawing-card.success{border-left:3px solid var(--success)}.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:var(--success)}.drawing-card.error .drawing-status-icon{color:var(--error)}.drawing-id{color:var(--text-primary);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:var(--text-disabled)}.drawing-card-error{font-size:11px;color:var(--error)}.errors-section{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);padding:20px}.errors-section h3{color:var(--error);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:var(--radius-sm);font-size:12px}.error-drawing{color:var(--error);margin-right:8px}.error-message{color:#fca5a5}.fullview-body{display:flex;flex-direction:column;height:calc(100vh - 50px);overflow:hidden}.fullview-body .drawings-panel{width:280px;min-width:280px;max-width:280px;background:var(--bg-secondary);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:var(--radius-xs);color:var(--text-muted);font-size:12px;cursor:pointer;padding:4px 8px;z-index:10;transition:all .15s ease}.panel-collapse-toggle:hover{background:#3b82f64d;color:var(--text-primary)}.drawings-panel.collapsed .panel-collapse-toggle{right:auto;left:50%;transform:translate(-50%)}.panel-header{padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--bg-secondary)}.panel-header h3{margin:0 0 4px;color:var(--text-primary);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:var(--success)}.stat-failed{color:var(--error)}.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:var(--text-primary);padding:3px 8px;border-radius:var(--radius-xs);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 var(--border-color);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:var(--bg-primary);border:1px solid #3b82f6;border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color .2s ease}.global-search-input:focus{outline:none;border-color:var(--accent-hover);background:var(--bg-secondary)}.global-search-input::placeholder{color:var(--text-disabled)}.global-search-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-disabled);font-size:16px;cursor:pointer;padding:4px;transition:all .15s ease}.global-search-clear:hover{color:var(--text-primary)}.search-spinner{position:absolute;right:10px;color:var(--accent-primary);animation:spin 1s linear infinite}.global-search-results{margin-top:8px;max-height:300px;overflow-y:auto;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.search-results-header{padding:8px 12px;background:var(--bg-secondary);color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--border-color)}.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:var(--text-primary);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:var(--radius-xs);background:#94a3b81a;color:var(--text-muted)}.global-search-result-item .result-category.equipment{background:#3b82f626;color:var(--accent-hover)}.global-search-result-item .result-category.sizing{background:#10b98126;color:var(--success)}.global-search-result-item .result-drawing{font-size:10px;color:var(--text-disabled);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-search-no-results{margin-top:8px;padding:12px;background:#3341554d;border-radius:var(--radius-sm);color:var(--text-disabled);font-size:12px;text-align:center}.drawings-search{padding:8px 12px;border-bottom:1px solid var(--border-color);position:relative;flex-shrink:0}.drawings-search-input{width:100%;padding:8px 32px 8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color .2s ease}.drawings-search-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-secondary)}.drawings-search-input::placeholder{color:var(--text-disabled)}.drawings-search-clear{position:absolute;right:18px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-disabled);font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:var(--radius-xs);transition:all .15s ease}.drawings-search-clear:hover{color:var(--text-primary);background:#ffffff1a}.drawings-no-match{padding:20px;text-align:center;color:var(--text-disabled);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:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);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:var(--success);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:var(--error);font-size:14px;flex-shrink:0;margin-top:2px}.drawing-info{flex:1;min-width:0}.drawing-name{display:block;color:var(--text-primary);font-size:12px;font-weight:500;word-break:break-word;line-height:1.4}.drawing-counts{display:block;color:var(--text-disabled);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:var(--text-muted);padding:2px 6px;border-radius:var(--radius-xs);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:var(--error);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:var(--error);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:var(--radius-xs)}.error-item-compact strong{color:var(--error);margin-right:4px}.detail-panel{flex:1;min-height:0;overflow:hidden;background:var(--bg-primary);display:flex;flex-direction:row}.no-selection{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-disabled);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{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-muted);gap:16px}.detail-header{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.detail-header .detail-title{color:var(--text-muted);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:var(--radius-xs);transition:all .15s}.btn-collapse-image:hover{background:#a855f74d;color:var(--text-primary)}.btn-close-detail{background:none;border:none;color:var(--text-disabled);font-size:20px;cursor:pointer;padding:4px 8px}.btn-close-detail:hover{color:var(--text-primary)}.drawing-preview{padding:16px;background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.image-container{position:relative;max-width:100%;overflow:auto;background:var(--bg-secondary);border-radius:var(--radius-md)}.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:var(--success);background:#10b9811a}.bbox-overlay.sizing{border-color:var(--warning);background:#f59e0b1a}.bbox-overlay.process_line{border-color:#8b5cf6;background:#8b5cf61a}.equipment-section{padding:16px 20px}.equipment-section h4{margin:0 0 12px;color:var(--text-primary);font-size:14px;font-weight:600}.no-tags{color:var(--text-disabled);font-size:13px;text-align:center;padding:24px}.equipment-table-container{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--radius-md)}.equipment-table{width:100%;border-collapse:collapse;font-size:12px}.equipment-table th{background:var(--bg-secondary);color:var(--text-muted);font-weight:500;text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-color);white-space:nowrap;text-transform:uppercase;font-size:10px;letter-spacing:.05em}.equipment-table td{padding:10px 12px;border-bottom:1px solid #1e293b;color:var(--text-secondary)}.equipment-table tbody tr:hover{background:#3b82f60d}.equipment-table .tag-text{font-weight:600;color:var(--text-primary)}.type-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-xs);font-size:10px;font-weight:600;text-transform:uppercase}.type-badge.equipment{background:#10b98133;color:var(--success)}.type-badge.sizing{background:#f59e0b33;color:var(--warning)}.type-badge.process_line{background:#8b5cf633;color:#8b5cf6}.equipment-table .confidence{text-align:right;color:var(--text-disabled)}.no-image{display:flex;align-items:center;justify-content:center;padding:60px 40px;background:var(--bg-secondary);border-radius:var(--radius-md);margin:16px}.no-image p{color:var(--text-disabled);font-size:14px;margin:0}.detail-content{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:16px;gap:4px;min-width:0}.image-viewer{flex:2;display:flex;flex-direction:column;min-height:400px;border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary)}.zoom-controls{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.zoom-controls button{padding:4px 10px;background:var(--border-color);border:none;border-radius:var(--radius-xs);color:var(--text-primary);font-size:14px;cursor:pointer}.zoom-controls button:hover{background:var(--bg-elevated)}.zoom-controls span{color:var(--text-muted);font-size:12px;min-width:45px;text-align:center}.zoom-controls .zoom-hint{color:var(--text-disabled);font-size:10px;margin-left:auto;min-width:auto}.color-legend{display:flex;gap:12px;padding:6px 12px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);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:var(--accent-primary)}.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}.image-scroll-container img{display:block;height:auto;-webkit-user-select:none;user-select:none}.detail-content .results-section{flex:none;min-height:100px;max-height:800px;display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-secondary);margin-top:0;padding-top:0;border-top:none;position:relative}.results-resize-handle{position:absolute;top:0;left:0;right:0;height:8px;cursor:ns-resize;background:transparent;z-index:10;display:flex;align-items:center;justify-content:center}.results-resize-handle:hover{background:#3b82f633}.results-resize-handle:hover .resize-grip,.results-resize-handle:active .resize-grip{opacity:1}.resize-grip{width:40px;height:4px;background:var(--border-color);border-radius:2px;opacity:.5;transition:opacity .15s}.result-tabs{display:flex;background:var(--bg-primary);border-bottom:1px solid var(--border-color);flex-shrink:0}.result-tab{flex:1;padding:8px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap}.result-tab:hover{background:var(--border-color)}.result-tab.active{color:var(--text-primary);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:var(--accent-primary);color:var(--accent-primary)}.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:var(--bg-primary)}.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:var(--bg-primary);color:var(--text-muted);font-weight:500;font-size:10px;text-transform:uppercase;position:sticky;top:0;z-index:1}.results-table td{color:var(--text-primary);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:var(--text-disabled)}.results-table .location-badge{margin-left:8px;padding:2px 8px;background:#3b82f633;border-radius:10px;font-size:10px;color:var(--accent-hover)}.results-table .location-badge.clickable{cursor:pointer;transition:all .15s;border:1px solid transparent}.results-table .location-badge.clickable:hover{background:#3b82f666;border-color:var(--accent-hover);color:var(--text-primary)}.results-table .equipment-name-subtitle{font-size:10px;color:var(--text-muted);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:var(--bg-primary)}.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:var(--radius-sm);cursor:pointer;transition:background .15s}.design-condition-item:hover{background:#a855f74d}.design-condition-item .dc-label{font-size:10px;color:var(--warning);font-weight:600;text-transform:uppercase}.design-condition-item .dc-value{font-size:12px;color:var(--text-primary);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:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.fullscreen-header h3{margin:0;color:var(--text-primary);font-size:16px;font-weight:600}.fullscreen-controls{display:flex;align-items:center;gap:8px}.fullscreen-controls button{padding:6px 12px;background:var(--border-color);border:none;border-radius:var(--radius-xs);color:var(--text-primary);font-size:14px;cursor:pointer;transition:background .2s}.fullscreen-controls button:hover{background:var(--bg-elevated)}.fullscreen-controls span{color:var(--text-muted);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:var(--bg-secondary);border-bottom:1px solid var(--border-color);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:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:border-color .2s}.search-input:focus{outline:none;border-color:var(--accent-primary);background:var(--bg-secondary)}.search-input::placeholder{color:var(--text-disabled)}.search-expand{position:absolute;right:32px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-disabled);font-size:12px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:var(--radius-xs);transition:all .15s ease;z-index:2}.search-expand:hover{color:var(--text-primary);background:#ffffff1a}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-disabled);font-size:18px;cursor:pointer;padding:2px 6px;line-height:1;border-radius:var(--radius-xs);transition:all .15s ease;z-index:2}.search-clear:hover{color:var(--text-primary);background:#ffffff1a}.search-results{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);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 var(--border-color);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:var(--accent-primary)}.search-result-item.design_conditions .search-result-category{background:#a855f733;color:#a855f7}.search-result-text{color:var(--text-primary);font-size:13px;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-more{padding:8px 14px;color:var(--text-disabled);font-size:12px;text-align:center;font-style:italic}.search-no-results{padding:16px;color:var(--text-disabled);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:var(--radius-xs);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:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-primary);font-size:13px;width:200px;margin-right:12px}.fullscreen-search-input:focus{outline:none;border-color:var(--accent-primary)}.fullscreen-search-input::placeholder{color:var(--text-disabled)}.fullscreen-search-results{position:absolute;top:100px;left:50%;transform:translate(-50%);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);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:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:12px;flex-shrink:0}.fullscreen-legend.clickable .legend-item{cursor:pointer;padding:4px 10px;border-radius:var(--radius-xs);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:var(--bg-secondary);border:1px solid #475569;border-radius:var(--radius-md);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:var(--bg-primary);border-bottom:1px solid var(--border-color)}.bbox-tooltip-category{font-size:11px;text-transform:uppercase;font-weight:600;padding:3px 8px;border-radius:var(--radius-xs)}.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:var(--accent-primary)}.bbox-tooltip-category.design_conditions{background:#a855f733;color:#a855f7}.bbox-tooltip-close{background:transparent;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.bbox-tooltip-close:hover{color:var(--text-primary)}.bbox-tooltip-content{padding:12px}.bbox-tooltip-text{font-size:16px;font-weight:600;color:var(--text-primary);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:var(--text-disabled);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 var(--border-color);background:var(--bg-primary);flex-shrink:0}.expand-all-btn,.collapse-all-btn{padding:4px 12px;font-size:12px;border-radius:var(--radius-xs);border:1px solid #475569;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.expand-all-btn:hover,.collapse-all-btn:hover{background:#a855f71a;border-color:#a855f7;color:var(--text-primary)}.equipment-details-list{display:flex;flex-direction:column;gap:8px;padding:12px;overflow-y:auto;flex:1;min-height:0}.equipment-detail-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);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:var(--radius-md)}.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:var(--text-disabled);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:var(--text-disabled);background:#64748b33;padding:2px 8px;border-radius:10px}.equipment-detail-header .zoom-btn{background:transparent;border:1px solid #475569;border-radius:var(--radius-xs);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:var(--text-secondary);font-weight:500;line-height:1.3;padding-left:22px}.equipment-detail-table{width:100%;border-collapse:collapse;background:var(--bg-primary);border-radius:0 0 8px 8px;overflow:hidden}.equipment-detail-table tr{border-bottom:1px solid var(--border-color);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:var(--warning);font-weight:600;text-transform:uppercase;font-size:12px;letter-spacing:.5px}.equipment-detail-table .detail-value{color:var(--text-primary);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:var(--bg-secondary);border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;margin-bottom:-1px}.filter-control{display:flex;align-items:center;gap:8px}.filter-control label{color:var(--text-muted);font-size:13px;font-weight:500}.type-filter-select{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:6px 12px;color:var(--text-primary);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:var(--text-disabled);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:var(--border-color)}.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:var(--radius-xs);color:var(--success);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:var(--space-xl)}.correlation-jobs-tab .jobs-filters{display:flex;gap:var(--space-md);align-items:center}.correlation-jobs-tab .status-filter{padding:var(--space-sm) var(--space-md);border:1px solid var(--bg-elevated);background:#1e293bcc;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;cursor:pointer}.correlation-jobs-tab .status-filter:hover{border-color:var(--accent-primary)}.correlation-jobs-tab .status-filter:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.correlation-jobs-tab .jobs-search{flex:1;max-width:300px;padding:var(--space-sm) var(--space-md);border:1px solid var(--bg-elevated);background:#1e293bcc;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px}.correlation-jobs-tab .jobs-search::placeholder{color:var(--text-muted)}.correlation-jobs-tab .jobs-search:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.correlation-jobs-tab .refresh-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--bg-elevated);background:#1e293bcc;border-radius:var(--radius-sm);color:var(--text-muted);font-size:18px;cursor:pointer;transition:all var(--transition-normal)}.correlation-jobs-tab .refresh-btn:hover{border-color:var(--accent-primary);color:var(--accent-hover);background:var(--accent-bg-subtle)}.correlation-jobs-tab .running-job-banner{margin-bottom:var(--space-xl);padding:var(--space-lg) var(--space-xl);background:linear-gradient(135deg,var(--accent-bg-subtle) 0%,rgba(139,92,246,.1) 100%);border:1px solid var(--accent-border-subtle);border-radius:var(--radius-lg);animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{border-color:var(--accent-border-subtle)}50%{border-color:#3b82f699}}.correlation-jobs-tab .running-job-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.correlation-jobs-tab .running-icon{font-size:20px;animation:spin 1.5s linear infinite}.correlation-jobs-tab .running-title{font-size:15px;font-weight:600;color:var(--text-primary)}.correlation-jobs-tab .running-job-progress{margin-bottom:var(--space-md)}.correlation-jobs-tab .progress-bar-full{height:10px;background:#1e293bcc;border-radius:5px;overflow:hidden;margin-bottom:var(--space-sm)}.correlation-jobs-tab .progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary) 0%,#8b5cf6 100%);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:var(--accent-hover);font-size:18px}.correlation-jobs-tab .progress-count{color:var(--text-muted)}.correlation-jobs-tab .progress-eta{color:var(--warning);font-weight:500;margin-left:var(--space-md)}.correlation-jobs-tab .running-current{font-size:12px;color:var(--text-muted);margin-bottom:var(--space-md)}.correlation-jobs-tab .current-pair-name{color:var(--text-secondary);font-family:monospace}.correlation-jobs-tab .running-job-actions{display:flex;justify-content:flex-end}.correlation-jobs-tab .cancel-job-btn{padding:var(--space-sm) var(--space-lg);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);color:var(--error);font-size:13px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-normal)}.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:var(--space-md) var(--space-lg);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-md);color:#fca5a5;margin-bottom:var(--space-lg)}.correlation-jobs-tab .jobs-error button{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:18px;padding:0 var(--space-xs)}.correlation-jobs-tab .jobs-loading{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--text-muted);font-size:14px}.correlation-jobs-tab .jobs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px var(--space-3xl);text-align:center;background:#0f172a66;border:1px dashed var(--border-color);border-radius:var(--radius-lg)}.correlation-jobs-tab .jobs-empty .empty-icon{font-size:48px;margin-bottom:var(--space-lg);opacity:.6}.correlation-jobs-tab .jobs-empty h3{margin:0 0 var(--space-sm) 0;color:var(--text-secondary);font-size:18px;font-weight:600}.correlation-jobs-tab .jobs-empty p{margin:0;color:var(--text-muted);font-size:14px}.correlation-jobs-tab .jobs-list{flex:1;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a66}.correlation-jobs-tab .jobs-table-header{display:grid;grid-template-columns:40px 110px 1fr 150px 90px 90px 150px 90px 110px;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);background:#1e293bcc;border-bottom:1px solid var(--border-color);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);position:sticky;top:0;z-index:10}.correlation-jobs-tab .job-row-wrapper{border-bottom:1px solid var(--border-color)}.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:var(--space-lg);padding:14px var(--space-lg);cursor:pointer;transition:background var(--transition-fast);align-items:center}.correlation-jobs-tab .job-row:hover{background:#3b82f60d}.correlation-jobs-tab .job-row.expanded{background:var(--accent-bg-subtle);border-bottom:1px solid var(--border-color)}.correlation-jobs-tab .col-name{display:flex;flex-direction:column;gap:var(--space-xs);overflow:hidden}.correlation-jobs-tab .job-name{font-weight:500;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .current-pair{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .col-revisions{display:flex;align-items:center;gap:var(--space-sm)}.correlation-jobs-tab .revision-arrow{color:var(--text-muted);font-size:12px}.correlation-jobs-tab .col-count{font-size:13px;color:var(--text-muted)}.correlation-jobs-tab .progress-mini{width:100%;height:3px;background:#94a3b833;border-radius:2px;margin-top:var(--space-xs);overflow:hidden}.correlation-jobs-tab .progress-mini .progress-bar{height:100%;background:var(--accent-primary);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:var(--warning)}.correlation-jobs-tab .score.low{color:var(--error)}.correlation-jobs-tab .col-date,.correlation-jobs-tab .col-duration{font-size:12px;color:var(--text-muted)}.correlation-jobs-tab .col-actions{display:flex;gap:var(--space-sm)}.correlation-jobs-tab .action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--radius-xs);background:none;cursor:pointer;font-size:12px;transition:all var(--transition-fast)}.correlation-jobs-tab .action-btn.run{color:#34d399}.correlation-jobs-tab .action-btn.run:hover{background:var(--success-bg-subtle);border-color:var(--success-border-subtle)}.correlation-jobs-tab .action-btn.cancel{color:#fb923c}.correlation-jobs-tab .action-btn.cancel:hover{background:var(--warning-bg-subtle);border-color:var(--warning-border-subtle)}.correlation-jobs-tab .action-btn.retry{color:var(--accent-hover)}.correlation-jobs-tab .action-btn.retry:hover{background:var(--accent-bg-subtle);border-color:var(--accent-border-subtle)}.correlation-jobs-tab .action-btn.delete{color:var(--error)}.correlation-jobs-tab .action-btn.delete:hover{background:var(--error-bg-subtle);border-color:var(--error-border-subtle)}.correlation-jobs-tab .job-details{padding:var(--space-xl);background:#0f172a99;border-top:1px solid var(--border-color)}.correlation-jobs-tab .details-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-xl);margin-bottom:var(--space-xl)}.correlation-jobs-tab .details-section h4{margin:0 0 var(--space-md) 0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.correlation-jobs-tab .details-section.sources h4{color:var(--accent-hover)}.correlation-jobs-tab .details-section.targets h4{color:#34d399}.correlation-jobs-tab .drawing-list{display:flex;flex-direction:column;gap:var(--space-xs);max-height:150px;overflow-y:auto}.correlation-jobs-tab .drawing-item{font-size:12px;color:var(--text-muted);padding:2px 0}.correlation-jobs-tab .drawing-item.more{color:var(--text-muted);font-style:italic}.correlation-jobs-tab .results-stats{display:flex;gap:var(--space-lg);margin-bottom:var(--space-md)}.correlation-jobs-tab .stat{display:flex;flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);background:#1e293b80;border-radius:var(--radius-sm);min-width:60px}.correlation-jobs-tab .stat-value{font-size:18px;font-weight:600;color:var(--text-secondary)}.correlation-jobs-tab .stat-label{font-size:10px;color:var(--text-muted);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:var(--warning)}.correlation-jobs-tab .stat.low .stat-value{color:var(--error)}.correlation-jobs-tab .score-distribution{display:flex;height:8px;border-radius:var(--radius-xs);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:var(--warning)}.correlation-jobs-tab .score-distribution .bar.low{background:var(--error)}.correlation-jobs-tab .job-error{padding:var(--space-md);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-sm);color:#fca5a5;font-size:13px;margin-bottom:var(--space-lg)}.correlation-jobs-tab .results-preview{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.correlation-jobs-tab .results-preview h4{margin:0 0 var(--space-md) 0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.correlation-jobs-tab .loading-results,.correlation-jobs-tab .no-results{font-size:13px;color:var(--text-muted);padding:var(--space-md);text-align:center}.correlation-jobs-tab .results-mini-table{display:flex;flex-direction:column;gap:var(--space-sm)}.correlation-jobs-tab .result-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);background:#1e293b80;border-radius:var(--radius-xs)}.correlation-jobs-tab .result-pair{font-size:13px;color:var(--text-muted);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:var(--warning)}.correlation-jobs-tab .result-score.low{color:var(--error)}.correlation-jobs-tab .details-actions{display:flex;gap:var(--space-md);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.correlation-jobs-tab .view-results-btn,.correlation-jobs-tab .rerun-btn{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.correlation-jobs-tab .view-results-btn{background:var(--btn-gradient-primary);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 var(--bg-elevated);color:var(--text-muted)}.correlation-jobs-tab .rerun-btn:hover{border-color:var(--accent-primary);color:var(--accent-hover)}.correlation-jobs-tab .jobs-tab-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.correlation-jobs-tab .results-table-enhanced{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-md)}.correlation-jobs-tab .result-row-enhanced{display:flex;align-items:stretch;gap:var(--space-lg);padding:var(--space-md);background:#0f172a99;border:1px solid var(--border-color);border-radius:var(--radius-md)}.correlation-jobs-tab .result-doc{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.correlation-jobs-tab .result-doc.source-doc{border-left:3px solid var(--accent-primary);padding-left:var(--space-sm)}.correlation-jobs-tab .result-doc.target-doc{border-left:3px solid var(--success);padding-left:var(--space-sm)}.correlation-jobs-tab .doc-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.correlation-jobs-tab .doc-name .page-indicator{color:var(--warning);font-weight:500;font-size:12px}.correlation-jobs-tab .doc-folder{font-size:11px;color:var(--text-muted)}.correlation-jobs-tab .doc-folder .folder-rev{color:var(--accent-hover)}.correlation-jobs-tab .doc-revision-assign{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.correlation-jobs-tab .current-rev{font-size:12px;color:var(--text-secondary);background:var(--accent-bg-subtle);padding:2px var(--space-sm);border-radius:var(--radius-xs);min-width:60px;text-align:center}.correlation-jobs-tab .revision-select{padding:var(--space-xs) var(--space-sm);font-size:11px;background:var(--bg-secondary);border:1px solid var(--bg-elevated);border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;min-width:100px}.correlation-jobs-tab .revision-select:hover{border-color:var(--accent-primary)}.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 var(--space-lg);min-width:80px}.correlation-jobs-tab .score-value{font-size:18px;font-weight:700}.correlation-jobs-tab .score-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.correlation-jobs-tab .success-toast{background:var(--success-bg-subtle);border:1px solid var(--success-border-subtle);color:#34d399;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font-size:12px;margin-bottom:var(--space-md);animation:fadeIn .2s ease}.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:var(--accent-primary)}.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:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--accent-bg-subtle);border:1px solid var(--accent-border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.correlation-jobs-tab .bulk-actions-bar .selection-count{font-size:14px;font-weight:500;color:var(--text-secondary)}.correlation-jobs-tab .bulk-actions-bar .btn-danger{padding:var(--space-sm) var(--space-lg);background:linear-gradient(135deg,var(--error-muted) 0%,#b91c1c 100%);border:none;border-radius:var(--radius-sm);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.correlation-jobs-tab .bulk-actions-bar .btn-danger:hover{background:linear-gradient(135deg,var(--error) 0%,var(--error-muted) 100%);box-shadow:0 2px 8px #ef44444d}.correlation-jobs-tab .bulk-actions-bar .btn-secondary{padding:var(--space-sm) var(--space-lg);background:transparent;border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.correlation-jobs-tab .bulk-actions-bar .btn-secondary:hover{border-color:var(--text-muted);color:var(--text-secondary)}.correlation-jobs-tab .similarity-explanation{font-size:12px;color:var(--text-muted);margin:0 0 var(--space-md) 0;padding:var(--space-sm) var(--space-md);background:#1e293b80;border-radius:var(--radius-sm);border-left:3px solid var(--accent-hover);line-height:1.5}.document-correlation-panel{display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--space-xl);overflow-y:auto}.panel-header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.panel-header h2{margin:0 0 var(--space-sm) 0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.panel-description{color:var(--text-muted);margin:0;font-size:14px;line-height:1.5}.panel-header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-xl)}.panel-header-left{flex:1}.color-mode-selector{display:flex;flex-direction:column;gap:var(--space-xs);min-width:200px}.color-mode-label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.color-mode-select{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all var(--transition-normal)}.color-mode-select:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.color-mode-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.color-mode-preview{display:flex;gap:var(--space-sm);align-items:center;margin-top:var(--space-xs)}button.color-mode-preview.clickable{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px 10px;cursor:pointer;transition:all var(--transition-normal)}button.color-mode-preview.clickable:hover{background:var(--bg-hover);border-color:var(--accent-primary)}button.color-mode-preview.clickable.active{border-color:var(--accent-primary);box-shadow:0 0 0 2px #6366f133}.edit-icon{font-size:12px;color:var(--text-muted);margin-left:4px}button.color-mode-preview.clickable:hover .edit-icon{color:var(--accent-primary)}.preview-dot{width:16px;height:16px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.2);transition:background-color var(--transition-normal)}.color-mode-header{display:flex;justify-content:space-between;align-items:center}.color-settings-toggle{width:24px;height:24px;border:1px solid var(--border-color);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:600;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.color-settings-toggle:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.color-settings-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;padding:var(--space-xl)}.color-settings-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);flex-shrink:0}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.modal-close-btn{width:32px;height:32px;border:none;background:var(--bg-tertiary);border-radius:var(--radius-md);color:var(--text-muted);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-normal)}.modal-close-btn:hover{background:var(--error);color:#fff}.modal-body{padding:var(--space-xl);overflow-y:auto;flex:1}.modal-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;flex-shrink:0}.modal-done-btn{padding:10px 32px;background:var(--accent-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.modal-done-btn:hover{background:var(--accent-secondary)}.color-settings-section{margin-bottom:var(--space-xl)}.color-settings-section:last-child{margin-bottom:0}.color-settings-section h4{margin:0 0 var(--space-sm) 0;font-size:14px;font-weight:600;color:var(--text-primary)}.color-settings-intro{font-size:13px;color:var(--text-muted);margin:0 0 var(--space-md) 0}.color-legend{display:flex;flex-direction:column;gap:var(--space-md)}.legend-item{display:flex;gap:var(--space-md);align-items:flex-start}.legend-color{width:24px;height:24px;border-radius:var(--radius-sm);flex-shrink:0;border:2px solid rgba(255,255,255,.15)}.legend-info{flex:1}.legend-label{font-weight:600;font-size:13px;color:var(--text-primary)}.legend-threshold{font-size:12px;color:var(--text-muted);margin-left:var(--space-xs)}.legend-description{font-size:12px;color:var(--text-secondary);margin:var(--space-xs) 0 0 0;line-height:1.4}.custom-color-pickers{display:flex;flex-direction:column;gap:var(--space-lg)}.color-picker-row{display:flex;flex-direction:column;gap:var(--space-sm)}.color-picker-row label{font-size:13px;font-weight:500;color:var(--text-primary)}.color-swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;padding:0;outline:none}.swatch:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.swatch:focus{box-shadow:0 0 0 2px var(--accent-primary)}.swatch.selected{border-color:#fff;box-shadow:0 0 0 2px var(--accent-primary),0 2px 8px #0000004d}.color-picker-input{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs)}.color-picker-row input[type=color]{width:40px;height:32px;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;padding:2px;background:var(--bg-tertiary)}.color-picker-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-picker-row input[type=color]::-webkit-color-swatch{border:none;border-radius:2px}.color-value{font-family:monospace;font-size:12px;color:var(--text-muted);padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.custom-color-popup{position:absolute;top:100%;right:0;margin-top:8px;z-index:100}.custom-color-popup-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:0 8px 24px #0006;min-width:280px}.custom-color-popup-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.popup-header h4{margin:0;font-size:14px;color:var(--text-primary)}.popup-close-btn{background:none;border:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:0 4px;line-height:1}.popup-close-btn:hover{color:var(--text-primary)}.custom-color-pickers-inline{display:flex;flex-direction:column;gap:var(--space-md)}.color-picker-inline{display:flex;flex-direction:column;gap:var(--space-xs)}.color-picker-inline label{font-size:12px;font-weight:500;color:var(--text-secondary)}.color-swatches-inline{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.swatch-small{width:22px;height:22px;border-radius:3px;border:2px solid transparent;cursor:pointer;transition:transform .1s,border-color .1s;padding:0}.swatch-small:hover{transform:scale(1.15)}.swatch-small.selected{border-color:#fff;box-shadow:0 0 0 1px var(--accent-primary)}.color-input-small{width:28px;height:22px;border:1px solid var(--border-color);border-radius:3px;cursor:pointer;padding:1px;background:var(--bg-tertiary)}.color-input-small::-webkit-color-swatch-wrapper{padding:0}.color-input-small::-webkit-color-swatch{border:none;border-radius:2px}.color-mode-selector{position:relative}.metrics-info{display:flex;flex-direction:column;gap:var(--space-md)}.metric-item{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.metric-name{font-weight:700;font-size:14px;color:var(--accent-primary)}.metric-full{font-size:12px;color:var(--text-muted);margin-left:var(--space-xs)}.metric-item p{margin:var(--space-xs) 0 0 0;font-size:12px;color:var(--text-secondary);line-height:1.5}.docs-info{display:flex;gap:var(--space-lg)}.doc-info-item{flex:1;padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.doc-type{display:inline-block;padding:4px 12px;border-radius:var(--radius-sm);font-size:12px;font-weight:600;margin-bottom:var(--space-sm)}.doc-type.source{background:#3b82f633;color:var(--accent-primary)}.doc-type.target{background:#22c55e33;color:var(--success)}.doc-info-item p{margin:0;font-size:12px;color:var(--text-secondary);line-height:1.5}.color-vision-info{display:flex;flex-direction:column;gap:var(--space-md)}.vision-item{padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-sm);border-left:3px solid var(--accent-primary)}.vision-name{font-weight:700;font-size:14px;color:var(--text-primary)}.vision-aka{font-size:12px;color:var(--text-muted);margin-left:var(--space-xs);font-style:italic}.vision-item p{margin:var(--space-sm) 0 0 0;font-size:12px;color:var(--text-secondary);line-height:1.6}.color-settings-section.collapsible{border:1px solid var(--border-color);border-radius:var(--radius-md);padding:0;background:var(--bg-tertiary)}.section-toggle{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);background:none;border:none;cursor:pointer;text-align:left}.section-toggle:hover{background:#ffffff08}.section-toggle h4{margin:0;flex:1}.toggle-icon{font-size:10px;color:var(--text-muted);width:12px}.toggle-hint{font-size:11px;color:var(--text-muted);font-weight:400}.color-settings-section.collapsible .color-settings-intro{padding:0 var(--space-lg)}.color-settings-section.collapsible .color-vision-info{padding:var(--space-md) var(--space-lg) var(--space-lg)}.color-settings-footer{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color);display:flex;justify-content:flex-end}.close-settings-btn{padding:8px 24px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.close-settings-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.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:var(--radius-xl);border:1px dashed var(--border-color);margin:20px auto;max-width:500px}.panel-message h2{color:var(--text-secondary);margin-bottom:var(--space-md);font-size:20px;font-weight:600}.panel-message p{font-size:14px;max-width:320px;margin:0 auto;line-height:1.7;color:var(--text-muted)}.panel-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.panel-tab{padding:10px var(--space-xl);border:none;background:transparent;border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:pointer;font-size:14px;font-weight:500;color:#64748b;transition:all var(--transition-normal);position:relative}.panel-tab:hover{color:var(--text-muted);background:var(--accent-bg-subtle)}.panel-tab.active{color:var(--accent-hover);background:var(--accent-bg-subtle)}.panel-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.results-tab-content{flex:1;overflow-y:auto}.mode-selector{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);padding-bottom:20px;border-bottom:1px solid var(--border-color)}.mode-btn{padding:10px 20px;border:1px solid var(--bg-elevated);background:#1e293b80;border-radius:var(--radius-md);cursor:pointer;font-size:14px;font-weight:500;color:var(--text-muted);transition:all var(--transition-normal)}.mode-btn:hover{background:var(--accent-bg-subtle);border-color:var(--accent-primary);color:var(--accent-hover)}.mode-btn.active{background:var(--btn-gradient-primary);border-color:var(--accent-primary);color:#fff;box-shadow:0 2px 8px #3b82f64d}.correlation-content{background:linear-gradient(180deg,var(--bg-primary) 0%,#020617 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);flex:1}.source-target-mode .selection-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.selection-column h3{margin:0 0 var(--space-lg) 0;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.document-list{max-height:450px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a80}.bulk-list{max-height:550px}.document-list::-webkit-scrollbar{width:6px}.document-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.document-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.document-list::-webkit-scrollbar-thumb:hover{background:#64748b}.folder-group{border-bottom:1px solid var(--border-color)}.folder-group:last-child{border-bottom:none}.folder-header{padding:10px 14px;background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);font-weight:600;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:var(--space-sm)}.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:var(--radius-xs);transition:all var(--transition-normal);flex-shrink:0}.folder-header .collapse-toggle:hover{background:var(--accent-bg-subtle);color:var(--accent-hover)}.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:var(--accent-primary);width:16px;height:16px}.folder-header .folder-name{color:var(--text-secondary)}.folder-header .folder-count{color:#64748b;font-weight:400}.folder-header .selected-count{margin-left:auto;font-size:10px;font-weight:500;color:var(--accent-hover);background:var(--accent-bg-subtle);padding:2px 6px;border-radius:var(--radius-xs);text-transform:none;letter-spacing:0}.folder-group.collapsed{margin-bottom:0}.folder-group.collapsed .folder-header{border-bottom-color:var(--bg-secondary)}.document-item{padding:var(--space-md) 14px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:all var(--transition-fast);border-bottom:1px solid rgba(51,65,85,.5)}.document-item:last-child{border-bottom:none}.document-item:hover{background:var(--accent-bg-subtle)}.document-item.selected{background:#3b82f633;border-left:3px solid var(--accent-primary);padding-left:11px}.document-item.selected-source{background:var(--accent-bg-subtle);border-left:3px solid var(--accent-primary);padding-left:11px}.document-item.selected-source:hover{background:#3b82f640}.document-item.selected-target{background:var(--success-bg-subtle);border-left:3px solid var(--success);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:var(--accent-primary);width:16px;height:16px}.document-name{flex:1;font-size:14px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-badge{padding:var(--space-xs) var(--space-sm);background:linear-gradient(135deg,#fbbf2433,#f59e0b26);color:var(--warning);border:1px solid rgba(251,191,36,.4);border-radius:var(--radius-sm);font-size:11px;font-weight:600}.bulk-mode h3{margin:0 0 var(--space-lg) 0;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em}.bulk-mode h3 span{color:var(--accent-hover);font-weight:700}.action-bar{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg)}.action-bar-info{color:var(--text-muted);font-size:13px}.results-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-color)}.results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.results-section h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.job-id-label{font-size:12px;color:var(--text-disabled);background:var(--accent-bg-subtle);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);font-family:monospace}.job-summary-section{background:linear-gradient(180deg,#1e293b99,#0f172a66);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl)}.job-summary-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid rgba(51,65,85,.5)}.job-summary-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.job-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-lg)}.summary-card{background:#0f172a66;border:1px solid rgba(51,65,85,.5);border-radius:var(--radius-md);padding:var(--space-md)}.summary-card.match-breakdown{grid-column:span 2}.summary-label{font-size:11px;font-weight:500;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.summary-value{font-size:18px;font-weight:600;color:var(--text-primary)}.summary-detail{font-size:12px;color:var(--text-disabled);margin-top:var(--space-xs)}.match-bars{display:flex;flex-direction:column;gap:var(--space-sm)}.match-bar{display:flex;align-items:center;justify-content:space-between}.bar-label{font-size:12px;color:var(--text-muted)}.bar-value{font-size:14px;font-weight:600;min-width:30px;text-align:right}.job-timing{font-size:12px;color:var(--text-disabled);margin-top:var(--space-lg);padding-top:var(--space-md);border-top:1px solid rgba(51,65,85,.5)}.timing-date{color:var(--bg-elevated)}.correlation-results-grid{display:flex;flex-direction:column;gap:var(--space-xl)}.result-card{background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg);transition:all var(--transition-normal)}.result-card:hover{border-color:var(--accent-primary);box-shadow:0 4px 16px #3b82f626}.result-overlay-image{margin-bottom:var(--space-md);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary);border:1px solid var(--border-color)}.result-overlay-image img{width:100%;height:auto;display:block;cursor:pointer;transition:transform var(--transition-normal)}.result-overlay-image img:hover{transform:scale(1.02)}.result-card-wide{background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-normal)}.result-card-wide:hover{border-color:var(--accent-primary);box-shadow:0 4px 20px #3b82f626}.result-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-color)}.result-title{font-size:14px;font-weight:600;color:var(--text-primary)}.result-scores-inline{display:flex;gap:var(--space-sm)}.result-images-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-lg)}.result-image-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.image-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-disabled)}.result-image-panel:first-child .image-label{color:var(--accent-hover)}.result-image-panel:nth-child(2) .image-label{color:var(--success)}.diff-panel .image-label{color:var(--warning)}.image-container{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);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 var(--transition-normal)}.image-container img:hover{transform:scale(1.02)}.image-filename{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.no-diff{color:var(--text-disabled);font-size:13px;padding:var(--space-lg);text-align:center}.diff-legend{display:flex;gap:var(--space-md);font-size:11px}.diff-legend .legend-item{display:flex;align-items:center;gap:var(--space-xs)}.legend-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.result-scores-detail{display:flex;gap:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--border-color)}.score-item{display:flex;align-items:center;gap:var(--space-sm)}.score-item .score-label{font-size:12px;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.05em}.score-item .score-value{font-size:14px;font-weight:600}.result-scores{display:flex;gap:var(--space-md)}.score{flex:1;text-align:center;padding:var(--space-md) var(--space-sm);background:#0f172a80;border-radius:var(--radius-md)}.score-label{display:block;font-size:11px;font-weight:600;color:var(--text-disabled);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.score-value{font-size:20px;font-weight:700;color:var(--text-primary)}.post-correlation-actions{margin-top:var(--space-xl);padding:var(--space-lg);background:linear-gradient(180deg,#1e293b80,#0f172a80);border:1px solid var(--border-color);border-radius:var(--radius-md)}.post-correlation-actions h4{margin:0 0 var(--space-lg) 0;font-size:14px;font-weight:600;color:var(--text-primary)}.revision-assign-row{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap}.revision-assign-row select,.revision-assign-row input[type=text]{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;transition:all var(--transition-normal)}.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:var(--accent-primary);box-shadow:var(--shadow-focus)}.search-bar{margin-bottom:var(--space-lg)}.search-input-wrapper{position:relative}.search-input-wrapper input{width:100%;padding:var(--space-md) var(--space-md) var(--space-md) 42px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;transition:all var(--transition-normal)}.search-input-wrapper input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.search-input-wrapper input::placeholder{color:var(--text-disabled)}.search-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-disabled);font-size:14px;pointer-events:none}.many-to-many-mode .selection-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.many-to-many-mode .search-bar.compact{margin-bottom:0}.many-to-many-mode .search-bar.compact input{padding:var(--space-sm) var(--space-md) var(--space-sm) 38px;font-size:13px}.column-filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-md)}.column-filters .search-bar.compact{flex:1;margin-bottom:0}.folder-filter{flex-shrink:0;width:140px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.folder-filter:hover{border-color:var(--bg-elevated)}.folder-filter:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.source-column .folder-filter:focus{border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.target-column .folder-filter:focus{border-color:var(--success);box-shadow:0 0 0 3px #10b98126}.count-badge{display:inline-block;padding:2px var(--space-sm);background:var(--btn-gradient-primary);color:#fff;border-radius:var(--radius-lg);font-size:12px;font-weight:600;margin-left:var(--space-sm)}.selection-column.source-column h3{color:var(--accent-hover)}.selection-column.source-column .count-badge{background:var(--btn-gradient-primary)}.selection-column.target-column h3{color:var(--success)}.selection-column.target-column .count-badge{background:var(--btn-gradient-success)}.selected-preview{margin-top:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--border-color);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:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-color)}.selected-preview-header span{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.selected-preview-header .clear-btn{padding:var(--space-xs) var(--space-sm);border:none;background:var(--error-bg-subtle);color:var(--error);font-size:11px;font-weight:500;border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-normal)}.selected-preview-header .clear-btn:hover{background:#ef444440}.selected-preview-list{display:flex;flex-direction:column;gap:var(--space-xs);max-height:140px;overflow-y:auto}.selected-preview-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:#1e293b80;border-radius:var(--radius-xs);font-size:12px}.source-preview .selected-preview-item{border-left:2px solid var(--accent-primary)}.target-preview .selected-preview-item{border-left:2px solid var(--success)}.selected-preview-item .remove-btn{width:18px;height:18px;padding:0;border:none;background:var(--error-bg-subtle);color:var(--error);font-size:14px;line-height:1;border-radius:50%;cursor:pointer;transition:all var(--transition-normal);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:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-preview-more{padding:var(--space-xs) var(--space-sm);text-align:center;font-size:11px;color:var(--text-disabled);font-style:italic}.correlation-matrix-container{overflow-x:auto;margin-top:var(--space-lg);border:1px solid var(--border-color);border-radius:var(--radius-md);background:#0f172a80}.correlation-matrix{width:100%;border-collapse:collapse;font-size:13px}.correlation-matrix th,.correlation-matrix td{padding:var(--space-sm) var(--space-md);text-align:center;border:1px solid var(--border-color)}.matrix-corner{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);color:var(--text-muted);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,var(--bg-secondary) 0%,var(--bg-primary) 100%);color:var(--text-secondary);font-size:11px;font-weight:600;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.matrix-row-header{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);color:var(--text-secondary);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 var(--transition-normal);position:relative}.matrix-cell.has-data:hover{transform:scale(1.05);z-index:1;box-shadow:var(--shadow-md)}.matrix-cell.no-data{background:#1e293b4d;cursor:default}.matrix-cell.expanded{z-index:10}.cell-score{font-weight:700;font-size:14px;color:var(--text-primary)}.no-data-marker{color:var(--bg-elevated);font-size:16px}.cell-details{position:absolute;top:100%;left:50%;transform:translate(-50%);background:var(--bg-secondary);border:1px solid var(--bg-elevated);border-radius:var(--radius-md);padding:var(--space-md);z-index:100;min-width:140px;box-shadow:var(--shadow-lg);text-align:left;font-size:12px;color:var(--text-secondary)}.cell-details div{padding:var(--space-xs) 0;border-bottom:1px solid var(--border-color)}.cell-details div:last-child{border-bottom:none}.matrix-help{color:var(--text-disabled);font-size:13px;margin:0 0 var(--space-sm) 0}.folder-multi-select{display:flex;flex-direction:column;gap:var(--space-sm);flex:1}.folder-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs);min-height:32px;align-items:center}.folder-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--accent-bg-subtle);border:1px solid rgba(59,130,246,.3);border-radius:var(--radius-lg);font-size:12px;color:var(--accent-hover)}.folder-chip.all-folders{background:#94a3b81a;border-color:#94a3b833;color:var(--text-muted)}.chip-remove{width:16px;height:16px;padding:0;border:none;background:var(--error-bg-subtle);color:var(--error);font-size:12px;line-height:1;border-radius:50%;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;justify-content:center}.chip-remove:hover{background:#ef444466}.folder-checkboxes{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-sm);background:#0f172a80;border:1px solid var(--border-color);border-radius:var(--radius-md);max-height:120px;overflow-y:auto}.folder-checkbox{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:#1e293b80;border-radius:var(--radius-xs);font-size:11px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.folder-checkbox:hover{background:#3b82f61a}.folder-checkbox input{width:14px;height:14px;accent-color:var(--accent-primary);cursor:pointer}.target-column .folder-chip{background:var(--success-bg-subtle);border-color:#10b9814d;color:var(--success)}.target-column .folder-checkbox input{accent-color:var(--success)}.target-column .folder-checkbox:hover{background:#10b9811a}.revision-selector-row{display:flex;gap:var(--space-xl);margin-top:var(--space-lg);padding:var(--space-lg);background:#1e293b66;border:1px solid var(--border-color);border-radius:var(--radius-md)}.revision-selector{flex:1;display:flex;align-items:center;gap:var(--space-sm)}.revision-selector label{font-size:13px;font-weight:600;color:var(--text-muted);white-space:nowrap}.revision-selector select{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;min-width:140px;cursor:pointer;transition:all var(--transition-normal)}.custom-revision-input{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;width:100px;transition:all var(--transition-normal)}.custom-revision-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.custom-revision-input::placeholder{color:var(--text-disabled)}.column-filters{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md)}.column-filters .search-bar.compact{margin-bottom:0}.diff-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.diff-viewer-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:1600px;height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border-color)}.diff-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);background:var(--bg-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.diff-viewer-header .header-info{display:flex;align-items:center;gap:var(--space-lg)}.diff-viewer-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.diff-viewer-header .revision-label{font-size:13px;color:var(--text-muted);background:var(--bg-tertiary);padding:4px 10px;border-radius:var(--radius-xs)}.diff-viewer-header .close-btn{background:transparent;border:none;color:var(--text-muted);font-size:28px;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .15s ease}.diff-viewer-header .close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.diff-viewer-toolbar{display:flex;align-items:center;gap:var(--space-xl);padding:var(--space-md) var(--space-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.diff-viewer-toolbar .toolbar-group{display:flex;align-items:center;gap:var(--space-sm)}.diff-viewer-toolbar label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.diff-viewer-toolbar select{background:var(--bg-secondary);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 12px;font-size:13px;cursor:pointer}.diff-viewer-toolbar select:hover{border-color:var(--text-muted)}.diff-viewer-toolbar select:focus{outline:none;border-color:var(--accent-primary)}.diff-viewer-toolbar button{background:var(--bg-tertiary);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-primary);padding:6px 12px;font-size:13px;cursor:pointer;transition:all .15s ease}.diff-viewer-toolbar button:hover{background:var(--bg-elevated);border-color:var(--text-muted)}.diff-viewer-content{flex:1;display:flex;overflow:hidden}.diff-canvas-container{flex:1;overflow:hidden;position:relative;background:var(--bg-primary);background-image:linear-gradient(45deg,var(--bg-secondary) 25%,transparent 25%),linear-gradient(-45deg,var(--bg-secondary) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--bg-secondary) 75%),linear-gradient(-45deg,transparent 75%,var(--bg-secondary) 75%);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.diff-canvas-container .image-wrapper{position:absolute;top:0;left:0;will-change:transform}.diff-canvas-container img{display:block;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.diff-canvas-container .regions-overlay{position:absolute;top:0;left:0;pointer-events:none}.diff-canvas-container .regions-overlay rect{pointer-events:auto;transition:fill .15s ease,stroke-width .15s ease}.diff-canvas-container .no-image{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.regions-sidebar{width:280px;background:var(--bg-primary);border-left:1px solid var(--border-color);display:flex;flex-direction:column}.regions-sidebar .sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:14px var(--space-lg);border-bottom:1px solid var(--border-color)}.regions-sidebar .sidebar-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.regions-sidebar .sidebar-header .count{background:var(--bg-tertiary);color:var(--text-muted);padding:2px 8px;border-radius:10px;font-size:12px;font-weight:500}.regions-sidebar .regions-list{flex:1;overflow-y:auto;padding:var(--space-sm)}.regions-sidebar .region-item{display:flex;align-items:flex-start;gap:10px;padding:10px var(--space-md);border-radius:var(--radius-md);cursor:pointer;transition:background .15s ease;margin-bottom:4px}.regions-sidebar .region-item:hover{background:var(--bg-secondary)}.regions-sidebar .region-item.selected{background:var(--bg-secondary);border:1px solid var(--bg-elevated)}.regions-sidebar .region-item .region-icon{width:24px;height:24px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.regions-sidebar .region-item.added .region-icon{background:var(--success-bg-subtle);color:var(--success)}.regions-sidebar .region-item.removed .region-icon{background:var(--error-bg-subtle);color:var(--error)}.regions-sidebar .region-item.modified .region-icon{background:var(--warning-bg-subtle);color:var(--warning)}.regions-sidebar .region-item .region-info{flex:1;min-width:0}.regions-sidebar .region-item .region-tag{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.regions-sidebar .region-item .region-description{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.regions-sidebar .region-item .region-category{font-size:11px;color:var(--text-muted);text-transform:capitalize}.regions-sidebar .no-regions{text-align:center;color:var(--text-muted);font-size:13px;padding:var(--space-xl) var(--space-lg)}.diff-viewer-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);background:var(--bg-primary);border-top:1px solid var(--border-color);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.diff-viewer-footer .legend{display:flex;align-items:center;gap:var(--space-xl)}.diff-viewer-footer .legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.diff-viewer-footer .legend-item .legend-color{width:12px;height:12px;border-radius:3px}.diff-viewer-footer .legend-item.added .legend-color{background:var(--success)}.diff-viewer-footer .legend-item.removed .legend-color{background:var(--error)}.diff-viewer-footer .legend-item.modified .legend-color{background:var(--warning)}.diff-viewer-footer .instructions{font-size:12px;color:var(--text-muted)}.regions-list::-webkit-scrollbar{width:6px}.regions-list::-webkit-scrollbar-track{background:transparent}.regions-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.regions-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@media (max-width: 1200px){.regions-sidebar{width:240px}}@media (max-width: 900px){.diff-viewer-content{flex-direction:column}.regions-sidebar{width:100%;height:200px;border-left:none;border-top:1px solid var(--border-color)}.regions-sidebar .regions-list{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding:var(--space-sm)}.regions-sidebar .region-item{flex:1 1 200px;max-width:300px}}.revision-analysis-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);color:var(--text-primary)}.revision-analysis-header{padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--border-color);background:var(--bg-header)}.revision-analysis-header h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.revision-analysis-header .subtitle{margin:var(--space-sm) 0 0;font-size:14px;color:var(--text-muted)}.revision-analysis-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:80px 40px;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius-xl);border:1px dashed var(--border-color);margin:20px auto;max-width:500px}.revision-analysis-empty h2{margin:0 0 12px;font-size:20px;font-weight:600;color:var(--text-secondary)}.revision-analysis-empty p{font-size:14px;max-width:320px;margin:0 auto;line-height:1.7;color:var(--text-muted)}.revision-analysis-tabs{display:flex;gap:4px;padding:0 var(--space-2xl);border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.revision-analysis-tabs .tab{padding:10px 24px;background:transparent;border:none;border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:2px solid transparent;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;position:relative}.revision-analysis-tabs .tab:hover{color:var(--text-secondary);background:var(--accent-bg-subtle)}.revision-analysis-tabs .tab.active{color:var(--accent-hover);background:var(--accent-bg-subtle)}.revision-analysis-tabs .tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent-primary);border-radius:2px 2px 0 0}.revision-analysis-content{flex:1;overflow:auto;padding:var(--space-xl) var(--space-2xl)}.compare-tab{display:flex;flex-direction:column;gap:var(--space-xl)}.revision-selectors{display:flex;align-items:flex-end;gap:var(--space-lg);padding:var(--space-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.revision-selector{display:flex;flex-direction:column;gap:var(--space-sm)}.revision-selector label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.revision-selector select{padding:10px 14px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px;min-width:160px;cursor:pointer}.revision-selector select:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.revision-arrow{font-size:24px;color:var(--text-muted);padding-bottom:8px}.btn-compare{padding:10px 24px;background:var(--btn-gradient-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-compare:hover:not(:disabled){background:var(--btn-gradient-primary-hover)}.btn-compare:disabled{background:var(--bg-tertiary);cursor:not-allowed}.change-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.change-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.change-card .change-icon{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;margin-bottom:var(--space-md)}.change-card.added .change-icon{background:var(--success-bg-subtle);color:var(--success)}.change-card.removed .change-icon{background:var(--error-bg-subtle);color:var(--error)}.change-card.modified .change-icon{background:var(--warning-bg-subtle);color:var(--warning)}.change-card.unchanged .change-icon{background:var(--bg-tertiary);color:var(--text-muted)}.change-card .change-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.change-card .change-count{font-size:32px;font-weight:700;color:var(--text-primary)}.error-message{padding:var(--space-lg);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-md);color:var(--error);font-size:14px}.comparison-results{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.comparison-results h3{margin:0;padding:var(--space-lg) var(--space-xl);font-size:14px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.comparison-list{max-height:400px;overflow-y:auto}.comparison-item{display:flex;align-items:center;justify-content:space-between;padding:14px var(--space-xl);border-bottom:1px solid var(--border-light);cursor:pointer;transition:background .15s}.comparison-item:hover{background:var(--accent-bg-subtle)}.comparison-item.selected{background:var(--accent-bg-medium);border-left:3px solid var(--accent-primary)}.comparison-name{font-size:14px;color:var(--text-primary)}.comparison-stats{display:flex;gap:var(--space-sm)}.comparison-stats .stat{font-size:12px;font-weight:600;padding:2px 8px;border-radius:var(--radius-xs)}.comparison-stats .stat.added{background:var(--success-bg-subtle);color:var(--success)}.comparison-stats .stat.removed{background:var(--error-bg-subtle);color:var(--error)}.comparison-stats .stat.modified{background:var(--warning-bg-subtle);color:var(--warning)}.no-results{padding:60px var(--space-xl);text-align:center;color:var(--text-muted)}.history-tab{display:flex;flex-direction:column;height:100%;gap:var(--space-lg)}.history-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.history-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.history-actions{display:flex;align-items:center;gap:var(--space-sm)}.revision-select-small{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;cursor:pointer}.revision-select-small:focus{outline:none;border-color:var(--accent-primary)}.revision-arrow-small{color:var(--text-muted);font-size:14px}.btn-run-analysis{padding:8px 16px;background:var(--btn-gradient-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-run-analysis:hover:not(:disabled){background:var(--btn-gradient-primary-hover)}.btn-run-analysis:disabled{background:var(--bg-tertiary);cursor:not-allowed}.history-content{display:grid;grid-template-columns:280px 1fr 1fr;gap:var(--space-lg);flex:1;min-height:0}.job-list-panel,.drawings-panel,.changes-panel{display:flex;flex-direction:column;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}.panel-header{padding:12px 16px;border-bottom:1px solid var(--border-color);flex-shrink:0;background:var(--bg-secondary);display:flex;align-items:center;justify-content:space-between}.panel-header h3{margin:0;color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.2}.panel-header .panel-count{font-size:12px;color:var(--text-muted);font-weight:500;background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-xs)}.btn-refresh-small{padding:4px 10px;background:var(--accent-bg-subtle);border:1px solid var(--accent-border-subtle);border-radius:var(--radius-xs);color:var(--accent-hover);font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-refresh-small:hover:not(:disabled){background:var(--accent-bg-medium)}.btn-refresh-small:disabled{opacity:.5;cursor:not-allowed}.job-list,.drawings-list,.changes-list{flex:1;overflow-y:auto}.job-list::-webkit-scrollbar,.drawings-list::-webkit-scrollbar,.changes-list::-webkit-scrollbar{width:6px}.job-list::-webkit-scrollbar-track,.drawings-list::-webkit-scrollbar-track,.changes-list::-webkit-scrollbar-track{background:var(--bg-secondary)}.job-list::-webkit-scrollbar-thumb,.drawings-list::-webkit-scrollbar-thumb,.changes-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.job-item{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all .15s ease}.job-item:hover{background:var(--accent-bg-subtle)}.job-item.selected{background:var(--accent-bg-medium);border-left:3px solid var(--accent-primary);padding-left:13px}.job-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:6px}.status-badge{padding:2px 8px;border-radius:var(--radius-xs);font-size:11px;font-weight:600;text-transform:uppercase}.status-completed{background:var(--success-bg-subtle);color:var(--success)}.status-running{background:var(--accent-bg-subtle);color:var(--accent-hover)}.status-pending{background:var(--warning-bg-subtle);color:var(--warning)}.status-failed{background:var(--error-bg-subtle);color:var(--error)}.trigger-badge{padding:2px 6px;border-radius:var(--radius-xs);font-size:10px;font-weight:500;background:var(--bg-tertiary);color:var(--text-muted)}.job-revisions{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.job-stats{display:flex;gap:var(--space-sm);margin-bottom:4px}.stat-item{font-size:12px;font-weight:600}.stat-item.added{color:var(--success)}.stat-item.removed{color:var(--error)}.stat-item.modified{color:var(--warning)}.job-meta{font-size:11px;color:var(--text-muted)}.progress-bar{margin-top:var(--space-sm);height:4px;background:var(--bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));border-radius:2px;transition:width .3s ease}.drawing-item{padding:10px var(--space-lg);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all .15s ease}.drawing-item:hover{background:var(--accent-bg-subtle)}.drawing-item.selected{background:var(--accent-bg-medium);border-left:3px solid var(--accent-primary);padding-left:13px}.drawing-name{font-size:13px;color:var(--text-primary);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawing-stats{display:flex;flex-wrap:wrap;gap:6px}.drawing-stats .stat{font-size:11px;font-weight:600;padding:1px 6px;border-radius:3px}.drawing-stats .stat.added{background:var(--success-bg-subtle);color:var(--success)}.drawing-stats .stat.removed{background:var(--error-bg-subtle);color:var(--error)}.drawing-stats .stat.modified{background:var(--warning-bg-subtle);color:var(--warning)}.drawing-stats .stat.lines-added{background:var(--accent-bg-subtle);color:var(--accent-hover)}.drawing-stats .stat.lines-removed{background:#a78bfa33;color:#a78bfa}.change-item-detail{display:flex;gap:var(--space-md);padding:10px var(--space-lg);border-bottom:1px solid var(--border-light);border-left:3px solid transparent}.change-item-detail.change-added{border-left-color:var(--success)}.change-item-detail.change-removed{border-left-color:var(--error)}.change-item-detail.change-modified{border-left-color:var(--warning)}.change-icon-small{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);font-size:14px;font-weight:700;flex-shrink:0}.change-added .change-icon-small{background:var(--success-bg-subtle);color:var(--success)}.change-removed .change-icon-small{background:var(--error-bg-subtle);color:var(--error)}.change-modified .change-icon-small{background:var(--warning-bg-subtle);color:var(--warning)}.change-content{flex:1;min-width:0}.change-tag{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.change-description{font-size:12px;color:var(--text-muted);margin-bottom:4px}.change-attributes{font-size:11px;color:var(--text-muted);margin-bottom:4px}.attribute-change{padding:2px 0}.change-category{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.loading-indicator{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-muted);font-size:14px}.empty-state{display:flex;align-items:center;justify-content:center;padding:40px var(--space-xl);color:var(--text-muted);font-size:13px;text-align:center}.changes-tab{display:flex;flex-direction:column;gap:var(--space-xl)}.summary-filters{display:flex;align-items:center;padding:var(--space-lg) var(--space-xl);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.filter-group{display:flex;align-items:center;gap:var(--space-md)}.filter-group label{font-size:13px;font-weight:500;color:var(--text-muted)}.filter-group select{padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;cursor:pointer}.filter-group select:focus{outline:none;border-color:var(--accent-primary)}.filter-group .arrow{color:var(--text-muted)}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.summary-card{display:flex;flex-direction:column;align-items:center;padding:var(--space-xl) var(--space-xl);background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.summary-card .card-value{font-size:36px;font-weight:700;margin-bottom:4px}.summary-card .card-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.summary-card.added .card-value{color:var(--success)}.summary-card.removed .card-value{color:var(--error)}.summary-card.modified .card-value{color:var(--warning)}.summary-card.unchanged .card-value{color:var(--text-muted)}.summary-details{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.detail-section{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}.detail-section h4{margin:0;padding:12px 16px;font-size:14px;font-weight:600;color:var(--text-primary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.type-breakdown,.top-drawings,.revision-pairs{padding:var(--space-sm) 0;max-height:240px;overflow-y:auto}.type-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-light)}.type-row:last-child{border-bottom:none}.type-name{font-size:13px;color:var(--text-primary)}.type-stats{display:flex;gap:var(--space-sm)}.type-stats .stat{font-size:11px;font-weight:600;padding:2px 6px;border-radius:3px}.type-stats .stat.added{background:var(--success-bg-subtle);color:var(--success)}.type-stats .stat.removed{background:var(--error-bg-subtle);color:var(--error)}.type-stats .stat.modified{background:var(--warning-bg-subtle);color:var(--warning)}.top-drawing-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-light)}.top-drawing-row:last-child{border-bottom:none}.top-drawing-row .rank{font-size:12px;font-weight:600;color:var(--text-muted);width:24px}.top-drawing-row .drawing-name{flex:1;font-size:13px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-drawing-row .total-changes{font-size:12px;color:var(--text-muted)}.revision-pair{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border-light)}.revision-pair:last-child{border-bottom:none}.revision-pair .source,.revision-pair .target{font-size:13px;font-weight:500;color:var(--text-primary);padding:4px 8px;background:var(--accent-bg-subtle);border-radius:var(--radius-xs)}.revision-pair .arrow{color:var(--text-muted);font-size:12px}.lines-summary{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);padding:var(--space-lg) var(--space-xl)}.lines-summary h4{margin:0 0 var(--space-md);font-size:14px;font-weight:600;color:var(--text-primary)}.lines-stats{display:flex;gap:var(--space-xl)}.lines-stats .stat{font-size:14px;color:var(--text-muted)}.empty-state-large{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;background:var(--bg-card);border-radius:var(--radius-xl);border:1px dashed var(--border-color)}.empty-state-large h3{margin:0 0 var(--space-md);font-size:18px;font-weight:600;color:var(--text-primary)}.empty-state-large p{margin:0;font-size:14px;color:var(--text-muted);max-width:400px}.btn-view-drawing{background:var(--btn-gradient-primary);border:none;border-radius:var(--radius-xs);padding:4px 10px;font-size:11px;font-weight:600;color:#fff;cursor:pointer;transition:all .15s ease;margin-left:auto}.btn-view-drawing:hover{background:var(--btn-gradient-primary-hover);transform:translateY(-1px)}.btn-view-drawing:active{transform:translateY(0)}.btn-locate{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-bg-subtle);border:1px solid var(--accent-border-subtle);border-radius:var(--radius-xs);color:var(--accent-hover);cursor:pointer;transition:all .15s ease;flex-shrink:0;align-self:center}.btn-locate:hover{background:var(--accent-bg-medium);border-color:var(--accent-primary);color:var(--accent-light)}.btn-locate:active{transform:scale(.95)}.btn-locate svg{width:14px;height:14px}.panel-header{gap:var(--space-sm)}.panel-header h3{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.extraction-status-warning{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-lg);background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.extraction-status-warning .warning-icon{width:20px;height:20px;color:var(--warning);flex-shrink:0}.extraction-status-warning .warning-content{flex:1}.extraction-status-warning .warning-title{font-size:14px;font-weight:600;color:var(--warning);margin-bottom:4px}.extraction-status-warning .warning-message{font-size:13px;color:var(--text-secondary);line-height:1.5}.extraction-status-warning .warning-details{display:flex;gap:var(--space-lg);margin-top:var(--space-sm);font-size:12px;color:var(--text-muted)}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:80px 40px;color:var(--text-muted);background:var(--bg-card);border-radius:var(--radius-xl);border:1px dashed var(--border-color);margin:var(--space-xl) auto;max-width:500px}.placeholder-content h2{margin:0 0 var(--space-md);font-size:20px;font-weight:600;color:var(--text-secondary)}.placeholder-content p{font-size:14px;max-width:320px;line-height:1.7;color:var(--text-muted)}.placeholder-content .coming-soon{margin-top:var(--space-lg);font-style:italic;color:var(--text-muted)}.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}.loading-state{flex:1}.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}}.shape-test-jobs-panel{display:flex;height:100%;background:var(--bg-primary);color:var(--text-primary)}.jobs-sidebar{width:320px;min-width:320px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-secondary)}.jobs-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-color)}.jobs-sidebar-header h2{font-size:16px;font-weight:600;margin:0}.job-count{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);padding:4px 10px;border-radius:12px}.jobs-list{flex:1;overflow-y:auto;padding:12px}.job-item{position:relative;display:flex;align-items:flex-start;gap:10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:14px;margin-bottom:10px;cursor:pointer;transition:all .15s}.job-item:hover{border-color:var(--accent-primary)}.job-item.selected{border-color:var(--accent-primary);background:#3b82f61a}.job-item.running{border-left:3px solid #3b82f6}.job-item.completed{border-left:3px solid #22c55e}.job-item.failed{border-left:3px solid #ef4444}.job-item.cancelled{border-left:3px solid #6b7280;opacity:.7}.job-item.pending{border-left:3px solid #f59e0b}.job-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.job-type{font-weight:600;font-size:13px;text-transform:capitalize}.job-status{font-size:12px;font-weight:500;text-transform:capitalize}.job-item-info{display:flex;gap:8px;font-size:11px;color:var(--text-muted);margin-bottom:8px}.job-progress{margin-bottom:8px}.job-running-stats{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--text-muted);margin-top:6px}.job-running-stats .sheets-progress{color:var(--text-secondary)}.job-running-stats .live-matches{color:var(--accent-primary);font-weight:500}.job-summary{display:flex;gap:8px;flex-wrap:wrap}.job-summary span{font-size:11px;padding:2px 8px;border-radius:4px;background:var(--bg-tertiary)}.match-count{color:var(--text-secondary)}.tp-count{background:#22c55e26!important;color:#22c55e!important}.fp-count{background:#ef444426!important;color:#ef4444!important}.job-duration{background:#3b82f626!important;color:#3b82f6!important;font-variant-numeric:tabular-nums}.job-cancel-button{margin-top:8px}.job-delete-button{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;cursor:pointer;opacity:0;transition:all .15s}.job-item:hover .job-delete-button{opacity:.6}.job-delete-button:hover{opacity:1!important;background:#ef44441a}.job-delete-button svg{stroke:var(--text-muted)}.job-delete-button:hover svg{stroke:#ef4444}.jobs-batch-actions{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.select-all-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-secondary)}.select-all-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.batch-delete-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;cursor:pointer;transition:all .15s}.batch-delete-btn:hover:not(:disabled){background:#ef444433;border-color:#ef4444}.batch-delete-btn:disabled{opacity:.6;cursor:not-allowed}.batch-delete-btn svg{stroke:currentColor}.job-item-content{flex:1;min-width:0}.job-select-checkbox{flex-shrink:0;padding-top:2px;cursor:pointer}.job-select-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--accent-primary)}.job-item.batch-selected{background:#ef444414;border-color:#ef44444d}.job-item.batch-selected:not(.selected){border-color:#ef44444d}.results-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.no-job-selected{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted)}.no-job-selected h3{font-size:18px;margin-bottom:8px;color:var(--text-secondary)}.results-header-compact{border-bottom:1px solid var(--border-color);background:var(--bg-secondary);flex-shrink:0}.job-header-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 16px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--text-primary)}.job-header-toggle:hover{background:var(--bg-hover)}.job-header-toggle .toggle-icon{font-size:10px;color:var(--text-muted);width:12px;flex-shrink:0}.job-header-toggle .job-title{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job-header-toggle .job-type-badge-inline{font-size:10px;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-secondary);flex-shrink:0}.job-header-toggle .job-summary-inline{font-size:12px;color:var(--text-muted);margin-left:auto;white-space:nowrap;flex-shrink:0}.job-header-toggle .job-summary-inline .tp-inline{color:#22c55e}.job-header-toggle .job-summary-inline .fp-inline{color:#ef4444}.job-details-expanded{padding:8px 16px 12px 36px;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.job-params{display:flex;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:8px}.job-progress-large{margin-top:8px}.progress-text{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.progress-stats{font-size:12px;color:var(--text-muted);margin-top:6px}.stats-section-wrapper{border-bottom:1px solid var(--border-color);flex-shrink:0}.stats-toggle-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 20px;background:var(--bg-secondary);border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.stats-toggle-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.stats-toggle-btn .toggle-icon{font-size:10px;color:var(--text-muted)}.stats-summary{flex:1;text-align:left;font-weight:500}.stats-summary .tp-inline{color:#22c55e;margin-left:4px}.stats-summary .fp-inline{color:#ef4444;margin-left:4px}.toggle-hint{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stats-row{display:flex;gap:8px;padding:10px 20px;flex-shrink:0}.stat-card{flex:1;min-width:80px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;padding:8px 12px;text-align:center}.stat-value{display:block;font-size:18px;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.stat-tp .stat-value{color:#22c55e}.stat-fp .stat-value{color:#ef4444}.stat-unreviewed .stat-value{color:#f59e0b}.filter-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-primary);flex-shrink:0;flex-wrap:wrap;gap:12px}.tag-search-filter{display:flex;align-items:center;position:relative}.tag-search-input{width:150px;padding:6px 28px 6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary)}.tag-search-input::placeholder{color:var(--text-tertiary)}.tag-search-input:focus{outline:none;border-color:#3b82f6}.clear-search-btn{position:absolute;right:6px;background:transparent;border:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.clear-search-btn:hover{color:var(--text-primary)}.duplicate-tags-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.duplicate-tags-btn:hover{background:#f59e0b1a;border-color:#f59e0b;color:#f59e0b}.duplicate-tags-btn.active{background:#f59e0b33;border-color:#f59e0b;color:#f59e0b}.duplicate-tags-btn svg{stroke:currentColor}.duplicate-tags-btn .dup-count{font-size:11px;color:inherit;opacity:.8}.confidence-slider-filter{display:flex;align-items:center;gap:8px;background:var(--bg-secondary);padding:6px 12px;border-radius:6px;border:1px solid var(--border-color)}.confidence-slider-filter label{font-size:12px;color:var(--text-secondary);white-space:nowrap}.confidence-slider-filter input[type=range]{width:100px;height:4px;cursor:pointer;accent-color:#3b82f6}.confidence-slider-filter .confidence-value{font-size:12px;font-weight:600;color:var(--text-primary);min-width:36px;text-align:right}.confidence-slider-filter .clear-conf-btn{font-size:11px;padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary)}.confidence-slider-filter .clear-conf-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sheet-filter-multi{display:flex;align-items:center;gap:4px;position:relative}.sheet-filter-trigger{display:flex;align-items:center;gap:6px;padding:6px 10px;font-size:12px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;white-space:nowrap}.sheet-filter-trigger:hover{border-color:var(--accent-primary)}.sheet-filter-trigger svg{flex-shrink:0}.sheet-filter-dropdown{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:100;min-width:300px;max-width:400px;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.sheet-filter-search{width:100%;padding:10px 12px;font-size:13px;background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;color:var(--text-primary);box-sizing:border-box}.sheet-filter-search::placeholder{color:var(--text-tertiary)}.sheet-filter-search:focus{outline:none;background:var(--bg-primary)}.sheet-filter-options{flex:1;min-height:0;max-height:300px;overflow-y:auto;padding:4px 0}.sheet-filter-option{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;transition:background .1s}.sheet-filter-option:hover{background:var(--bg-hover)}.sheet-filter-option.selected{background:#3b82f61a}.sheet-filter-option input[type=checkbox]{width:16px;height:16px;accent-color:#3b82f6;cursor:pointer;flex-shrink:0}.sheet-option-label{flex:1;font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-option-count{font-size:11px;color:var(--text-tertiary);background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;flex-shrink:0}.sheet-filter-actions{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:0 0 8px 8px}.sheet-filter-actions button{flex:1;padding:6px 10px;font-size:11px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .1s}.sheet-filter-actions button:hover{background:var(--bg-hover);color:var(--text-primary)}.sheet-filter-actions button:last-child{background:#3b82f6;border-color:#3b82f6;color:#fff}.sheet-filter-actions button:last-child:hover{background:#2563eb}.clear-sheet-btn{background:transparent;border:none;color:var(--text-tertiary);font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.clear-sheet-btn:hover{color:var(--text-primary)}.results-content{flex:1;display:flex;overflow:hidden;min-height:0}.results-grid{flex:1;overflow-y:auto;overflow-anchor:none;padding:20px 24px 40px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-rows:minmax(240px,max-content);gap:16px;align-content:start;min-width:0}.results-grid.with-detail{flex:1;min-width:400px}.result-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-left:3px solid var(--border-color);border-radius:10px;padding:16px 16px 20px;cursor:pointer;min-height:240px;height:240px;overflow:hidden;box-sizing:border-box;contain:strict}.result-card:hover{border-color:var(--accent-primary);border-left-color:var(--accent-primary)}.result-card.true_positive{border-left-color:#22c55e}.result-card.false_positive{border-left-color:#ef4444}.result-preview{display:flex;gap:16px;margin-bottom:14px;justify-content:center}.preview-col{display:flex;flex-direction:column;align-items:center;gap:6px}.preview-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.no-preview{width:70px;height:70px;display:flex;align-items:center;justify-content:center;background:#1e293b;border-radius:4px;color:#64748b;font-size:10px}.result-info{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}.result-location{display:flex;flex-direction:column;gap:2px}.drawing-name{font-size:13px;font-weight:500;color:var(--text-primary)}.sheet-name{font-size:11px;color:var(--text-muted)}.confidence-value{font-size:14px;font-weight:600;padding:4px 10px;border-radius:6px}.confidence-value.high{background:#22c55e26;color:#22c55e}.confidence-value.medium{background:#f59e0b26;color:#f59e0b}.confidence-value.low{background:#ef444426;color:#ef4444}.feature-scores-compact{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.feature-chip{display:flex;gap:4px;align-items:center;font-size:10px;padding:2px 6px;background:var(--bg-tertiary);border-radius:4px}.metric-name{color:var(--text-muted);text-transform:uppercase}.metric-score{font-weight:600}.metric-score.good{color:#22c55e}.metric-score.ok{color:#f59e0b}.metric-score.poor{color:#ef4444}.component-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.component-chip{font-size:10px;padding:3px 8px;background:#a855f726;color:#c084fc;border-radius:4px;text-transform:capitalize}.validation-buttons{display:flex;gap:8px}.btn-tp,.btn-fp{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s}.btn-tp{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.btn-tp:hover{background:#22c55e33;border-color:#22c55e}.btn-tp.active{background:#22c55e;border-color:#22c55e;color:#fff}.btn-fp{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.btn-fp:hover{background:#ef444433;border-color:#ef4444}.btn-fp.active{background:#ef4444;border-color:#ef4444;color:#fff}.btn-tp:disabled,.btn-fp:disabled{opacity:.5;cursor:not-allowed}.pagination-bottom{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.results-count{font-size:12px;color:var(--text-muted)}.loading-state,.empty-state{padding:40px 20px;text-align:center;color:var(--text-muted)}.empty-state .hint{font-size:12px;margin-top:8px}.running-message,.error-message,.no-results{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-muted)}.error-message{color:#ef4444}.error-message .retry-btn{margin-top:16px;padding:8px 20px;background:#ef4444;color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.error-message .retry-btn:hover{background:#dc2626}.job-logs{margin-top:16px;background:#0f172a;border:1px solid var(--border-color);border-radius:8px;overflow:hidden}.job-logs-header{padding:8px 12px;background:#1e293b;color:var(--text-secondary);font-size:12px;font-weight:500;border-bottom:1px solid var(--border-color)}.job-logs-content{padding:12px;margin:0;font-family:JetBrains Mono,monospace;font-size:11px;line-height:1.5;color:#94a3b8;white-space:pre-wrap;max-height:200px;overflow-y:auto}.spinner{width:32px;height:32px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.result-detail-panel{width:340px;min-width:340px;max-width:340px;background:var(--bg-secondary);border-left:1px solid var(--border-color);overflow-y:auto!important;overflow-x:hidden;display:block;flex-shrink:0;height:100%;max-height:100%;padding-bottom:20px}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.detail-header h3{margin:0;font-size:15px;font-weight:600}.btn-close-detail{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:18px;transition:all .15s}.btn-close-detail:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.detail-preview{padding:20px;border-bottom:1px solid var(--border-color)}.preview-comparison{display:flex;justify-content:center;gap:24px}.detail-section{padding:12px 16px;border-bottom:1px solid var(--border-color);display:block!important;visibility:visible!important;opacity:1!important}.detail-section:last-child{border-bottom:none;margin-bottom:20px}.detail-section>*{display:block;visibility:visible!important;opacity:1!important}.detail-section h4{margin:0 0 8px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;display:block!important}.detail-info-row{display:flex!important;justify-content:space-between;align-items:flex-start;margin-bottom:6px;font-size:12px;gap:8px;visibility:visible!important;color:var(--text-primary)}.info-label{color:#94a3b8!important;flex-shrink:0;display:inline!important}.info-value{color:#f1f5f9!important;font-weight:500;text-align:right;word-break:break-word;max-width:200px;display:inline!important}.confidence-large{text-align:center;display:block!important;visibility:visible!important}.confidence-badge{display:inline-block!important;padding:6px 16px;border-radius:6px;font-size:16px;font-weight:600;visibility:visible!important}.confidence-badge.high{background:#22c55e26;color:#22c55e}.confidence-badge.medium{background:#f59e0b26;color:#f59e0b}.confidence-badge.low{background:#ef444426;color:#ef4444}.feature-scores-table{font-size:12px}.feature-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-color);color:var(--text-muted);font-weight:500}.feature-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--border-color)}.feature-name{text-transform:capitalize;color:var(--text-secondary)}.feature-val{text-align:right;color:var(--text-muted)}.feature-score{text-align:right;font-weight:600}.feature-score.good{color:#22c55e}.feature-score.ok{color:#f59e0b}.feature-score.poor{color:#ef4444}.feature-weight{text-align:right;color:var(--text-muted)}.component-list{display:flex;flex-direction:column;gap:6px}.component-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-tertiary);border-radius:6px;font-size:12px;overflow:hidden}.component-type{text-transform:capitalize;color:var(--text-primary);word-break:break-word;flex:1;min-width:0;font-size:12px}.component-conf{color:var(--text-muted);flex-shrink:0}.validation-buttons-large{display:flex;gap:10px}.btn-tp-large,.btn-fp-large{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s}.btn-tp-large{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.btn-tp-large:hover{background:#22c55e33;border-color:#22c55e}.btn-tp-large.active{background:#22c55e;border-color:#22c55e;color:#fff}.btn-fp-large{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.btn-fp-large:hover{background:#ef444433;border-color:#ef4444}.btn-fp-large.active{background:#ef4444;border-color:#ef4444;color:#fff}.btn-tp-large:disabled,.btn-fp-large:disabled{opacity:.5;cursor:not-allowed}.comment-editor{display:flex;flex-direction:column;gap:10px}.comment-editor textarea{width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:13px;resize:vertical}.comment-editor textarea:focus{outline:none;border-color:var(--accent-primary)}.comment-actions{display:flex;gap:8px}.btn-save-comment,.btn-cancel-comment{flex:1;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.btn-save-comment{background:var(--accent-primary);border:none;color:#fff}.btn-save-comment:hover{background:var(--accent-hover)}.btn-cancel-comment{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.btn-cancel-comment:hover{border-color:var(--text-muted)}.comment-display{padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;color:var(--text-primary);cursor:pointer;min-height:60px;transition:border-color .15s}.comment-display:hover{border-color:var(--accent-primary)}.comment-placeholder{color:var(--text-muted);font-style:italic}.result-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f64d}.sheets-info-section{flex-shrink:0;border-bottom:1px solid var(--border-color)}.sheets-info-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:transparent;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.sheets-info-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.toggle-icon{font-size:10px;color:var(--text-muted)}.sheets-info-content{max-height:300px;overflow-y:auto;padding:0 16px 16px}.drawing-group{margin-bottom:12px}.drawing-group:last-child{margin-bottom:0}.drawing-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:6px}.drawing-name{font-weight:500;color:var(--text-primary);font-size:13px}.drawing-matches{font-size:12px;color:var(--text-muted)}.sheets-list{display:flex;flex-direction:column;gap:4px;padding-left:12px}.sheet-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;font-size:12px}.sheet-name{color:var(--text-secondary)}.sheet-stats{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.tp-badge{background:#22c55e26;color:#22c55e;padding:2px 6px;border-radius:4px;font-weight:500}.fp-badge{background:#ef444426;color:#ef4444;padding:2px 6px;border-radius:4px;font-weight:500}.btn-view-on-drawing{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;margin-top:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.btn-view-on-drawing:hover{background:#3b82f626;border-color:var(--accent-primary);color:var(--accent-primary)}.btn-view-on-drawing svg{stroke:currentColor}.sheet-view-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.sheet-view-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;width:95vw;max-width:1400px;height:90vh;max-height:900px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #00000080}.sheet-view-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.sheet-view-header h3{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:12px}.sheet-drawing-name{font-weight:400;font-size:13px;color:var(--text-muted)}.sheet-view-header .btn-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;color:#9ca3af;transition:all .15s}.sheet-view-header .btn-close svg{width:20px;height:20px;stroke:currentColor}.sheet-view-header .btn-close:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.sheet-view-content{flex:1;overflow:auto;display:flex;align-items:center;justify-content:center;background:#0a0a0a;position:relative}.sheet-image-container{position:relative;display:inline-block;max-width:100%;max-height:100%}.sheet-image-container img{display:block;max-width:100%;max-height:80vh;object-fit:contain}.match-highlight-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.sheet-image-error{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-muted)}.sheet-view-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.match-info{font-size:13px;color:var(--text-secondary)}.pan-hint{font-size:12px;color:var(--text-muted)}.job-item-header .job-name{font-weight:600;font-size:13px;color:var(--text-primary);text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.job-item-info .job-type-badge{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:2px 6px;background:var(--bg-primary);border-radius:3px}.job-meta .job-type-tag{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;background:#3b82f626;color:var(--accent-primary);border-radius:4px}.running-job-logs{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 40px;gap:28px;width:100%;min-height:400px}.job-status-header{display:flex;align-items:center;gap:12px}.job-status-header .status-text{font-size:18px;font-weight:600;color:var(--text-primary)}.job-progress-details{width:100%;max-width:500px}.progress-bar-large{height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;transition:width .3s ease}.progress-stats{display:flex;justify-content:space-between;font-size:14px}.progress-percent{font-weight:600;color:var(--accent-primary)}.progress-sheets{color:var(--text-secondary)}.job-current-step{width:100%;max-width:500px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;text-align:center}.job-current-step .step-label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-right:8px}.job-current-step .step-value{font-size:14px;color:var(--text-primary);font-family:SF Mono,Menlo,monospace}.job-live-stats{display:flex;gap:32px}.live-stat{display:flex;flex-direction:column;align-items:center;gap:4px}.live-stat-value{font-size:28px;font-weight:700;color:var(--accent-primary)}.live-stat-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.job-log-hint{font-size:13px;color:var(--text-muted);font-style:italic}.sheet-name-primary{font-size:12px;font-weight:500;color:var(--text-primary);line-height:1.3;word-break:break-word}.sheet-view-controls{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.btn-zoom-toggle{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .15s}.btn-zoom-toggle:hover{background:#3b82f626;border-color:var(--accent-primary);color:var(--accent-primary)}.btn-zoom-toggle.active{background:#3b82f633;border-color:var(--accent-primary);color:var(--accent-primary)}.btn-zoom-toggle svg{stroke:currentColor}.zoom-buttons{display:flex;align-items:center;gap:6px}.zoom-buttons button{display:flex;align-items:center;justify-content:center;padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .15s}.zoom-buttons button:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.zoom-buttons button svg{stroke:currentColor}.zoom-level{font-size:12px;font-weight:500;color:var(--text-secondary);min-width:45px;text-align:center}.sheet-drawing-svg{display:block;background:#1a1a1a}.sheet-image-container{transition:transform .2s ease}.confidence-distribution-row{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:8px 16px;margin:8px 20px;display:flex;align-items:center;gap:12px}.conf-dist-header{flex-shrink:0}.conf-dist-title{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.conf-dist-bars{display:flex;gap:6px;flex:1}.conf-bar{display:flex;flex-direction:row;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .15s;min-width:60px;overflow:hidden;white-space:nowrap}.conf-bar:hover{transform:translateY(-2px)}.conf-bar.conf-high{background:#22c55e26;border:1px solid rgba(34,197,94,.3)}.conf-bar.conf-high:hover{border-color:#22c55e}.conf-bar.conf-medium{background:#f59e0b26;border:1px solid rgba(245,158,11,.3)}.conf-bar.conf-medium:hover{border-color:#f59e0b}.conf-bar.conf-low{background:#ef444426;border:1px solid rgba(239,68,68,.3)}.conf-bar.conf-low:hover{border-color:#ef4444}.conf-bar-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.conf-high .conf-bar-label{color:#22c55e}.conf-medium .conf-bar-label{color:#f59e0b}.conf-low .conf-bar-label{color:#ef4444}.conf-bar-value{font-size:20px;font-weight:700;color:var(--text-primary)}.conf-bar-pct{font-size:11px;color:var(--text-muted)}.conf-filter-active{margin-top:12px;padding:8px 12px;background:#3b82f61a;border-radius:6px;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.conf-filter-active strong{color:var(--accent-primary);text-transform:capitalize}.conf-filter-active button{margin-left:auto;background:transparent;border:1px solid var(--border-color);padding:4px 10px;border-radius:4px;font-size:12px;color:var(--text-secondary);cursor:pointer}.conf-filter-active button:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.sheet-item.clickable{cursor:pointer;transition:all .15s;padding:8px 12px;border-radius:6px;margin:4px 0}.sheet-item.clickable:hover{background:var(--bg-tertiary)}.sheet-item-main{display:flex;justify-content:space-between;align-items:center}.sheet-conf-bars{display:flex;gap:6px;margin-top:6px}.sheet-conf-badge{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:500}.sheet-conf-badge.high{background:#22c55e26;color:#22c55e}.sheet-conf-badge.medium{background:#f59e0b26;color:#f59e0b}.sheet-conf-badge.low{background:#ef444426;color:#ef4444}.sheet-item.no-matches{opacity:.7;background:var(--bg-primary);border:1px dashed var(--border-color)}.sheet-item.no-matches:hover{opacity:1;border-color:var(--warning);background:#f59e0b0d}.no-matches-label{display:flex;align-items:center;gap:4px;color:var(--text-muted);font-size:11px;font-style:italic}.no-matches-label svg{color:var(--warning)}.sheets-summary{margin-left:8px;font-size:12px;color:var(--text-muted)}.page-view-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1001}.page-view-modal{width:95vw;max-width:1600px;height:90vh;background:var(--bg-primary);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.page-view-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.page-view-title h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.page-view-subtitle{font-size:12px;color:var(--text-muted)}.page-view-controls{display:flex;align-items:center;gap:20px}.page-view-header .btn-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;color:#9ca3af;transition:all .15s;flex-shrink:0}.page-view-header .btn-close svg{width:20px;height:20px;stroke:currentColor}.page-view-header .btn-close:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444}.page-conf-filter{display:flex;gap:4px}.conf-filter-btn{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:12px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.conf-filter-btn:hover{border-color:var(--accent-primary)}.conf-filter-btn.active{background:#3b82f633;border-color:var(--accent-primary);color:var(--accent-primary)}.conf-filter-btn.high.active{background:#22c55e33;border-color:#22c55e;color:#22c55e}.conf-filter-btn.medium.active{background:#f59e0b33;border-color:#f59e0b;color:#f59e0b}.conf-filter-btn.low.active{background:#ef444433;border-color:#ef4444;color:#ef4444}.page-view-content{flex:1;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#0a0a0a}.page-view-loading{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.page-image-container{transition:transform .15s ease}.page-drawing-svg{display:block;background:#1a1a1a}.page-view-error{color:var(--text-muted);text-align:center}.page-view-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-top:1px solid var(--border-color);background:var(--bg-secondary)}.page-match-count{font-size:13px;color:var(--text-primary);font-weight:500}.page-match-count.no-matches-warning{display:flex;align-items:center;gap:6px;color:var(--warning);font-style:italic}.page-match-count.no-matches-warning svg{flex-shrink:0}.confidence-slider-container{display:flex;align-items:center;gap:12px}.confidence-slider-container label{font-size:13px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.confidence-slider{width:150px;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border-radius:3px;cursor:pointer}.confidence-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--accent-primary);border-radius:50%;cursor:grab;border:2px solid var(--bg-primary);box-shadow:0 2px 4px #0000004d}.confidence-slider::-webkit-slider-thumb:active{cursor:grabbing}.threshold-value{font-size:14px;font-weight:600;color:var(--accent-primary);min-width:40px}.matches-at-threshold{font-size:12px;color:var(--text-muted)}.result-tag-status{margin-top:4px}.tag-badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:2px 6px;border-radius:4px;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-badge svg{flex-shrink:0}.tag-badge.tagged{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.tag-badge.untagged{background:#eab30826;color:#eab308;border:1px solid rgba(234,179,8,.3)}.tag-group{grid-column:1 / -1;margin-bottom:24px}.tag-group-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;margin-bottom:12px}.tag-group-name{font-size:14px;font-weight:600;color:#f59e0b}.tag-group-count{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);padding:4px 10px;border-radius:12px}.tag-group-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-left:16px}.confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-modal{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;width:400px;max-width:90vw;box-shadow:0 20px 40px #0006}.confirm-modal-header{padding:16px 20px;border-bottom:1px solid var(--border-color)}.confirm-modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.confirm-modal-body{padding:20px}.confirm-modal-body p{margin:0 0 8px;color:var(--text-primary);font-size:14px}.confirm-modal-detail{color:var(--text-muted)!important;font-size:13px!important}.confirm-modal-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.confirm-modal-cancel{padding:8px 16px;font-size:13px;font-weight:500;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.confirm-modal-cancel:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-modal-confirm{padding:8px 16px;font-size:13px;font-weight:500;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;transition:all .15s}.confirm-modal-confirm:hover{background:#2563eb}.create-rule-modal{width:520px;max-width:90vw}.step-describe{display:flex;flex-direction:column;gap:var(--space-xl)}.form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.form-group label{font-weight:500;color:var(--text-primary);font-size:.875rem}.field-help{font-size:.875rem;color:var(--text-secondary);margin:0}.form-group textarea,.form-group select{padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}.form-group textarea::placeholder{color:var(--text-muted)}.form-group textarea:disabled,.form-group select:disabled{opacity:.5;cursor:not-allowed}.examples-section{padding:var(--space-lg);background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color)}.examples-section h4{margin:0 0 var(--space-md) 0;font-size:.875rem;font-weight:600;color:var(--text-primary)}.examples-list{margin:0;padding-left:var(--space-lg);list-style-type:disc}.examples-list li{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-sm);line-height:1.4}.examples-list li:last-child{margin-bottom:0}.step-review{display:flex;flex-direction:column;gap:var(--space-lg)}.review-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-md)}.ai-badge{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:500;color:var(--text-primary)}.ai-icon{font-size:1.125rem}.review-section{display:flex;flex-direction:column;gap:var(--space-sm)}.review-section label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.review-value{padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.description-box{font-style:italic;color:var(--text-secondary);line-height:1.5}.reasoning-box{line-height:1.6;color:var(--text-secondary)}.review-actions{display:flex;justify-content:flex-start;padding-top:var(--space-md);border-top:1px solid var(--border-light)}.step-saving{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);gap:var(--space-lg)}.spinner-large{width:60px;height:60px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}.step-saving p{color:var(--text-secondary);font-size:.875rem}.view-edit-modal{width:520px;max-width:90vw}.rule-metadata{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.metadata-row{display:flex;align-items:center;gap:var(--space-md);font-size:.875rem}.metadata-label{font-weight:500;color:var(--text-secondary);min-width:80px}.metadata-value{color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-enabled{background:var(--success-bg-subtle);color:var(--success);border:1px solid var(--success-border-subtle)}.status-disabled{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.form-section{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.form-section label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.field-help{font-size:.875rem;color:var(--text-muted);margin:0}.view-value{padding:var(--space-md);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:.875rem}.description-value{line-height:1.5}.severity-badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.severity-critical{background:var(--error-bg-subtle);color:var(--error);border:1px solid var(--error-border-subtle)}.severity-warning{background:var(--warning-bg-subtle);color:var(--warning);border:1px solid var(--warning-border-subtle)}.severity-info{background:#3b82f61a;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.edit-description{padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.875rem;line-height:1.5;resize:vertical;transition:border-color .15s,box-shadow .15s}.edit-description:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}.edit-severity{padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;cursor:pointer;max-width:200px}.edit-severity:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}.json-view{padding:var(--space-md);background:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--radius-md);color:#d4d4d4;font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;font-size:.8125rem;line-height:1.5;overflow-x:auto;margin:0;white-space:pre}.json-editor{padding:var(--space-md);background:#1e1e1e;border:1px solid var(--border-color);border-radius:var(--radius-md);color:#d4d4d4;font-family:Monaco,Menlo,Ubuntu Mono,Courier New,monospace;font-size:.8125rem;line-height:1.5;resize:vertical;transition:border-color .15s,box-shadow .15s;white-space:pre;overflow-x:auto}.json-editor:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f626}.json-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-md);margin-top:var(--space-sm);color:var(--error);font-size:.875rem}.ai-info{padding:var(--space-md);background:linear-gradient(135deg,#8b5cf61a,#3b82f61a);border:1px solid rgba(139,92,246,.3);border-radius:var(--radius-md)}.ai-confidence{font-size:.875rem;font-weight:500;color:var(--text-primary);margin-bottom:var(--space-sm)}.ai-reasoning{font-size:.875rem;color:var(--text-secondary);line-height:1.5}.ai-reasoning strong{color:var(--text-primary)}.error-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg);color:var(--error)}.error-dismiss{margin-left:auto;background:none;border:none;color:var(--error);font-size:1.25rem;cursor:pointer;padding:0;line-height:1;opacity:.7;transition:opacity .15s}.error-dismiss:hover{opacity:1}.drawing-checks-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-xl);padding:var(--space-xl);border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.header-content h2{margin:0 0 var(--space-xs) 0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.header-subtitle{margin:0;font-size:.875rem;color:var(--text-secondary)}.header-stats{display:flex;gap:var(--space-lg);align-items:center}.header-stats .stat-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.header-stats .stat-value{font-size:1.5rem;font-weight:700;color:var(--accent-primary);line-height:1}.header-stats .stat-label{font-size:.625rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);white-space:nowrap}.btn-primary{padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.error-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);border-radius:var(--radius-md);margin:var(--space-md);color:var(--error)}.error-icon{font-size:1.25rem}.error-dismiss{margin-left:auto;background:none;border:none;color:var(--error);font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.empty-state,.loading-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:var(--space-lg);opacity:.5}.empty-state h3{margin:0 0 var(--space-sm) 0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.empty-state p{margin:0 0 var(--space-xl) 0;color:var(--text-secondary);max-width:400px}.spinner{width:40px;height:40px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--space-md)}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{color:var(--text-secondary)}.rules-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.rules-table-container{flex:1;overflow:auto;padding:var(--space-md)}.rules-table{width:100%;border-collapse:collapse;background:var(--bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.rules-table thead{background:var(--bg-tertiary);position:sticky;top:0;z-index:1}.rules-table th{padding:var(--space-md);text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.rules-table td{padding:var(--space-md);border-bottom:1px solid var(--border-light)}.rules-table tbody tr{transition:background .15s}.rules-table tbody tr:hover{background:var(--bg-tertiary)}.rules-table tbody tr.rule-disabled{opacity:.5}.col-enabled{width:80px}.col-name{width:200px}.col-type{width:180px}.col-description{width:auto;min-width:250px}.col-severity{width:100px}.col-created{width:160px}.col-actions{width:80px;text-align:center}.toggle-btn{position:relative;width:44px;height:24px;background:var(--border-color);border:none;border-radius:12px;cursor:pointer;transition:background .2s;padding:0}.toggle-btn.toggle-on{background:var(--success)}.toggle-btn.toggle-off{background:var(--border-medium)}.toggle-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-btn.toggle-on .toggle-slider{transform:translate(20px)}.rule-name{font-weight:500;color:var(--text-primary)}.rule-type-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;color:var(--text-secondary)}.rule-description{font-size:.875rem;color:var(--text-secondary);line-height:1.4;max-width:500px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.severity-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.severity-badge.severity-critical{background:var(--error-bg-subtle);color:var(--error);border:1px solid var(--error-border-subtle)}.severity-badge.severity-warning{background:var(--warning-bg-subtle);color:var(--warning);border:1px solid var(--warning-border-subtle)}.severity-badge.severity-info{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.created-info{display:flex;flex-direction:column;gap:var(--space-xs)}.created-date{font-size:.875rem;color:var(--text-primary)}.created-by{font-size:.75rem;color:var(--text-muted)}.btn-icon{background:none;border:none;padding:var(--space-xs);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-tertiary)}.icon-delete{font-size:1.125rem;opacity:.6;transition:opacity .15s}.btn-icon:hover .icon-delete{opacity:1}.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;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.delete-modal{width:90%;max-width:500px;background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000080;border:1px solid var(--border-color)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background .15s,color .15s}.modal-close:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-body{padding:var(--space-lg)}.delete-warning{display:flex;gap:var(--space-md);padding:var(--space-md);background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.warning-icon{font-size:2rem;line-height:1}.warning-content h3{margin:0 0 var(--space-xs) 0;font-size:1rem;font-weight:600;color:var(--text-primary)}.warning-content p{margin:0;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.rule-details{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);background:var(--bg-tertiary);border-radius:var(--radius-md)}.detail-row{display:flex;flex-direction:column;gap:var(--space-xs)}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.detail-value{font-size:.875rem;color:var(--text-primary);word-break:break-word}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg);border-top:1px solid var(--border-color)}.btn-secondary{padding:var(--space-sm) var(--space-lg);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s,border-color .2s}.btn-secondary:hover:not(:disabled){background:var(--bg-primary);border-color:var(--text-muted)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{padding:var(--space-sm) var(--space-lg);background:var(--error);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.markups-panel{display:flex;height:100%;background:var(--bg-primary);color:var(--text-primary)}.markups-panel__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;text-align:center;color:var(--text-muted)}.markups-panel__empty h2{font-size:24px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.markups-panel__empty p{font-size:14px}.markups-panel__sidebar{width:280px;min-width:280px;border-right:1px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-secondary)}.markups-panel__sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid var(--border-color)}.markups-panel__sidebar-header h3{font-size:14px;font-weight:600;margin:0}.sheet-count{font-size:12px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px 8px;border-radius:10px}.sheet-search{padding:12px 16px;border-bottom:1px solid var(--border-color);position:relative}.sheet-search input{width:100%;padding:8px 32px 8px 12px;font-size:13px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary)}.sheet-search input:focus{outline:none;border-color:var(--accent-primary)}.sheet-search input::placeholder{color:var(--text-muted)}.sheet-search .clear-search{position:absolute;right:24px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:0;line-height:1}.sheet-search .clear-search:hover{color:var(--text-primary)}.sheet-list{flex:1;overflow-y:auto;padding:8px 0}.drawing-group{margin-bottom:4px}.drawing-group__header{padding:8px 16px;font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}.sheet-item{display:flex;align-items:center;width:100%;padding:10px 16px 10px 24px;background:none;border:none;cursor:pointer;text-align:left;color:var(--text-primary);font-size:13px;transition:background .1s}.sheet-item:hover{background:var(--bg-hover)}.sheet-item.selected{background:#3b82f626;border-left:3px solid var(--accent-primary);padding-left:21px}.sheet-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markups-panel__sidebar-footer{padding:12px 16px;border-top:1px solid var(--border-color)}.detect-colors-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;font-size:13px;font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .15s}.detect-colors-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.detect-colors-btn .icon{font-size:16px}.markups-panel__main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.markups-panel__toolbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.toolbar-section{display:flex;align-items:center;gap:4px}.toolbar-section.tools{gap:2px}.toolbar-section.colors{gap:4px}.toolbar-section.stroke{gap:8px}.toolbar-section.stroke label{font-size:12px;color:var(--text-muted)}.toolbar-section.stroke input[type=range]{width:80px;accent-color:var(--accent-primary)}.toolbar-section.stroke .stroke-value{font-size:12px;color:var(--text-secondary);min-width:32px}.toolbar-section.zoom{gap:6px}.toolbar-section.zoom button{padding:6px 10px;font-size:14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;transition:all .1s}.toolbar-section.zoom button:hover{background:var(--bg-hover)}.toolbar-section.zoom .zoom-level{font-size:12px;color:var(--text-secondary);min-width:48px;text-align:center}.toolbar-divider{width:1px;height:28px;background:var(--border-color);margin:0 4px}.tool-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .1s}.tool-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.tool-btn.active{background:#3b82f633;border-color:var(--accent-primary);color:var(--accent-primary)}.color-btn{width:24px;height:24px;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .1s}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#fff;box-shadow:0 0 0 2px var(--accent-primary)}.color-picker{width:28px;height:24px;padding:0;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;background:var(--bg-tertiary)}.markups-panel__canvas-container{flex:1;overflow:hidden;background:#1a1a2e;display:flex;align-items:center;justify-content:center;position:relative}.canvas-empty,.canvas-loading{text-align:center;color:var(--text-muted)}.canvas-empty h3{font-size:18px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.canvas-empty p{font-size:14px}.canvas-wrapper{display:flex;align-items:center;justify-content:center;transition:transform .05s ease-out}.markup-canvas{background:#fff;box-shadow:0 4px 20px #0000004d;overflow:visible}.markup-shape{transition:opacity .1s}.markup-shape:hover{filter:brightness(1.1)}.markup-shape:hover rect[fill=transparent],.markup-shape:hover ellipse[fill=transparent]{fill:#3b82f60d}.markup-shape.selected rect[fill=transparent],.markup-shape.selected ellipse[fill=transparent]{fill:#3b82f614}.nearby-markups-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding:12px;background:var(--bg-tertiary);border-radius:8px}.nearby-markup-item{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary);border-radius:4px;font-size:12px;text-transform:capitalize}.group-modal{max-width:400px}.group-modal .modal-content p{color:var(--text-secondary);line-height:1.5}.action-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .1s}.action-btn.delete{color:#ef4444}.action-btn.delete:hover{background:#ef444433;border-color:#ef4444}.markups-panel__right-sidebar{width:300px;min-width:300px;border-left:1px solid var(--border-color);display:flex;flex-direction:column;background:var(--bg-secondary)}.tabs{display:flex;border-bottom:1px solid var(--border-color)}.tab{flex:1;padding:12px 16px;font-size:13px;font-weight:500;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.tab:hover{color:var(--text-primary);background:var(--bg-hover)}.tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.tab-content{flex:1;overflow-y:auto}.markups-list{padding:8px}.markup-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:8px;cursor:pointer;transition:all .1s}.markup-item:hover{border-color:var(--accent-primary)}.markup-item.selected{border-color:var(--accent-primary);background:#3b82f61a}.markup-item.resolved{opacity:.6}.markup-item__color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.markup-item__info{flex:1;min-width:0}.markup-type{display:block;font-size:13px;font-weight:500;color:var(--text-primary);text-transform:capitalize}.markup-status{display:block;font-size:11px;color:var(--text-muted);text-transform:capitalize;margin-top:2px}.markup-log{padding:16px}.loading-state,.empty-state{padding:24px 16px;text-align:center;color:var(--text-muted);font-size:13px}.empty-state .hint{font-size:12px;margin-top:4px;opacity:.7}.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}.modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-header h3{font-size:16px;font-weight:600;margin:0}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:20px;background:none;border:none;color:var(--text-muted);cursor:pointer;border-radius:6px;transition:all .1s}.close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-content{flex:1;overflow-y:auto;padding:20px}.modal-description{font-size:13px;color:var(--text-secondary);margin-bottom:20px;line-height:1.5}.color-profiles-list{margin-bottom:24px}.empty-profiles{text-align:center;padding:24px;background:var(--bg-tertiary);border-radius:8px}.empty-profiles p{color:var(--text-muted);margin-bottom:12px}.add-profile-btn{padding:8px 16px;font-size:13px;font-weight:500;background:var(--accent-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;transition:background .15s}.add-profile-btn:hover{background:#2563eb}.color-profile-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:8px}.profile-color{width:24px;height:24px;border-radius:6px;border:2px solid rgba(255,255,255,.1)}.profile-name{flex:1;font-size:14px;font-weight:500}.profile-category{font-size:12px;color:var(--text-muted);background:var(--bg-secondary);padding:4px 8px;border-radius:4px}.default-profiles h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.default-profile-buttons{display:flex;flex-direction:column;gap:8px}.default-profile-btn{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .15s}.default-profile-btn:hover{background:var(--bg-hover)}.color-dot{width:16px;height:16px;border-radius:50%}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-color)}.btn-secondary{padding:10px 20px;font-size:13px;font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .15s}.btn-secondary:hover{background:var(--bg-hover)}.btn-primary{padding:10px 20px;font-size:13px;font-weight:500;background:var(--accent-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;transition:background .15s}.btn-primary:hover{background:#2563eb}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.markup-item__delete{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#ef444433;border:none;border-radius:4px;color:#ef4444;font-size:16px;cursor:pointer;margin-left:auto;flex-shrink:0}.markup-item__delete:hover{background:#ef444466}.markup-status-controls{padding:16px 12px;border-top:1px solid var(--border-color);margin-top:12px}.markup-status-controls h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px}.status-buttons{display:flex;flex-wrap:wrap;gap:6px}.status-btn{padding:6px 12px;font-size:12px;text-transform:capitalize;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.status-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.status-btn.active{background:#3b82f633;border-color:var(--accent-primary);color:var(--accent-primary)}.history-timeline{padding:8px}.history-entry{padding:12px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:8px;border-left:3px solid var(--accent-primary)}.history-entry__action{font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.history-entry__meta{display:flex;gap:8px;font-size:11px;color:var(--text-muted)}.history-user{color:var(--accent-primary)}.history-time{opacity:.8}.history-entry__detail{font-size:11px;color:var(--text-muted);margin-top:4px;font-style:italic}.add-profile-form{margin:20px 0;padding:16px;background:var(--bg-tertiary);border-radius:8px}.add-profile-form h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px}.form-row{display:flex;gap:8px;align-items:center}.profile-name-input{flex:1;padding:8px 12px;font-size:13px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary)}.profile-name-input:focus{outline:none;border-color:var(--accent-primary)}.profile-color-input{width:40px;height:36px;padding:2px;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;background:var(--bg-secondary)}.profile-category-select{padding:8px 12px;font-size:13px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer}.profile-category-select:focus{outline:none;border-color:var(--accent-primary)}.color-profiles-list h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px}.markups-panel.saving .markups-panel__canvas-container{opacity:.7;pointer-events:none}.toolbar-section.line-style{gap:2px}.style-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--bg-tertiary);border:1px solid transparent;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .1s;font-family:monospace}.style-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.style-btn.active{background:#3b82f633;border-color:var(--accent-primary);color:var(--accent-primary)}.multi-select-actions{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#3b82f61a;border:1px solid var(--accent-primary);border-radius:8px;margin-bottom:12px}.selection-count{font-size:12px;font-weight:500;color:var(--accent-primary)}.group-btn{padding:6px 12px;font-size:12px;font-weight:500;background:var(--accent-primary);border:none;border-radius:4px;color:#fff;cursor:pointer;transition:background .15s}.group-btn:hover{background:#2563eb}.clear-selection-btn{padding:6px 12px;font-size:12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;margin-left:auto}.clear-selection-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.multi-select-hint{font-size:11px;color:var(--text-muted);padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;margin-bottom:12px;text-align:center}.markup-item__checkbox{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent-primary);cursor:pointer}.markup-item.in-selection{border-color:#8b5cf6;background:#8b5cf61a}.group-badge{display:inline-block;font-size:10px;font-weight:500;background:#8b5cf633;color:#8b5cf6;padding:2px 6px;border-radius:4px;margin-left:6px;text-transform:uppercase}.grouping-suggestion-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(135deg,#8b5cf626,#3b82f626);border-bottom:1px solid rgba(139,92,246,.3);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.suggestion-icon{font-size:18px}.suggestion-text{flex:1;font-size:13px;color:var(--text-primary)}.suggestion-btn{padding:6px 14px;font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;transition:all .15s}.suggestion-btn.accept{background:#8b5cf6;border:none;color:#fff}.suggestion-btn.accept:hover{background:#7c3aed}.suggestion-btn.dismiss{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary)}.suggestion-btn.dismiss:hover{background:var(--bg-hover);border-color:var(--text-muted)}.markup-shape.grouped rect[stroke],.markup-shape.grouped ellipse[stroke],.markup-shape.grouped path[stroke]{filter:drop-shadow(0 0 3px rgba(139,92,246,.5))}.markup-shape.dragging-group{opacity:.85}.group-controls{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-color)}.group-controls h4{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 8px}.group-info{display:flex;align-items:center;justify-content:space-between;gap:8px}.group-count{font-size:12px;color:#8b5cf6}.ungroup-btn{padding:6px 12px;font-size:12px;font-weight:500;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;cursor:pointer;transition:all .15s}.ungroup-btn:hover{background:#ef444433;border-color:#ef4444}.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}.dagflow-unclassified-warning{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background-color:#fef3c7;border:1px solid #f59e0b;border-radius:6px;font-size:13px}.dagflow-unclassified-warning__icon{color:#d97706;font-size:16px}.dagflow-unclassified-warning__text{flex:1;color:#92400e}.dagflow-unclassified-warning__btn{padding:4px 10px;background-color:#fff;border:1px solid #d97706;border-radius:4px;font-size:12px;color:#d97706;cursor:pointer;transition:all .15s ease}.dagflow-unclassified-warning__btn:hover{background-color:#fef3c7}.dagflow-unclassified-panel{margin-top:12px;background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.dagflow-unclassified-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background-color:#f9fafb;border-bottom:1px solid #e5e7eb}.dagflow-unclassified-panel__header h4{margin:0;font-size:13px;font-weight:600;color:#374151}.dagflow-unclassified-panel__close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;border-radius:4px;font-size:18px;color:#9ca3af;cursor:pointer}.dagflow-unclassified-panel__close:hover{background-color:#e5e7eb;color:#374151}.dagflow-unclassified-panel__content{max-height:300px;overflow-y:auto;padding:8px}.dagflow-unclassified-item{padding:10px 12px;border-bottom:1px solid #f3f4f6}.dagflow-unclassified-item:last-child{border-bottom:none}.dagflow-unclassified-item__header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.dagflow-unclassified-item__index{font-family:monospace;font-size:12px;color:#6b7280}.dagflow-unclassified-item__type{padding:2px 6px;border-radius:3px;font-size:11px;font-weight:500}.dagflow-unclassified-item__type--no_match{background-color:#fee2e2;color:#dc2626}.dagflow-unclassified-item__type--low_confidence{background-color:#fef3c7;color:#d97706}.dagflow-unclassified-item__match{font-size:12px;color:#374151;margin-bottom:4px}.dagflow-unclassified-item__confidence{margin-left:4px;color:#6b7280}.dagflow-unclassified-item__metrics{font-size:11px;font-family:monospace;color:#9ca3af}.dagflow-unclassified-panel__more{padding:10px;text-align:center;font-size:12px;color:#6b7280;border-top:1px solid #f3f4f6}.dagflow-build-control--checkbox{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dagflow-build-control--checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.dagflow-build-control__hint{font-size:11px;color:#9ca3af;font-weight:400}.dagflow-build-actions{display:flex;gap:8px;margin-top:8px}.dagflow-preview-btn{padding:8px 14px;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;font-size:13px;color:#374151;cursor:pointer;transition:all .15s ease}.dagflow-preview-btn:hover{background-color:#e5e7eb}.dagflow-preview-btn:disabled{opacity:.5;cursor:not-allowed}.dagflow-connection-preview{margin-top:12px;background-color:#f0f9ff;border:1px solid #3b82f6;border-radius:8px;overflow:hidden}.dagflow-connection-preview__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background-color:#dbeafe;border-bottom:1px solid #93c5fd}.dagflow-connection-preview__count{font-size:13px;font-weight:600;color:#1d4ed8}.dagflow-connection-preview__settings{font-size:11px;color:#3b82f6}.dagflow-connection-preview__list{padding:8px}.dagflow-connection-preview__item{display:flex;align-items:center;gap:8px;padding:8px 10px;background-color:#fff;border-radius:4px;margin-bottom:4px;font-size:12px}.dagflow-connection-preview__item:last-child{margin-bottom:0}.dagflow-connection-preview__source,.dagflow-connection-preview__target{color:#374151;font-weight:500}.dagflow-connection-preview__arrow{color:#9ca3af}.dagflow-connection-preview__distance{margin-left:auto;font-family:monospace;font-size:11px;color:#6b7280;background-color:#f3f4f6;padding:2px 6px;border-radius:3px}.dagflow-connection-preview__more{padding:8px;text-align:center;font-size:12px;color:#3b82f6}.storage-settings{max-width:900px;margin:0 auto;padding:24px}.settings-header{margin-bottom:32px}.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}.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}.model-config-settings{padding:24px;max-width:700px;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}.model-config-settings .config-header{display:flex;flex-direction:column;margin-bottom:24px}.model-config-settings .header-top{display:flex;align-items:center;justify-content:space-between;width:100%;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}.model-config-settings .tab-navigation{display:flex;flex-direction:row;gap:4px;border-bottom:1px solid #334155;padding-bottom:0;margin-bottom:20px;width:100%}.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}.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}.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-group{margin-bottom:20px}.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:linear-gradient(to right,#3b82f6,#3b82f6 calc(var(--value, 0) * 1%),#334155 calc(var(--value, 0) * 1%),#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;border:2px solid #1e293b}.form-slider::-webkit-slider-thumb:hover{background:#60a5fa}.form-slider::-moz-range-thumb{width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;border:2px solid #1e293b}.form-slider::-moz-range-progress{background:#3b82f6;border-radius:3px}.form-slider::-moz-range-track{background:#334155;border-radius:3px;height:6px}.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}.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}.weights-section{margin-top:16px}.weights-header{display:flex;align-items:center;gap:10px;margin:0 0 12px;color:#e2e8f0;font-size:14px;font-weight:600}.weights-badge{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.3px;padding:3px 8px;background:#10b98126;border:1px solid rgba(16,185,129,.3);border-radius:12px;color:#10b981}.weights-intro{margin:0 0 16px;padding:12px 14px;background:#3b82f614;border-left:3px solid #3b82f6;border-radius:0 6px 6px 0;color:#94a3b8;font-size:12px;line-height:1.6}.weights-table{display:flex;flex-direction:column;gap:2px;background:#0f172a80;border:1px solid #334155;border-radius:8px;overflow:hidden}.weight-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#1e293b66;transition:background .15s ease}.weight-row:hover{background:#33415566}.weight-row:nth-child(2n){background:#0f172a4d}.weight-row:nth-child(2n):hover{background:#3341554d}.weight-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.weight-name{color:#e2e8f0;font-size:13px;font-weight:500}.weight-desc{color:#64748b;font-size:11px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weight-control{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:16px}.weight-slider{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#334155;border-radius:2px;cursor:pointer}.weight-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer;border:2px solid #1e293b;transition:transform .1s ease}.weight-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.weight-slider::-moz-range-thumb{width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer;border:2px solid #1e293b}.weight-value{min-width:36px;padding:3px 8px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#60a5fa;font-size:12px;font-weight:600;text-align:center;font-family:SF Mono,Consolas,monospace}.weight-value.disabled{background:#ef44441a;border-color:#ef44444d;color:#f87171}.weight-value.high{background:#10b98126;border-color:#10b9814d;color:#10b981}.weights-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #334155}.btn-small{padding:6px 12px;background:#47556980;border:1px solid #475569;border-radius:6px;color:#cbd5e1;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-small:hover{background:#475569cc;border-color:#64748b;color:#f1f5f9}@media (max-width: 500px){.weight-row{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.weight-control{margin-left:0;width:100%}.weight-slider{flex:1}.weight-desc{white-space:normal}}.tag-dictionary-settings{padding:var(--space-xl) var(--space-2xl);max-width:1000px;margin:0 auto}.tag-dictionary-settings .settings-header{margin-bottom:var(--space-xl);padding-bottom:20px;border-bottom:1px solid var(--border-color)}.tag-dictionary-settings .settings-header h2{margin:0 0 var(--space-sm);color:var(--text-primary);font-size:28px;font-weight:700;letter-spacing:-.5px;display:flex;align-items:center;gap:var(--space-md)}.tag-dictionary-settings .settings-header h2:before{content:"";display:inline-block;width:4px;height:28px;background:linear-gradient(135deg,var(--accent-primary) 0%,#8b5cf6 100%);border-radius:2px}.tag-dictionary-settings .settings-description{margin:0 0 var(--space-lg);color:var(--text-muted);font-size:15px;line-height:1.6}.tag-dictionary-settings .settings-description strong{color:var(--accent-hover)}.rules-tabs{display:flex;gap:var(--space-xs);margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:0}.rules-tab{padding:var(--space-md) var(--space-xl);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-normal);margin-bottom:-1px}.rules-tab:hover{color:var(--text-secondary);background:#ffffff08}.rules-tab--active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.rules-tab--active:hover{color:var(--accent-primary)}.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,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg) 20px;margin-bottom:20px}.process-overview h3{margin:0 0 var(--space-md);color:var(--text-primary);font-size:15px;font-weight:600}.process-overview p{margin:0 0 var(--space-md);color:var(--text-muted);font-size:13px;line-height:1.5}.process-overview ol{margin:0 0 var(--space-md);padding-left:20px;color:var(--text-muted);font-size:12px;line-height:1.8}.process-overview ol li{margin-bottom:var(--space-xs)}.process-overview ol strong{color:var(--text-secondary)}.process-overview .process-note{margin:0;padding:10px var(--space-md);background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);border-radius:var(--radius-sm);color:var(--warning);font-size:12px}.status-badge{display:inline-block;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-size:13px;font-weight:500;margin-bottom:20px}.status-default{background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);color:var(--warning)}.status-custom{background:var(--success-bg-subtle);border:1px solid var(--success-border-subtle);color:var(--success)}.correlation-config-section{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg) 20px;margin-bottom:20px}.correlation-config-section h3{margin:0 0 var(--space-sm) 0;font-size:15px;font-weight:600;color:var(--text-primary)}.correlation-config-section .section-description{color:var(--text-muted);font-size:13px;margin:0 0 var(--space-lg) 0;line-height:1.5}.revision-sequence-editor{display:flex;flex-direction:column;gap:var(--space-md)}.revision-chips{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.revision-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--accent-primary);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast),box-shadow var(--transition-fast)}.revision-chip:hover{background:var(--accent-secondary)}.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 var(--accent-hover)}.revision-chip .chip-check{margin-right:var(--space-xs);font-size:11px}.revision-bulk-actions{display:flex;gap:var(--space-sm);align-items:center}.btn-small.btn-danger{background:var(--error-muted)}.btn-small.btn-danger:hover{background:#b91c1c}.btn-small.btn-secondary{background:var(--bg-elevated)}.btn-small.btn-secondary:hover{background:#64748b}.add-revision{display:flex;gap:var(--space-sm);align-items:center}.add-revision input{flex:1;max-width:200px;padding:var(--space-sm) var(--space-md);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:13px}.add-revision input:focus{outline:none;border-color:var(--accent-primary)}.add-revision input::placeholder{color:#64748b}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);color:#cbd5e1;font-size:13px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-primary)}.config-actions-inline{display:flex;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--border-color);margin-top:var(--space-xs)}.btn-small{padding:var(--space-sm) var(--space-lg);background:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-normal)}.btn-small:hover{background:var(--accent-secondary)}.dictionaries-container{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.dictionary-section{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.dictionary-section:hover{border-color:var(--bg-elevated);box-shadow:var(--shadow-lg)}.dictionary-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg) 20px;cursor:pointer;transition:background var(--transition-normal)}.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:var(--text-primary);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:var(--border-color);border:1px solid var(--bg-elevated);border-radius:var(--radius-xs);color:var(--text-muted);font-size:11px;cursor:pointer;transition:all var(--transition-normal)}.btn-small:hover{background:var(--bg-elevated);color:var(--text-secondary)}.dictionary-content{padding:0 var(--space-lg) var(--space-lg);border-top:1px solid var(--border-color)}.dictionary-description{margin:var(--space-md) 0 var(--space-sm);color:var(--text-muted);font-size:13px;line-height:1.5}.dictionary-usage{margin:0 0 var(--space-lg);padding:10px var(--space-md);background:var(--accent-bg-subtle);border:1px solid var(--accent-bg-medium);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;line-height:1.5}.dictionary-usage strong{color:var(--accent-hover);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:var(--radius-xs);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 var(--space-md);background:var(--bg-primary);color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.dictionary-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--bg-secondary);color:var(--text-secondary)}.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:var(--accent-hover);font-weight:500;white-space:nowrap}.cell-input{width:100%;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-primary);font-size:13px;transition:border-color var(--transition-normal)}.cell-input:focus{outline:none;border-color:var(--accent-primary)}.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:var(--radius-xs);color:#64748b;cursor:pointer;font-size:16px;transition:all var(--transition-normal)}.btn-icon:hover{background:#ffffff0d}.btn-delete:hover{background:var(--error-bg-subtle);border-color:var(--error-border-subtle);color:var(--error)}.btn-add-entry{margin-top:var(--space-md);padding:var(--space-sm) 14px;background:transparent;border:1px dashed var(--bg-elevated);border-radius:var(--radius-sm);color:#64748b;font-size:13px;cursor:pointer;transition:all var(--transition-normal)}.btn-add-entry:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-bg-subtle)}.regex-section-wrapper{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-xl);overflow:hidden}.regex-content-embedded{border-top:1px solid var(--border-color)}.regex-content-embedded .regex-pattern-settings{padding:var(--space-lg);max-width:none}.regex-content-embedded .regex-pattern-settings .settings-header{display:none}.regex-content-embedded .regex-pattern-settings .status-badge{margin-bottom:var(--space-lg)}.regex-section{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:var(--space-xl);overflow:hidden}.regex-header{display:flex;align-items:center;gap:10px;padding:14px var(--space-lg);cursor:pointer;transition:background var(--transition-normal)}.regex-header:hover{background:#ffffff08}.section-title{color:var(--text-primary);font-size:14px;font-weight:600}.section-badge{padding:3px var(--space-sm);background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);border-radius:var(--radius-xs);color:var(--warning);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.regex-content{padding:0 var(--space-lg) var(--space-lg);border-top:1px solid var(--border-color)}.regex-note{margin:var(--space-md) 0 var(--space-lg);color:#64748b;font-size:12px;line-height:1.5}.regex-pattern{padding:var(--space-md);background:var(--bg-primary);border:1px solid var(--bg-secondary);border-radius:var(--radius-sm);margin-bottom:10px}.regex-pattern:last-child{margin-bottom:0}.regex-name{color:var(--text-secondary);font-size:13px;font-weight:500;text-transform:capitalize;margin-bottom:var(--space-xs)}.regex-description{color:#64748b;font-size:12px;margin-bottom:var(--space-sm)}.regex-code{display:block;padding:var(--space-sm) 10px;background:var(--bg-secondary);border-radius:var(--radius-xs);color:var(--accent-hover);font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;overflow-x:auto;white-space:nowrap;margin-bottom:6px}.regex-examples{color:var(--text-muted);font-size:11px;font-style:italic}.tag-dictionary-settings .config-actions{display:flex;justify-content:flex-end;gap:var(--space-md);padding-top:20px;border-top:1px solid var(--border-color)}.tag-dictionary-settings .btn-danger{background:var(--error-bg-subtle);color:var(--error)}.tag-dictionary-settings .btn-danger:hover:not(:disabled){background:#ef44444d}.no-project-warning{margin-top:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);border-radius:var(--radius-sm);color:var(--warning);font-size:13px;text-align:center}.modal-content{padding:14px 18px;min-width:280px;max-width:450px}.modal-content .modal-title{margin:0 0 6px;color:var(--text-primary);font-size:14px;font-weight:600}.modal-content .modal-message{margin:0;padding:var(--space-sm) 10px;background:var(--bg-primary);border-radius:var(--radius-xs);color:var(--accent-hover);font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:12px;word-break:break-all}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md)}.modal-actions .btn-secondary{padding:6px 14px;background:var(--border-color);border:1px solid var(--bg-elevated);border-radius:5px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.modal-actions .btn-secondary:hover{background:var(--bg-elevated)}.modal-actions .btn-danger{padding:6px 14px;background:var(--error-muted);border:1px solid var(--error);border-radius:5px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.modal-actions .btn-danger:hover{background:#b91c1c}.modal-actions .btn-primary{padding:6px 14px;background:var(--accent-secondary);border:1px solid var(--accent-primary);border-radius:5px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.modal-actions .btn-primary:hover{background:#1d4ed8}.modal-input{width:100%;padding:10px var(--space-md);background:var(--bg-primary);border:1px solid var(--bg-elevated);border-radius:5px;color:var(--text-primary);font-size:13px;font-family:SF Mono,Monaco,Inconsolata,monospace;margin-top:var(--space-sm);box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.modal-input::placeholder{color:#64748b}.table-actions{display:flex;gap:var(--space-md);margin-top:var(--space-md);align-items:center}.btn-titan{padding:10px 18px;background:linear-gradient(135deg,#8b5cf6,#6366f1);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;gap:var(--space-sm);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 var(--transition-normal)}.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:var(--bg-secondary);padding:40px 60px;border-radius:var(--radius-xl);text-align:center;border:1px solid var(--border-color);box-shadow:var(--shadow-xl)}.titan-loading-content .spinner{width:48px;height:48px;margin:0 auto 20px;border:3px solid var(--border-color);border-top-color:#8b5cf6;border-radius:50%;animation:spin 1s linear infinite}.titan-loading-content p{margin:0;color:var(--text-primary);font-size:16px;font-weight:500}.titan-loading-content .titan-loading-sub{color:#64748b;font-size:13px;margin-top:var(--space-sm);font-weight:400}.titan-job-indicator{position:fixed;bottom:var(--space-xl);right:var(--space-xl);display:flex;align-items:center;gap:var(--space-sm);background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-xl);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:var(--success);box-shadow:0 8px 32px #22c55e33}.titan-job-indicator--failed{border-color:var(--error);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:var(--space-md);cursor:pointer}.titan-job-indicator__icon{width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:var(--radius-md);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,var(--success),#16a34a)}.titan-job-indicator--failed .titan-job-indicator__icon{background:linear-gradient(135deg,var(--error),var(--error-muted))}.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:var(--text-primary)}.titan-job-indicator__detail{font-size:11px;color:var(--text-muted)}.titan-job-indicator__action{padding:6px 14px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:var(--radius-sm);color:#fff;font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.titan-job-indicator--complete .titan-job-indicator__action{background:linear-gradient(135deg,var(--success),#16a34a)}.titan-job-indicator__action:hover{transform:scale(1.05)}.titan-job-indicator__dismiss{width:24px;height:24px;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:#64748b;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);margin-left:var(--space-xs)}.titan-job-indicator__dismiss:hover{background:#374151;color:var(--text-primary);border-color:var(--bg-elevated)}.dictionary-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid #2d3548}.btn-titan-sm{padding:6px var(--space-md);font-size:12px}.btn-titan-sm:hover:not(:disabled){transform:translateY(-1px)}.unified-classification-grid{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-xl)}.grid-header-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--bg-primary);border-bottom:1px solid var(--border-color);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:var(--space-sm) var(--space-2xl) var(--space-sm) var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:all var(--transition-normal)}.grid-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.grid-search-input::placeholder{color:#64748b}.grid-search-clear{position:absolute;right:var(--space-sm);top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:none;border-radius:var(--radius-xs);color:var(--text-muted);font-size:14px;cursor:pointer;transition:all var(--transition-fast)}.grid-search-clear:hover{background:#64748b;color:var(--text-primary)}.grid-filter-tab{padding:var(--space-sm) var(--space-lg);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.grid-filter-tab:hover{background:#ffffff0d;color:var(--text-secondary)}.grid-filter-tab--active{background:var(--accent-bg-subtle);border-color:var(--accent-bg-medium);color:var(--accent-hover)}.unified-grid-table-container{max-height:500px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--bg-elevated) var(--bg-secondary)}.unified-grid-table-container::-webkit-scrollbar{width:8px}.unified-grid-table-container::-webkit-scrollbar-track{background:var(--bg-secondary)}.unified-grid-table-container::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:var(--radius-xs)}.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:var(--space-md) var(--space-lg);background:var(--bg-primary);color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.unified-grid-table td{padding:10px var(--space-lg);border-bottom:1px solid var(--bg-secondary);color:var(--text-secondary);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:var(--space-xs) 10px;border-radius:var(--radius-xs);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.category-badge--equipment_types{background:var(--accent-bg-subtle);border:1px solid var(--accent-bg-medium);color:var(--accent-hover)}.category-badge--valve_types{background:var(--success-bg-subtle);border:1px solid var(--success-border-subtle);color:#34d399}.category-badge--instrumentation_types{background:#8b5cf626;border:1px solid rgba(139,92,246,.3);color:#a78bfa}.category-badge--equipment_design_labels{background:var(--warning-bg-subtle);border:1px solid var(--warning-border-subtle);color:var(--warning)}.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:var(--accent-hover);font-weight:600}.unified-grid-table .cell-input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:13px;transition:all var(--transition-normal)}.unified-grid-table .cell-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.unified-grid-table .cell-input::placeholder{color:#64748b}.unified-grid-table .cell-na{color:var(--bg-elevated);font-style:italic}.unified-grid-table .cell-actions{text-align:center}.unified-grid-actions{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);background:var(--bg-primary);border-top:1px solid var(--border-color);gap:var(--space-lg);flex-wrap:wrap}.add-entry-buttons{display:flex;gap:var(--space-sm);flex-wrap:wrap}.unified-grid-actions .btn-add-entry{margin-top:0;padding:var(--space-sm) 14px;background:transparent;border:1px dashed var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-muted);font-size:12px;cursor:pointer;transition:all var(--transition-normal);white-space:nowrap}.unified-grid-actions .btn-add-entry:hover{border-color:var(--accent-primary);color:var(--accent-hover);background:var(--accent-bg-subtle)}.unified-grid-actions .btn-titan{flex-shrink:0}.auxiliary-mappings{display:flex;flex-direction:column;gap:var(--space-lg)}.auxiliary-intro{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-primary) 100%);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg) 20px}.auxiliary-intro p{margin:0;color:var(--text-muted);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 var(--space-lg);background:transparent}.unified-grid-table tbody tr.empty-row:hover{background:transparent}.unified-grid-table .row-adding{background:var(--accent-bg-subtle);animation:rowFadeIn .2s ease}@keyframes rowFadeIn{0%{opacity:0;background:#3b82f633}to{opacity:1;background:#3b82f614}}.unified-grid-table .cell-input-new{border-color:var(--accent-primary);background:var(--bg-secondary)}.unified-grid-table .cell-actions-new{display:flex;gap:var(--space-xs);justify-content:center}.unified-grid-table .btn-confirm{color:var(--success)}.unified-grid-table .btn-confirm:hover{background:var(--success-bg-subtle);border-color:var(--success-border-subtle)}.unified-grid-table .btn-cancel{color:var(--error)}.unified-grid-table .btn-cancel:hover{background:var(--error-bg-subtle);border-color:var(--error-border-subtle)}.unified-grid-actions .btn-add-entry:disabled{opacity:.4;cursor:not-allowed}.grid-selection-bar{display:flex;align-items:center;gap:var(--space-md);padding:10px var(--space-lg);background:var(--accent-bg-subtle);border-bottom:1px solid var(--accent-bg-medium)}.grid-selection-bar .selection-count{color:var(--accent-hover);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:var(--accent-primary);cursor:pointer}.unified-grid-table .row-selected{background:var(--accent-bg-subtle)!important}.unified-grid-table .row-selected td{border-bottom-color:var(--accent-bg-medium)}@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 .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}.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}.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-content{padding:20px 24px;min-width:320px;max-width:480px;width:90%;max-height:70vh}.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:var(--bg-secondary);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border-color)}.doc-selector__header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color)}.doc-selector__header h3{margin:0;font-size:18px;color:var(--text-primary);flex:1}.doc-selector__project{font-size:13px;color:var(--text-muted);background:var(--bg-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs)}.doc-selector__close{background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:0 var(--space-xs);line-height:1}.doc-selector__close:hover{color:var(--text-primary)}.doc-selector__search{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-color)}.doc-selector__search input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14px}.doc-selector__search input:focus{outline:none;border-color:var(--accent-primary)}.doc-selector__search input::placeholder{color:var(--text-muted)}.doc-selector__tip{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-color);font-size:12px;line-height:1.5}.doc-selector__tip-row{display:flex;gap:var(--space-xl);flex-wrap:wrap}.doc-selector__tip-item{display:flex;align-items:center;gap:var(--space-sm)}.doc-selector__tip-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 var(--space-xs);border-radius:3px;font-size:10px;font-weight:700}.doc-selector__tip-badge--good{background:var(--success-bg-subtle);color:var(--success)}.doc-selector__tip-badge--warn{background:var(--warning-bg-subtle);color:var(--warning)}.doc-selector__tip-label{color:var(--text-muted)}.doc-selector__tip-label strong{color:var(--text-secondary);font-weight:600}.doc-selector__tip-note{color:var(--text-muted);font-size:11px;font-style:italic}.doc-selector__info{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-xl);background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.doc-selector__count{font-size:13px;color:var(--text-muted)}.doc-selector__clear{background:none;border:none;color:var(--accent-primary);font-size:13px;cursor:pointer;padding:var(--space-xs) var(--space-sm)}.doc-selector__clear:hover{color:var(--accent-hover);text-decoration:underline}.doc-selector__content{flex:1;overflow-y:auto;padding:var(--space-md) 0;min-height:200px;max-height:400px}.doc-selector__loading,.doc-selector__error,.doc-selector__empty{padding:var(--space-3xl) var(--space-xl);text-align:center;color:var(--text-muted);font-size:14px}.doc-selector__error{color:var(--error)}.doc-selector__folder{margin-bottom:2px}.doc-selector__folder-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md) var(--space-sm) var(--space-xl);cursor:pointer;transition:background var(--transition-fast)}.doc-selector__folder-header:hover{background:var(--accent-bg-subtle)}.doc-selector__folder-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:10px;padding:var(--space-xs);width:20px;text-align:center}.doc-selector__folder-icon{font-size:16px}.doc-selector__folder-name{flex:1;color:var(--text-primary);font-size:14px;font-weight:500}.doc-selector__folder-rev{font-size:11px;color:var(--text-muted);background:var(--bg-tertiary);padding:2px var(--space-sm);border-radius:var(--radius-xs)}.doc-selector__folder-count{font-size:12px;color:var(--text-muted);background:var(--bg-primary);padding:2px var(--space-sm);border-radius:var(--radius-lg);min-width:24px;text-align:center}.doc-selector__select-all{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:2px var(--space-sm);border-radius:var(--radius-xs);transition:all var(--transition-fast)}.doc-selector__select-all:hover{background:var(--accent-bg-medium);color:var(--accent-primary)}.doc-selector__select-all.all{color:var(--success)}.doc-selector__select-all.partial{color:var(--warning)}.doc-selector__folder-content{padding-left:28px}.doc-selector__drawing{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);margin:1px 0;cursor:pointer;border-radius:var(--radius-xs);transition:background var(--transition-fast)}.doc-selector__drawing:hover{background:var(--accent-bg-subtle)}.doc-selector__drawing.selected{background:var(--accent-bg-medium)}.doc-selector__checkbox{color:var(--text-muted);font-size:16px}.doc-selector__drawing.selected .doc-selector__checkbox{color:var(--accent-primary)}.doc-selector__drawing-icon{font-size:14px}.doc-selector__drawing-name{flex:1;color:var(--text-secondary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.doc-selector__drawing-id{font-size:11px;color:var(--text-muted);font-family:monospace}.doc-selector__status{font-size:10px;padding:2px 5px;border-radius:3px;font-weight:600}.doc-selector__status.processed{color:var(--success);background:var(--success-bg-subtle)}.doc-selector__status.pending,.doc-selector__status.uploaded{color:var(--warning);background:var(--warning-bg-subtle)}.doc-selector__footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--border-color);background:var(--bg-primary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.doc-selector__cancel,.doc-selector__confirm{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.doc-selector__cancel{background:var(--bg-tertiary);border:1px solid var(--bg-elevated);color:var(--text-secondary)}.doc-selector__cancel:hover{background:var(--bg-elevated)}.doc-selector__confirm{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.doc-selector__confirm:hover:not(:disabled){background:var(--accent-secondary);border-color:var(--accent-secondary)}.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}.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}.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}.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:900px;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}.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}.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-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}.parallelization-settings{display:flex;flex-direction:column;padding:var(--space-xl);width:100%;max-width:1200px;margin:0 auto}.parallelization-settings .loading{padding:var(--space-3xl);text-align:center;color:var(--text-muted)}.parallelization-settings .settings-header{margin-bottom:var(--space-xl)}.parallelization-settings .settings-header h2{margin:0 0 var(--space-sm);font-size:20px;color:var(--text-primary)}.parallelization-settings .settings-description{margin:0;color:var(--text-muted);font-size:14px;line-height:1.5}.parallelization-settings .hardware-profile{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl);flex-shrink:0}.parallelization-settings .hardware-profile h3{margin:0 0 var(--space-lg);font-size:16px;color:var(--text-secondary)}.parallelization-settings .hardware-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-bottom:var(--space-lg)}@media (max-width: 900px){.parallelization-settings .hardware-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.parallelization-settings .hardware-grid{grid-template-columns:1fr}}.hardware-card{display:flex;gap:14px;padding:var(--space-lg);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.card-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--accent-bg-subtle);border-radius:var(--radius-md);color:var(--accent-primary)}.card-content{flex:1;min-width:0}.card-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.card-value{font-size:16px;font-weight:600;color:var(--text-primary)}.card-subvalue{font-size:13px;color:var(--text-muted);margin-top:2px}.recommendations-note{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--accent-bg-subtle);border:1px solid var(--accent-bg-medium);border-radius:var(--radius-md);font-size:13px;color:var(--text-muted)}.note-icon{font-size:18px;flex-shrink:0}.btn-apply-recommendations{margin-left:auto;flex-shrink:0;padding:var(--space-sm) var(--space-md);background:var(--accent-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.btn-apply-recommendations:hover{background:var(--accent-secondary)}.parallelization-settings .worker-config{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl);flex:1}.parallelization-settings .worker-config h3{margin:0 0 var(--space-xl);font-size:16px;color:var(--text-secondary)}.parallelization-settings .config-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl)}@media (max-width: 800px){.parallelization-settings .config-grid{grid-template-columns:1fr}}.parallelization-settings .config-item{padding:var(--space-lg);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column}.parallelization-settings .config-item .config-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.parallelization-settings .config-item .config-header label{font-size:14px;font-weight:500;color:var(--text-primary)}.parallelization-settings .config-input{width:70px;padding:var(--space-sm) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-primary);font-size:16px;font-weight:600;text-align:center;flex-shrink:0}.parallelization-settings .config-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:var(--shadow-focus)}.parallelization-settings .config-input::-webkit-outer-spin-button,.parallelization-settings .config-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.parallelization-settings .config-input[type=number]{-moz-appearance:textfield}.parallelization-settings .config-description{margin:0 0 var(--space-md);font-size:12px;color:var(--text-muted);line-height:1.5;flex:1}.parallelization-settings .config-description .recommended{display:block;margin-top:var(--space-xs);color:var(--success);font-weight:500}.parallelization-settings .config-item input[type=range]{width:100%;height:6px;background:var(--border-color);border-radius:3px;outline:none;-webkit-appearance:none;margin:var(--space-sm) 0}.parallelization-settings .config-item input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--accent-primary);border-radius:50%;cursor:pointer;transition:all var(--transition-normal)}.parallelization-settings .config-item input[type=range]::-webkit-slider-thumb:hover{background:var(--accent-secondary);transform:scale(1.1)}.parallelization-settings .config-item input[type=range]::-moz-range-thumb{width:18px;height:18px;background:var(--accent-primary);border-radius:50%;cursor:pointer;border:none}.parallelization-settings .range-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.message{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:14px;margin-bottom:var(--space-lg)}.message.error{background:var(--error-bg-subtle);border:1px solid var(--error-border-subtle);color:var(--error)}.message.success{background:var(--success-bg-subtle);border:1px solid var(--success-border-subtle);color:var(--success)}.message-icon{font-size:16px}.settings-actions{display:flex;justify-content:flex-end;gap:var(--space-md)}.resource-monitor{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-xl)}.resource-monitor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.resource-monitor-header h3{margin:0;font-size:16px;color:var(--text-secondary)}.monitor-toggle{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:13px;color:var(--text-muted)}.monitor-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer}.resource-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg)}.resource-card{padding:var(--space-lg);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.resource-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-xs)}.resource-value{font-size:24px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}.resource-bar{height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden;margin-bottom:var(--space-sm)}.resource-bar-fill{height:100%;border-radius:4px;transition:width .3s ease,background-color .3s ease}.resource-bar-fill.low{background:var(--success)}.resource-bar-fill.medium{background:var(--warning)}.resource-bar-fill.high{background:var(--error)}.resource-detail{font-size:12px;color:var(--text-muted)}.resource-cores{display:flex;gap:4px;flex-wrap:wrap;margin-top:var(--space-sm)}.core-indicator{width:16px;height:16px;border-radius:3px;transition:background-color .3s ease}.resource-loading{text-align:center;padding:var(--space-xl);color:var(--text-muted)}.suggestion-card{background:linear-gradient(180deg,var(--bg-secondary) 0%,#172033 100%);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--space-xl);margin-bottom:var(--space-lg);transition:all var(--transition-normal);box-shadow:var(--shadow-sm)}.suggestion-card:hover{border-color:var(--bg-elevated);box-shadow:0 4px 16px #00000040;transform:translateY(-1px)}.suggestion-card--add{border-left:4px solid var(--success);background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--success-bg-subtle) 100%)}.suggestion-card--modify{border-left:4px solid var(--warning);background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--warning-bg-subtle) 100%)}.suggestion-card--remove{border-left:4px solid var(--error);background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--error-bg-subtle) 100%)}.suggestion-card__header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.suggestion-card__action{font-size:12px;font-weight:600;text-transform:uppercase;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);background:#ffffff1a}.suggestion-card--add .suggestion-card__action{background:var(--success-bg-subtle);color:var(--success)}.suggestion-card--modify .suggestion-card__action{background:var(--warning-bg-subtle);color:var(--warning)}.suggestion-card--remove .suggestion-card__action{background:var(--error-bg-subtle);color:var(--error)}.suggestion-card__key{font-size:16px;font-weight:700;color:var(--text-primary);font-family:monospace}.suggestion-card__confidence{margin-left:auto;font-size:12px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);background:#ffffff1a}.suggestion-card__confidence.high{color:var(--success);background:var(--success-bg-subtle)}.suggestion-card__confidence.medium{color:var(--warning);background:var(--warning-bg-subtle)}.suggestion-card__confidence.low{color:var(--error);background:var(--error-bg-subtle)}.suggestion-card__body{margin-bottom:var(--space-lg)}.suggestion-card__current,.suggestion-card__suggested{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);font-size:14px}.suggestion-card__label{color:var(--text-muted);font-size:12px;min-width:70px}.suggestion-card__current .suggestion-card__value{color:var(--text-muted);text-decoration:line-through}.suggestion-card__suggested .suggestion-card__value{color:var(--success);font-family:monospace}.suggestion-card__reason{margin-top:var(--space-md)}.suggestion-card__reason p{margin:var(--space-xs) 0 0 0;color:var(--text-secondary);font-size:14px;line-height:1.5}.suggestion-card__examples{margin-top:var(--space-md)}.suggestion-card__example-list{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.suggestion-card__example{font-size:12px;font-family:monospace;background:var(--bg-primary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-xs);color:var(--text-muted)}.suggestion-card__example-more{font-size:12px;color:var(--text-muted);padding:var(--space-xs) var(--space-sm)}.suggestion-card__edit-form{background:var(--bg-primary);padding:var(--space-md);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.suggestion-card__edit-field{display:flex;align-items:center;gap:var(--space-sm)}.suggestion-card__edit-field label{font-size:12px;color:var(--text-muted);min-width:80px}.suggestion-card__edit-field input,.suggestion-card__edit-field select{flex:1;padding:var(--space-sm) var(--space-sm);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xs);color:var(--text-primary);font-size:14px}.suggestion-card__edit-field input:focus,.suggestion-card__edit-field select:focus{outline:none;border-color:var(--accent-primary)}.suggestion-card__actions{display:flex;gap:var(--space-sm);justify-content:flex-end;padding-top:var(--space-md);border-top:1px solid var(--border-color)}.suggestion-card__btn{padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.suggestion-card__btn--skip{background:transparent;border:1px solid var(--bg-elevated);color:var(--text-muted)}.suggestion-card__btn--skip:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.suggestion-card__btn--edit{background:var(--bg-tertiary);border:1px solid var(--bg-elevated);color:var(--text-secondary)}.suggestion-card__btn--edit:hover{background:var(--bg-elevated)}.suggestion-card__btn--apply{background:var(--accent-primary);border:1px solid var(--accent-primary);color:#fff}.suggestion-card__btn--apply:hover:not(:disabled){background:var(--accent-secondary)}.suggestion-card__btn--apply:disabled{opacity:.5;cursor:not-allowed}.suggestions-panel{background:linear-gradient(180deg,var(--bg-primary) 0%,#0c1322 100%);border-radius:var(--radius-xl);border:1px solid var(--border-color);padding:var(--space-xl);margin-top:var(--space-xl);box-shadow:0 8px 32px #0000004d}.suggestions-panel--empty{text-align:center;padding:var(--space-3xl)}.suggestions-panel--empty p{color:var(--text-muted);margin-bottom:var(--space-lg)}.suggestions-panel__close{padding:var(--space-sm) var(--space-xl);background:var(--bg-tertiary);border:1px solid var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer}.suggestions-panel__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg)}.suggestions-panel__title{display:flex;align-items:center;gap:var(--space-md)}.suggestions-panel__title h3{margin:0;font-size:18px;color:var(--text-primary)}.suggestions-panel__count{font-size:13px;color:var(--text-muted);background:var(--bg-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-lg)}.suggestions-panel__meta{font-size:13px;color:var(--text-muted)}.suggestions-panel__explanation{background:var(--bg-secondary);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:14px;color:var(--text-secondary);border-left:3px solid var(--accent-primary)}.suggestions-panel__bulk-actions{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color)}.suggestions-panel__bulk-btn{padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.suggestions-panel__bulk-btn--apply{background:var(--success);border:1px solid var(--success);color:#fff}.suggestions-panel__bulk-btn--apply:hover:not(:disabled){background:var(--success-muted)}.suggestions-panel__bulk-btn--apply:disabled{opacity:.5;cursor:not-allowed}.suggestions-panel__bulk-btn--dismiss{background:transparent;border:1px solid var(--bg-elevated);color:var(--text-muted)}.suggestions-panel__bulk-btn--dismiss:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.suggestions-panel__list{max-height:500px;overflow-y:auto}.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__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}.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}}
