:root{--bg-color:#0a0a0a;--dark-bg:#111111;--medium-bg:#1a1a1a;--light-bg:#252525;--border-color:#2a2a2a;--text-color:#ffffff;--text-muted:#888888;--accent-color:#f59e0b;--accent-light:#fbbf24;--success-color:#22c55e;--warning-color:#f59e0b;--danger-color:#ef4444;--info-color:#3b82f6}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100vh;font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-color);color:var(--text-color)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--dark-bg)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--dark-bg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:15px}.header-logo{height:28px}.header-title{font-size:16px;font-weight:600}.header-title span{color:var(--accent-color)}.back-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--medium-bg);border:1px solid var(--border-color);color:var(--text-color);text-decoration:none;font-size:13px;border-radius:6px;transition:all 0.3s ease}.back-btn:hover{background:var(--light-bg);border-color:var(--accent-color)}.main-container{display:flex;height:calc(100vh - 53px)}.sidebar{width:320px;background:var(--dark-bg);border-right:1px solid var(--border-color);display:flex;flex-direction:column;overflow-y:auto}.sidebar-section{padding:20px;border-bottom:1px solid var(--border-color)}.sidebar-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:15px}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:15px}.reference-item{aspect-ratio:1;background:var(--medium-bg);border:2px dashed var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.3s ease;position:relative;overflow:hidden}.reference-item:hover{border-color:var(--accent-color)}.reference-item.has-image{border-style:solid;border-color:var(--success-color)}.reference-item img{width:100%;height:100%;object-fit:cover}.reference-item .add-icon{font-size:20px;color:var(--text-muted)}.reference-item .remove-btn{position:absolute;top:4px;right:4px;width:20px;height:20px;background:var(--danger-color);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity 0.2s}.reference-item:hover .remove-btn{opacity:1}.reference-item .remove-btn i{font-size:12px;color:white}.upload-btn{width:100%;padding:12px;background:linear-gradient(135deg,var(--accent-color),var(--accent-light));border:none;border-radius:8px;color:#000;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all 0.3s ease}.upload-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(245,158,11,0.3)}.upload-btn:disabled{opacity:0.5;cursor:not-allowed;transform:none}.setting-group{margin-bottom:15px}.setting-label{font-size:12px;color:var(--text-muted);margin-bottom:6px}.setting-select{width:100%;padding:10px 12px;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:13px;cursor:pointer}.setting-select:focus{outline:none;border-color:var(--accent-color)}.setting-slider{width:100%;margin-top:8px}.slider-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted);margin-top:4px}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{background:var(--medium-bg);border-radius:8px;padding:12px;text-align:center}.stat-value{font-size:24px;font-weight:700;color:var(--accent-color)}.stat-label{font-size:11px;color:var(--text-muted);margin-top:4px}.content-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.detection-view{flex:1;display:flex;gap:20px;padding:20px;overflow:auto}.image-panel{flex:1;background:var(--dark-bg);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.panel-header{padding:12px 16px;background:var(--medium-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.panel-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.panel-title i{color:var(--accent-color)}.panel-badge{padding:4px 10px;background:rgba(245,158,11,0.15);border-radius:12px;font-size:11px;color:var(--accent-color)}.panel-content{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.drop-zone{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-color);margin:20px;border-radius:12px;cursor:pointer;transition:all 0.3s ease}.drop-zone:hover,.drop-zone.dragover{border-color:var(--accent-color);background:rgba(245,158,11,0.05)}.drop-zone i{font-size:48px;color:var(--text-muted);margin-bottom:15px}.drop-zone p{font-size:14px;color:var(--text-muted);text-align:center}.drop-zone span{color:var(--accent-color);text-decoration:underline}.image-container{position:relative;width:100%;height:100%;display:none}.image-container.active{display:flex;align-items:center;justify-content:center}.image-container.comparison-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px}.inline-comparison-panel{position:relative;display:flex;flex-direction:column;background:var(--dark-bg);border-radius:8px;overflow:hidden;border:2px solid var(--border-color)}.inline-comparison-panel.good-panel{border-color:var(--success-color)}.inline-comparison-panel.test-panel{border-color:var(--accent-color)}.inline-panel-header{padding:6px 10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;display:flex;align-items:center;gap:5px}.inline-comparison-panel.good-panel .inline-panel-header{background:rgba(34,197,94,0.15);color:var(--success-color)}.inline-comparison-panel.test-panel .inline-panel-header{background:rgba(245,158,11,0.15);color:var(--accent-color)}.inline-panel-body{position:relative;flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg-color);min-height:200px}.inline-panel-body img{max-width:100%;max-height:100%;object-fit:contain}.inline-panel-body canvas{position:absolute;top:0;left:0;pointer-events:none}.inline-result-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;font-size:9px;font-weight:600;margin-left:auto}.inline-result-badge.pass{background:rgba(34,197,94,0.2);color:var(--success-color)}.inline-result-badge.fail{background:rgba(239,68,68,0.2);color:var(--danger-color)}@media (max-width:500px){.image-container.comparison-mode{grid-template-columns:1fr}}.image-container img{max-width:100%;max-height:100%;object-fit:contain}#singleImageView{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}#testImage,#testImageCompare{cursor:pointer;position:relative;z-index:1}.heatmap-toggle-hint{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,0.7);color:#fff;padding:4px 10px;border-radius:4px;font-size:11px;pointer-events:none;opacity:0;transition:opacity 0.3s ease;z-index:10}#singleImageView:hover .heatmap-toggle-hint,#testPanelBody:hover .heatmap-toggle-hint{opacity:1}.image-actions{position:absolute;top:15px;right:15px;display:flex;gap:8px;z-index:5}.image-action-btn{width:36px;height:36px;background:rgba(0,0,0,0.7);border:1px solid var(--border-color);border-radius:8px;color:var(--text-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease}.image-action-btn:hover{background:var(--accent-color);border-color:var(--accent-color);color:#000}.image-action-btn i{font-size:16px}.heatmap-overlay{position:absolute;top:0;left:0;pointer-events:none;z-index:5}.results-panel{width:300px;background:var(--dark-bg);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.result-header{padding:16px;background:var(--medium-bg);border-bottom:1px solid var(--border-color);text-align:center}.result-score{font-size:48px;font-weight:800}.result-score.normal{color:var(--success-color)}.result-score.anomaly{color:var(--danger-color)}.result-label{font-size:14px;font-weight:600;margin-top:8px}.result-label.normal{color:var(--success-color)}.result-label.anomaly{color:var(--danger-color)}.result-details{padding:16px;flex:1;overflow-y:auto}.detail-item{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-color)}.detail-item:last-child{border-bottom:none}.detail-label{font-size:13px;color:var(--text-muted)}.detail-value{font-size:13px;font-weight:600}.defect-list{margin-top:15px}.defect-item{display:flex;align-items:center;gap:10px;padding:10px;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3);border-radius:8px;margin-bottom:8px}.defect-icon{width:32px;height:32px;background:var(--danger-color);border-radius:6px;display:flex;align-items:center;justify-content:center}.defect-icon i{font-size:16px;color:white}.defect-info{flex:1}.defect-type{font-size:13px;font-weight:600}.defect-location{font-size:11px;color:var(--text-muted)}.loading-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.9);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;opacity:0;pointer-events:none;transition:opacity 0.3s ease}.loading-overlay.active{opacity:1;pointer-events:auto}.loading-spinner{width:50px;height:50px;border:4px solid var(--border-color);border-top-color:var(--accent-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:15px;font-size:14px;color:var(--text-muted)}.training-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.85);backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity 0.4s ease}.training-overlay.active{opacity:1;pointer-events:auto}.training-container{background:linear-gradient(145deg,#1a1a1a,#0d0d0d);border:1px solid rgba(139,0,0,0.3);border-radius:16px;padding:40px 60px;text-align:center;box-shadow:0 25px 80px rgba(0,0,0,0.5),0 0 40px rgba(139,0,0,0.1);max-width:400px}.training-icon{width:80px;height:80px;margin:0 auto 25px;position:relative}.training-ring{position:absolute;inset:0;border:3px solid transparent;border-top-color:var(--primary-red);border-radius:50%;animation:trainingSpin 1.2s cubic-bezier(0.5,0,0.5,1) infinite}.training-ring:nth-child(2){inset:8px;border-top-color:#ff6b6b;animation-delay:-0.15s}.training-ring:nth-child(3){inset:16px;border-top-color:#ffa502;animation-delay:-0.3s}.training-brain{position:absolute;inset:24px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--primary-red);animation:pulse 2s ease-in-out infinite}@keyframes trainingSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes pulse{0%,100%{opacity:0.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}.training-title{font-size:20px;font-weight:600;color:#fff;margin-bottom:8px;letter-spacing:0.5px}.training-status{font-size:14px;color:var(--text-muted);margin-bottom:25px}.training-progress{width:100%;height:4px;background:rgba(255,255,255,0.1);border-radius:2px;overflow:hidden;margin-bottom:15px}.training-progress-bar{height:100%;background:linear-gradient(90deg,var(--primary-red),#ff6b6b);border-radius:2px;width:0%;animation:progressIndeterminate 2s ease-in-out infinite}@keyframes progressIndeterminate{0%{width:0%;margin-left:0%}50%{width:60%;margin-left:20%}100%{width:0%;margin-left:100%}}.training-progress-bar.determinate{animation:none;transition:width 0.3s ease}.training-steps{display:flex;justify-content:center;gap:20px;margin-top:20px}.training-step{display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0.4;transition:opacity 0.3s ease}.training-step.active{opacity:1}.training-step.completed{opacity:1}.training-step-icon{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text-muted);transition:all 0.3s ease}.training-step.active .training-step-icon{background:var(--primary-red);color:#fff;box-shadow:0 0 15px rgba(139,0,0,0.5)}.training-step.completed .training-step-icon{background:var(--success-color);color:#fff}.training-step-label{font-size:11px;color:var(--text-muted)}.training-step.active .training-step-label,.training-step.completed .training-step-label{color:#fff}.saved-models-list{max-height:200px;overflow-y:auto}.model-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:8px;transition:all 0.2s ease;cursor:pointer}.model-item:hover{border-color:var(--accent-color);background:var(--light-bg)}.model-item.active{border-color:var(--success-color);background:rgba(34,197,94,0.1)}.model-info{flex:1;min-width:0}.model-name{font-size:13px;font-weight:500;color:var(--text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.model-meta{font-size:10px;color:var(--text-muted);margin-top:2px}.model-previews{display:flex;gap:4px;margin-top:6px}.model-preview-thumb{width:28px;height:28px;object-fit:cover;border-radius:4px;border:1px solid var(--border-color);cursor:pointer;transition:all 0.2s ease}.model-preview-thumb:hover{border-color:var(--accent-color);transform:scale(1.1)}.comparison-section{margin-top:20px;padding:15px;background:var(--medium-bg);border-radius:8px;border:1px solid var(--border-color)}.comparison-header{display:flex;align-items:center;gap:8px;margin-bottom:15px;color:var(--text-color);font-size:13px;font-weight:600}.comparison-header i{font-size:16px;color:var(--accent-color)}.comparison-container{display:grid;grid-template-columns:1fr 1fr;gap:15px}.comparison-panel{background:var(--dark-bg);border-radius:8px;overflow:hidden;border:2px solid var(--border-color)}.comparison-panel.good{border-color:var(--success-color)}.comparison-panel.test{border-color:var(--accent-color)}.comparison-panel-header{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;display:flex;align-items:center;gap:6px}.comparison-panel.good .comparison-panel-header{background:rgba(34,197,94,0.15);color:var(--success-color)}.comparison-panel.test .comparison-panel-header{background:rgba(245,158,11,0.15);color:var(--accent-color)}.comparison-panel-body{padding:10px;display:flex;align-items:center;justify-content:center;min-height:150px;background:var(--bg-color)}.comparison-panel-body img{max-width:100%;max-height:200px;object-fit:contain;border-radius:4px}.comparison-result-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:4px;font-size:10px;font-weight:600;margin-left:auto}.comparison-result-badge.pass{background:rgba(34,197,94,0.2);color:var(--success-color)}.comparison-result-badge.fail{background:rgba(239,68,68,0.2);color:var(--danger-color)}@media (max-width:600px){.comparison-container{grid-template-columns:1fr}}.good-reference-section{margin-top:20px;padding:15px;background:var(--medium-bg);border-radius:8px;border:1px solid var(--border-color)}.good-reference-section .reference-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--success-color);font-size:13px;font-weight:600}.good-reference-section .reference-header i{font-size:16px}.good-reference-section .reference-images{display:flex;gap:8px;flex-wrap:wrap}.good-reference-section .reference-images img{width:80px;height:80px;object-fit:cover;border-radius:6px;border:2px solid var(--success-color);cursor:pointer;transition:all 0.2s ease}.good-reference-section .reference-images img:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(34,197,94,0.3)}.good-reference-section .no-reference{color:var(--text-muted);font-size:12px;font-style:italic}.model-actions{display:flex;gap:6px;margin-left:10px}.model-action-btn{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease}.model-action-btn:hover{background:var(--border-color);color:var(--text-color)}.model-action-btn.delete:hover{background:rgba(239,68,68,0.2);color:var(--danger-color)}.model-action-btn.load:hover{background:rgba(34,197,94,0.2);color:var(--success-color)}.no-models-msg{text-align:center;padding:20px;color:var(--text-muted);font-size:12px}.save-model-input{display:flex;gap:8px;margin-top:12px}.save-model-input input{flex:1;padding:8px 12px;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:13px}.save-model-input input:focus{outline:none;border-color:var(--accent-color)}.save-model-input button{padding:8px 16px;background:var(--accent-color);border:none;border-radius:6px;color:#000;font-size:12px;font-weight:600;cursor:pointer;transition:all 0.2s ease}.save-model-input button:hover{background:var(--accent-light)}.save-model-input button:disabled{opacity:0.5;cursor:not-allowed}.placeholder-state{text-align:center;padding:40px 20px}.placeholder-state i{font-size:48px;color:var(--text-muted);margin-bottom:15px}.placeholder-state h3{font-size:16px;margin-bottom:8px}.placeholder-state p{font-size:13px;color:var(--text-muted)}.camera-section{margin-bottom:15px}.camera-preview-container{position:relative;width:100%;aspect-ratio:4/3;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:10px}.camera-preview-container video{width:100%;height:100%;object-fit:cover}.camera-preview-container .camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted)}.camera-preview-container .camera-placeholder i{font-size:32px;margin-bottom:8px}.camera-preview-container .camera-placeholder span{font-size:12px}.camera-controls{display:flex;gap:8px}.camera-btn{flex:1;padding:10px;border:1px solid var(--border-color);border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all 0.3s ease}.camera-btn.start{background:var(--success-color);border-color:var(--success-color);color:#000}.camera-btn.start:hover{background:#16a34a}.camera-btn.stop{background:var(--danger-color);border-color:var(--danger-color);color:#fff}.camera-btn.stop:hover{background:#dc2626}.camera-btn.capture{background:var(--accent-color);border-color:var(--accent-color);color:#000}.camera-btn.capture:hover{background:var(--accent-light)}.camera-btn:disabled{opacity:0.5;cursor:not-allowed}.camera-btn i{font-size:14px}.capture-flash{position:absolute;inset:0;background:white;opacity:0;pointer-events:none;transition:opacity 0.1s ease}.capture-flash.active{opacity:0.8}.capture-count{position:absolute;top:8px;right:8px;padding:4px 10px;background:rgba(0,0,0,0.7);border-radius:12px;font-size:11px;font-weight:600}.rtsp-section{margin-bottom:15px}.rtsp-url-group{margin-bottom:10px}.rtsp-label{display:block;font-size:11px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.rtsp-label i{margin-right:4px}.rtsp-input{width:100%;padding:10px 12px;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:12px;font-family:'JetBrains Mono',monospace;transition:border-color 0.2s ease}.rtsp-input:focus{outline:none;border-color:var(--accent-color)}.rtsp-input::placeholder{color:var(--text-muted);opacity:0.6}.rtsp-hint{font-size:10px;color:var(--text-muted);margin-top:4px}.rtsp-preview-container{position:relative;width:100%;aspect-ratio:4/3;background:var(--medium-bg);border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:10px}.rtsp-preview-container img{width:100%;height:100%;object-fit:cover;display:none}.rtsp-preview-container img.active{display:block}.crop-overlay-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.rtsp-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-muted)}.rtsp-placeholder i{font-size:32px;margin-bottom:8px}.rtsp-placeholder span{font-size:12px}.rtsp-status{position:absolute;bottom:8px;left:8px;padding:4px 10px;background:rgba(0,0,0,0.7);border-radius:12px;font-size:10px;font-weight:600;display:none}.rtsp-status.connected{display:block;color:var(--success-color)}.rtsp-status.error{display:block;color:var(--danger-color)}.rtsp-status.connecting{display:block;color:var(--accent-color)}.rtsp-controls{display:flex;gap:8px}.mode-tabs{display:flex;gap:4px;margin-bottom:12px;background:var(--medium-bg);padding:4px;border-radius:8px}.mode-tab{flex:1;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-size:12px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all 0.2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.mode-tab:hover{color:var(--text-color)}.mode-tab.active{background:var(--accent-color);color:#000}.mode-tab i{font-size:14px}.mode-content{display:none}.mode-content.active{display:block}.test-source-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--accent-color);border:none;border-radius:6px;color:#000;font-size:11px;font-weight:600;cursor:pointer;transition:all 0.2s ease}.test-source-btn:hover{background:var(--accent-light);transform:translateY(-1px)}.test-source-btn i{font-size:12px}.rtsp-test-preview{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.rtsp-test-stream-container{position:relative;width:100%;max-width:640px;aspect-ratio:4/3;background:var(--medium-bg);border:2px solid var(--accent-color);border-radius:12px;overflow:hidden}.rtsp-test-stream-container img{width:100%;height:100%;object-fit:cover}.rtsp-test-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.3);opacity:0;transition:opacity 0.3s ease}.rtsp-test-stream-container:hover .rtsp-test-overlay{opacity:1}.rtsp-capture-test-btn{display:flex;align-items:center;gap:10px;padding:15px 30px;background:linear-gradient(135deg,var(--accent-color),var(--accent-light));border:none;border-radius:12px;color:#000;font-size:16px;font-weight:700;cursor:pointer;transition:all 0.3s ease;box-shadow:0 4px 20px rgba(245,158,11,0.4)}.rtsp-capture-test-btn:hover{transform:scale(1.05);box-shadow:0 6px 25px rgba(245,158,11,0.5)}.rtsp-capture-test-btn i{font-size:20px}.rtsp-test-status{position:absolute;top:10px;left:10px;padding:6px 12px;background:rgba(239,68,68,0.9);border-radius:20px;font-size:11px;font-weight:600;color:white;display:flex;align-items:center;gap:6px;animation:pulse-live 2s ease-in-out infinite}@keyframes pulse-live{0%,100%{opacity:1}50%{opacity:0.7}}.rtsp-test-hint{margin-top:15px;font-size:13px;color:var(--text-muted);text-align:center}.processing-indicator{position:absolute;top:10px;right:10px;padding:6px 12px;background:rgba(59,130,246,0.9);border-radius:20px;font-size:11px;font-weight:600;color:white;display:none;align-items:center;gap:6px;z-index:10}.processing-indicator.active{display:flex}.processing-indicator i{animation:spin 1s linear infinite}@media (max-width:1024px){.main-container{flex-direction:column;height:auto}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-color)}.detection-view{flex-direction:column}.results-panel{width:100%}}@media (max-width:768px){.header{flex-direction:column;gap:10px}.reference-grid{grid-template-columns:repeat(4,1fr)}}