*{box-sizing:border-box}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;overflow:hidden;padding:0}#root,body,html{height:100%;width:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.camera-container{background:#000;display:flex;flex-direction:column;height:100vh;overflow:hidden;position:relative;width:100vw}.camera-viewport{align-items:center;display:flex;flex:1 1;justify-content:center;position:relative}.camera-video{height:100%;object-fit:cover;width:100%}.detection-overlay,.processing-canvas{left:0;pointer-events:none;position:absolute;top:0}.detection-overlay{height:100%;width:100%;z-index:2}.camera-controls{background:linear-gradient(#0000,#000000b3);bottom:0;height:120px;left:0;padding:20px;position:absolute;right:0;z-index:3}.camera-controls,.capture-button{align-items:center;display:flex;justify-content:center}.capture-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:3px solid #fff;border-radius:50%;cursor:pointer;height:70px;transition:all .3s ease;width:70px}.capture-button:hover{background:#ffffff4d;transform:scale(1.05)}.capture-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.capture-button.searching{background:#6666664d;border-color:#666;cursor:pointer!important;opacity:1!important;transform:scale(1)!important}.capture-button.ready{animation:pulse-ready 2s infinite;background:#4caf504d;border-color:#4caf50}.capture-button.detected{background:#ff98004d;border-color:#ff9800}.capture-button.detected,.capture-button.positioned{cursor:pointer!important;opacity:1!important;transform:scale(1)!important}.capture-button.positioned{background:#2196f34d;border-color:#2196f3}.capture-button.processing{animation:spin 1s linear infinite}@keyframes pulse-ready{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.camera-icon{background:#fff;border-radius:50%;height:30px;position:relative;width:30px}.camera-icon:before{border:2px solid #000;border-radius:50%;content:"";height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:30px;width:30px}.secondary-control{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000004d;border:2px solid #ffffffb3;border-radius:50%;cursor:pointer;display:flex;height:50px;justify-content:center;position:absolute;right:30px;transition:all .3s ease;width:50px}.secondary-control:hover{background:#fff3;border-color:#fff}.secondary-control:disabled{cursor:not-allowed;opacity:.3}.flip-icon{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='m9 12 1.42 1.42L8.83 15H18V9h-2V7h4v10H8.83l1.59 1.58L9 20l-4-4 4-4z'/%3E%3C/svg%3E") no-repeat 50%;background-size:contain;height:24px;width:24px}.positioning-guide{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px;left:20px;padding:12px 20px;position:absolute;right:20px;text-align:center;top:80px;transition:all .3s ease;z-index:3}.positioning-guide.detected{background:#ff9800e6;color:#fff}.positioning-guide.positioned{background:#2196f3e6;color:#fff}.positioning-guide.ready{animation:pulse-guide 1.5s infinite;background:#4caf50e6;color:#fff}@keyframes pulse-guide{0%,to{opacity:.9}50%{opacity:1}}.positioning-guide p{font-size:16px;font-weight:500;margin:0}.camera-loading{color:#fff;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:4}.camera-loading p{font-size:18px;margin-top:20px;opacity:.8}.camera-error{align-items:center;background:#000000e6;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:5}.error-content{color:#fff;max-width:400px;padding:40px;text-align:center}.error-content h3{color:#ff5722;font-size:24px;margin:0 0 20px}.error-content p{font-size:16px;line-height:1.5;margin:0 0 30px;opacity:.9}.retry-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#2196f333;border:2px solid #2196f3;border-radius:8px;color:#2196f3;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .3s ease}.retry-button:hover{background:#2196f34d;transform:translateY(-2px)}@media (max-width:768px){.camera-controls{bottom:25px;height:80px;padding:8px 15px max(15px,calc(env(safe-area-inset-bottom) + 15px))}.capture-button{height:55px;width:55px}.camera-icon{height:22px;width:22px}.secondary-control{height:42px;right:15px;width:42px}.positioning-guide{left:15px;padding:10px 15px;right:15px;top:60px}.positioning-guide p{font-size:14px}}@media (max-width:480px){.camera-controls{bottom:35px;height:70px;padding:6px 12px max(15px,calc(env(safe-area-inset-bottom) + 20px))}.capture-button{height:50px;width:50px}.camera-icon{height:20px;width:20px}.secondary-control{height:38px;right:12px;width:38px}.positioning-guide{left:12px;padding:8px 12px;right:12px;top:50px}.positioning-guide p{font-size:13px}}.model-loading,.model-status{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border-radius:6px;color:#fff;font-size:12px;padding:8px 12px;position:absolute;right:20px;top:20px;z-index:4}.model-status{background:#ff9800e6}.model-loading{align-items:center;background:#2196f3e6;display:flex;gap:8px}.model-loading .loading-spinner{border-width:2px;height:16px;width:16px}.confidence-slider-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000c;border:1px solid #ffffff1a;border-radius:8px;bottom:8px;color:#fff;font-size:12px;min-width:220px;padding:12px 16px;position:absolute;right:8px;transition:all .3s ease;z-index:10}.confidence-slider-container:hover{background:#000000e6;border-color:#fff3}.confidence-slider-title{color:#fff;font-size:13px;font-weight:600;margin-bottom:10px;text-align:center}.confidence-slider-controls{align-items:center;display:flex;gap:10px;margin-bottom:8px}.confidence-slider-label{color:#ccc;font-size:10px;font-weight:500;min-width:24px;text-align:center}.confidence-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#333,#666);border-radius:3px;cursor:pointer;flex:1 1;height:6px;outline:none;transition:all .3s ease}.confidence-slider:hover{background:linear-gradient(90deg,#444,#777)}.confidence-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#2196f3,#1976d2);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;height:18px;-webkit-transition:all .3s ease;transition:all .3s ease;width:18px}.confidence-slider::-webkit-slider-thumb:hover{box-shadow:0 3px 8px #0006;transform:scale(1.1)}.confidence-slider::-moz-range-thumb{background:linear-gradient(135deg,#2196f3,#1976d2);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 6px #0000004d;cursor:pointer;height:18px;-moz-transition:all .3s ease;transition:all .3s ease;width:18px}.confidence-slider::-moz-range-thumb:hover{box-shadow:0 3px 8px #0006;transform:scale(1.1)}.confidence-value-display{color:#2196f3;font-size:12px;font-weight:600;margin-top:6px;text-align:center;text-shadow:0 1px 2px #00000080}@media (orientation:landscape) and (max-height:500px){.camera-controls{height:70px;padding:8px 8px max(8px,calc(env(safe-area-inset-bottom) + 4px))}.capture-button{height:50px;width:50px}.camera-icon{height:20px;width:20px}.secondary-control{height:40px;right:10px;width:40px}.positioning-guide{top:20px}.camera-loading{top:40%}.model-loading,.model-status{font-size:11px;right:10px;top:10px}.confidence-slider-container{bottom:76px;font-size:10px;min-width:160px;padding:6px 10px;right:6px}.debug-panel{font-size:8px;left:2px;max-width:calc(40vw - 4px);padding:2px 4px;top:2px}.debug-panel button{font-size:7px;margin-top:1px;padding:1px 3px}}.camera-container .debug-panel{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;border-radius:4px;color:#fff;font-size:12px;left:8px;max-width:calc(100vw - 16px);padding:6px 8px;position:absolute;top:8px;z-index:10}.debug-panel button{background:#007bff;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:11px;margin-top:4px;padding:4px 8px}.debug-panel button:disabled{background:#666;cursor:not-allowed}@media (max-width:768px){.confidence-slider-container{bottom:111px;font-size:11px;min-width:200px;padding:10px 12px;right:6px}.confidence-slider-title{font-size:12px;margin-bottom:8px}.confidence-slider{height:8px}.confidence-slider::-webkit-slider-thumb{height:20px;width:20px}.confidence-slider::-moz-range-thumb{height:20px;width:20px}.debug-panel{font-size:10px;left:4px;max-width:calc(50vw - 8px);padding:4px 6px;top:4px}.debug-panel button{font-size:9px;padding:2px 6px}}@media (max-width:480px){.confidence-slider-container{bottom:109px;font-size:10px;min-width:180px;padding:8px 10px;right:4px}.confidence-slider-title{font-size:11px;margin-bottom:6px}.debug-panel{font-size:9px;left:2px;max-width:calc(45vw - 4px);padding:3px 5px;top:2px}.debug-panel div{margin-bottom:1px}.debug-panel button{font-size:8px;margin-top:2px;padding:1px 4px}}@media (max-width:480px) and (max-height:700px){.camera-controls{bottom:50px;height:60px;padding:4px 10px max(20px,calc(env(safe-area-inset-bottom) + 25px))}.capture-button{height:45px;width:45px}.camera-icon{height:18px;width:18px}.secondary-control{height:35px;right:10px;width:35px}.confidence-slider-container{bottom:114px;font-size:9px;min-width:160px;padding:6px 8px;right:4px}.confidence-slider-title{font-size:10px;margin-bottom:4px}}@media (max-width:480px) and (max-height:600px){.camera-controls{bottom:70px;height:50px;padding:3px 8px max(25px,calc(env(safe-area-inset-bottom) + 30px))}.capture-button{height:40px;width:40px}.camera-icon{height:16px;width:16px}.secondary-control{height:32px;right:8px;width:32px}.confidence-slider-container{bottom:124px;font-size:8px;min-width:140px;padding:4px 6px;right:4px}.confidence-slider-title{font-size:9px;margin-bottom:3px}}.frozen-frame-canvas,.processing-overlay{left:0;position:absolute;top:0}.processing-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b3;bottom:0;display:flex;justify-content:center;right:0;z-index:10}.processing-content{color:#fff;padding:40px;text-align:center}.processing-content h3{font-size:24px;font-weight:600;margin:0 0 15px}.processing-content p{font-size:16px;margin:0;opacity:.9}.processing-step{color:#4caf50!important;font-size:14px!important;font-weight:500;margin:10px 0!important}.progress-container{margin-top:20px;max-width:300px;width:100%}.progress-bar{background:#fff3;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,#4caf50,#66bb6a);border-radius:4px;box-shadow:0 0 10px #4caf5080;height:100%;transition:width .3s ease}.progress-text{font-size:12px!important;margin:0!important;opacity:.8!important;text-align:center}.loading-spinner.large{border-width:4px;height:50px;margin:0 auto 20px;width:50px}.frame-captured-overlay{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.frame-captured-content{color:#fff;padding:30px;text-align:center}.frame-captured-content h3{color:#4caf50;font-size:20px;font-weight:600;margin:0 0 10px}.frame-captured-content p{font-size:14px;margin:0 0 20px;opacity:.8}.capture-status{color:#2196f3!important;font-weight:500!important}.detection-count{color:#4caf50!important;font-size:13px!important;font-weight:600!important;margin:5px 0 15px!important}.resume-camera-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#4caf5033;border:2px solid #4caf50;border-radius:6px;color:#4caf50;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .3s ease}.resume-camera-btn:hover{background:#4caf504d;transform:translateY(-2px)}@media (max-width:768px){.processing-content{padding:30px 20px}.processing-content h3{font-size:20px}.processing-content p{font-size:14px}.loading-spinner.large{border-width:3px;height:40px;width:40px}.frame-captured-content{padding:20px}.frame-captured-content h3{font-size:18px}.frame-captured-content p{font-size:13px}.resume-camera-btn{font-size:13px;padding:8px 16px}.progress-container{margin-top:15px;max-width:250px}.progress-bar{height:6px}.progress-text{font-size:11px!important}.processing-step{font-size:13px!important}.detection-count{font-size:12px!important}}.detection-metadata{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-height:600px;overflow-y:auto;padding:20px}.metadata-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.metadata-header h3{color:#333;font-size:1.4rem;font-weight:600;margin:0}.metadata-sections{display:flex;flex-direction:column;gap:20px}.metadata-section{background:#f8f9fa;border-left:4px solid #007bff;border-radius:8px;padding:16px}.metadata-section h4{color:#495057;font-size:1.1rem;font-weight:600;margin:0 0 12px}.metadata-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.metadata-item{display:flex;flex-direction:column;gap:4px}.metadata-item label{color:#6c757d;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.metadata-item span{color:#212529;font-size:.95rem}.monospace{background:#e9ecef;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;padding:2px 6px}.corners-list{grid-column:1/-1}.corners-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin-top:8px}.corner-item{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;gap:8px;padding:8px}.corner-label{color:#007bff;font-weight:600;min-width:25px}@media (max-width:768px){.detection-metadata{max-height:500px;padding:16px}.metadata-header{align-items:flex-start;flex-direction:column;gap:10px}.corners-grid,.metadata-grid{grid-template-columns:1fr}.metadata-header h3{font-size:1.2rem}}@media (prefers-color-scheme:dark){.detection-metadata{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.metadata-header{border-bottom-color:#4a5568}.metadata-header h3{color:#e2e8f0}.metadata-section{background:#1a202c;border-left-color:#3182ce}.metadata-section h4{color:#cbd5e0}.metadata-item label{color:#a0aec0}.metadata-item span,.monospace{color:#e2e8f0}.monospace{background:#4a5568}.corner-item{background:#2d3748;border-color:#4a5568}.corner-label{color:#63b3ed}}.detection-metadata::-webkit-scrollbar{width:8px}.detection-metadata::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.detection-metadata::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.detection-metadata::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.validation-status.valid{color:#4caf50!important;font-weight:700}.validation-status.invalid{color:#f44336!important;font-weight:700}.validation-metrics{margin-top:16px}.validation-metrics h5{color:#666;font-size:.9rem;font-weight:600;margin:0 0 12px}.metrics-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.metric-item{align-items:center;background:#f8f9fa;border-radius:4px;display:flex;font-size:.85rem;justify-content:space-between;padding:6px 8px}.metric-item label{color:#555;font-weight:500}.metric-pass{color:#4caf50;font-weight:600}.metric-fail{color:#f44336;font-weight:600}.metric-detail{color:#666;font-size:.8rem;font-weight:400}.validation-recommendations{margin-top:16px}.validation-recommendations h5{color:#666;font-size:.9rem;font-weight:600;margin:0 0 8px}.recommendations-list{list-style:none;margin:0;padding:0}.recommendation-item{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;color:#856404;font-size:.85rem;line-height:1.4;margin-bottom:6px;padding:8px 12px}.recommendation-item:last-child{margin-bottom:0}@media (max-width:768px){.metrics-grid{gap:6px;grid-template-columns:1fr}.metric-item{font-size:.8rem;padding:4px 6px}.validation-metrics h5,.validation-recommendations h5{font-size:.85rem}.recommendation-item{font-size:.8rem;padding:6px 8px}}.model-placeholders{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.placeholders-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px}.placeholders-header h3{font-size:1.4rem;font-weight:600;margin:0 0 15px}.tab-navigation{gap:8px}.tab-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:20px;color:#fff;font-size:.9rem;font-weight:500;padding:8px 16px}.tab-btn:hover{background:#ffffff4d}.tab-btn.active{border-color:#fff;color:#667eea}.placeholders-content{max-height:600px;overflow-y:auto;padding:20px}.model-section{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;padding:20px}.section-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.section-header h4{color:#495057;font-size:1.2rem;font-weight:600;margin:0}.run-model-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease}.run-model-btn:hover:not(:disabled){box-shadow:0 4px 8px #0003;transform:translateY(-1px)}.run-model-btn:disabled{cursor:not-allowed;opacity:.6}.model-description{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;margin-bottom:20px;padding:15px}.model-description p{color:#1565c0;font-style:italic;margin:0}.prediction-results{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.prediction-item{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.prediction-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.card-type{border-radius:15px;font-size:.9rem;font-weight:600;padding:4px 12px}.card-type.pokemon{background:#ffeb3b;color:#f57f17}.card-type.magic{background:#ff9800;color:#fff}.card-type.yugioh{background:#9c27b0;color:#fff}.card-type.sports{background:#4caf50;color:#fff}.confidence-score{color:#495057;font-weight:600}.confidence-bar{background:#e9ecef;border-radius:3px;height:6px;overflow:hidden}.confidence-fill{background:linear-gradient(90deg,#4caf50,#8bc34a);height:100%;transition:width .3s ease}.additional-info{grid-gap:15px;background:#fff;border:1px solid #dee2e6;border-radius:8px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:15px}.info-item label{color:#6c757d;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-item span{color:#212529;font-size:.95rem}.ocr-results{display:flex;flex-direction:column;gap:20px}.editable-text,.extracted-text,.text-regions{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.editable-text h5,.extracted-text h5,.text-regions h5{color:#495057;font-size:1rem;font-weight:600;margin:0 0 15px}.text-content{display:flex;flex-direction:column;gap:8px}.text-line{align-items:center;background:#f8f9fa;border-left:3px solid #007bff;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.text-value{color:#212529;font-family:Monaco,Menlo,Ubuntu Mono,monospace}.text-confidence{color:#28a745;font-size:.9rem;font-weight:600}.regions-list{display:flex;flex-direction:column;gap:8px}.region-item{align-items:center;background:#f8f9fa;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.region-label{color:#495057;font-weight:600}.region-coords{color:#6c757d}.region-coords,.text-editor{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.text-editor{border:1px solid #ced4da;border-radius:6px;min-height:120px;padding:12px;resize:vertical;width:100%}.text-editor:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.identification-results{display:flex;flex-direction:column;gap:20px}.card-identity,.market-value,.similar-cards{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:15px}.card-identity h5,.market-value h5,.similar-cards h5{color:#495057;font-size:1rem;font-weight:600;margin:0 0 15px}.identity-grid,.value-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.identity-item,.value-item{display:flex;flex-direction:column;gap:4px}.identity-item label,.value-item label{color:#6c757d;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.identity-item span,.value-item span{color:#212529;font-size:.95rem}.rarity{border-radius:12px;font-size:.8rem;font-weight:600;padding:2px 8px}.rarity.common{background:#6c757d;color:#fff}.price{font-size:1.1rem;font-weight:600}.market-price{color:#28a745;font-size:1.3rem}.value-disclaimer{background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;color:#856404;margin-top:15px;padding:10px}.similar-list{display:flex;flex-direction:column;gap:8px}.similar-item{align-items:center;background:#f8f9fa;border-left:3px solid #17a2b8;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px}.similar-name{color:#212529;font-weight:500}.similar-confidence{color:#17a2b8;font-size:.9rem;font-weight:600}@media (max-width:768px){.placeholders-header{padding:15px}.tab-navigation{flex-wrap:wrap}.placeholders-content{max-height:500px;padding:15px}.section-header{align-items:flex-start;flex-direction:column;gap:10px}.identity-grid,.value-grid{grid-template-columns:1fr}.prediction-header{align-items:flex-start;flex-direction:column;gap:8px}}@media (prefers-color-scheme:dark){.model-placeholders{background:#2d3748;border-color:#4a5568}.model-section{background:#1a202c;border-left-color:#63b3ed}.section-header{border-bottom-color:#4a5568}.section-header h4{color:#e2e8f0}.model-description{background:#2a4365;border-left-color:#63b3ed}.model-description p{color:#90cdf4}.additional-info,.card-identity,.editable-text,.extracted-text,.market-value,.prediction-item,.similar-cards,.text-regions{background:#2d3748;border-color:#4a5568}.region-item,.similar-item,.text-line{background:#1a202c}.text-editor{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.value-disclaimer{background:#744210;border-color:#d69e2e;color:#faf089}}.placeholders-content::-webkit-scrollbar{width:8px}.placeholders-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.placeholders-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.placeholders-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.rotation-controls{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px}.controls-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;padding-bottom:15px}.controls-header h4{color:#333;font-size:1.3rem;font-weight:600;margin:0}.rotation-display{align-items:flex-end;display:flex;flex-direction:column;gap:4px}.rotation-value{color:#007bff;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:1.5rem;font-weight:700}.rotation-description{color:#6c757d;font-size:.85rem;font-style:italic}.controls-content{gap:25px}.controls-content,.slider-section{display:flex;flex-direction:column}.slider-section{gap:12px}.preset-label,.slider-label{color:#495057;font-size:1rem;font-weight:600;margin-bottom:8px}.slider-container{align-items:center;display:flex;gap:15px;margin-bottom:8px}.slider-max,.slider-min{color:#6c757d;font-size:.9rem;font-weight:500;min-width:30px;text-align:center}.rotation-slider{-webkit-appearance:none;appearance:none;background:#e9ecef;border-radius:4px;cursor:pointer;flex:1 1;height:8px;outline:none}.rotation-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#007bff,#0056b3);border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;-webkit-transition:all .2s ease;transition:all .2s ease;width:20px}.rotation-slider::-webkit-slider-thumb:hover{box-shadow:0 3px 6px #0000004d;transform:scale(1.1)}.rotation-slider::-moz-range-thumb{background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:pointer;height:20px;width:20px}.rotation-slider:disabled{cursor:not-allowed;opacity:.5}.slider-markers{height:20px;margin-top:5px;position:relative}.marker{color:#6c757d;font-size:.75rem;position:absolute;top:0;transform:translateX(-50%)}.preset-section{display:flex;flex-direction:column;gap:12px}.preset-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.preset-btn{align-items:center;background:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;color:#495057;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;font-weight:600;gap:8px;padding:15px 10px;transition:all .3s ease}.preset-btn:hover:not(:disabled){background:#e9ecef;border-color:#007bff;box-shadow:0 4px 8px #0000001a;color:#007bff;transform:translateY(-2px)}.preset-btn:active:not(:disabled){transform:translateY(0)}.preset-btn:disabled{cursor:not-allowed;opacity:.5}.rotate-icon{fill:currentColor;height:24px;width:24px}.preset-btn.rotate-left:hover:not(:disabled){border-color:#28a745;color:#28a745}.preset-btn.rotate-180:hover:not(:disabled){border-color:#ffc107;color:#856404}.preset-btn.rotate-right:hover:not(:disabled){border-color:#dc3545;color:#dc3545}.action-section{display:flex;flex-direction:column;gap:12px}.action-buttons{grid-gap:12px;display:grid;grid-template-columns:1fr 2fr}.action-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;justify-content:center;padding:12px 20px;transition:all .3s ease}.reset-btn{background:#6c757d;color:#fff}.reset-btn:hover:not(:disabled){background:#5a6268;box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.apply-btn{background:linear-gradient(135deg,#28a745,#20c997);color:#fff}.apply-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1ea080);box-shadow:0 3px 6px #0003;transform:translateY(-1px)}.action-btn:disabled{cursor:not-allowed;opacity:.5}.action-icon{fill:currentColor;height:18px;width:18px}.spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.tips-section{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:8px;padding:15px}.tips-content h5{color:#1565c0;font-size:1rem;font-weight:600;margin:0 0 10px}.tips-content ul{color:#1565c0;margin:0;padding-left:20px}.tips-content li{font-size:.9rem;line-height:1.4;margin-bottom:4px}@media (max-width:768px){.rotation-controls{padding:16px}.controls-header{flex-direction:column;gap:10px}.controls-header,.rotation-display{align-items:flex-start}.preset-buttons{gap:8px;grid-template-columns:1fr}.preset-btn{flex-direction:row;justify-content:center;padding:12px 15px}.action-buttons{grid-template-columns:1fr}.slider-container{gap:10px}.controls-header h4{font-size:1.2rem}.rotation-value{font-size:1.3rem}}@media (prefers-color-scheme:dark){.rotation-controls{background:#2d3748;border-color:#4a5568;color:#e2e8f0}.controls-header{border-bottom-color:#4a5568}.controls-header h4{color:#e2e8f0}.rotation-value{color:#63b3ed}.rotation-description{color:#a0aec0}.preset-label,.slider-label{color:#cbd5e0}.slider-max,.slider-min{color:#a0aec0}.rotation-slider{background:#4a5568}.marker{color:#a0aec0}.preset-btn{background:#1a202c;border-color:#4a5568;color:#cbd5e0}.preset-btn:hover:not(:disabled){background:#2d3748}.reset-btn{background:#4a5568}.reset-btn:hover:not(:disabled){background:#2d3748}.tips-section{background:#2a4365;border-left-color:#63b3ed}.tips-content h5,.tips-content ul{color:#90cdf4}}.dimension-controls{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:12px;padding:20px}.controls-header{margin-bottom:20px;text-align:center}.controls-header h3{color:#333;font-size:1.2rem;font-weight:600;margin:0 0 8px}.controls-description{color:#666;font-size:.9rem;line-height:1.4;margin:0}.current-info{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px;padding:15px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{color:#666;font-size:.8rem;font-weight:500}.info-value{color:#333;font-size:.9rem;font-weight:600}.step-size-control{align-items:center;display:flex;gap:10px;justify-content:center;margin-bottom:20px}.step-size-control label{color:#555;font-size:.9rem;font-weight:500}.step-size-select{background:#fff;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;font-size:.9rem;padding:6px 12px}.step-size-select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff40;outline:none}.dimension-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.control-section{align-items:center;display:flex;justify-content:center}.control-group{gap:15px}.control-group,.side-controls{align-items:center;display:flex}.side-controls{flex-direction:column;gap:8px}.left-controls,.right-controls{flex-direction:row}.middle-section{justify-content:space-between;padding:0 20px}.card-preview-area{flex:1 1;margin:0 20px}.card-preview-area,.preview-box{align-items:center;display:flex;justify-content:center}.preview-box{background:#007bff0d;border:2px dashed #007bff;border-radius:8px;flex-direction:column;height:80px;position:relative;width:120px}.preview-label{color:#007bff;font-size:.7rem;font-weight:500;margin-bottom:4px;text-align:center}.current-dimensions{color:#007bff;font-size:.8rem;font-weight:600}.dimension-btn{align-items:center;background:#fff;border:1px solid #ddd;border-radius:6px;color:#495057;cursor:pointer;display:flex;font-size:1.1rem;font-weight:600;height:36px;justify-content:center;transition:all .2s ease;-webkit-user-select:none;user-select:none;width:36px}.dimension-btn:hover:not(:disabled){background:#e9ecef;border-color:#007bff;box-shadow:0 2px 4px #0000001a;color:#007bff;transform:translateY(-1px)}.dimension-btn:active:not(:disabled){box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.dimension-btn:disabled{background:#f8f9fa;cursor:not-allowed;opacity:.5}.corner-btn{background:linear-gradient(135deg,#28a745,#20c997);border-color:#0000;color:#fff;font-size:1rem}.corner-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838,#1ea080);border-color:#0000;color:#fff}.side-btn{font-size:1rem;height:32px;width:32px}.adjustment-value{background:#fff;border:1px solid #e0e0e0;border-radius:4px;color:#495057;font-size:.8rem;font-weight:600;min-width:50px;padding:4px 8px;text-align:center}.action-buttons{display:flex;gap:12px;justify-content:center;margin-bottom:20px}.re-extract-btn,.reset-btn{border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.reset-btn{background:#fff;color:#6c757d}.reset-btn:hover:not(:disabled){background:#e9ecef;border-color:#6c757d;color:#495057}.re-extract-btn{background:linear-gradient(135deg,#007bff,#0056b3);border-color:#0000;color:#fff}.re-extract-btn:hover:not(:disabled){background:linear-gradient(135deg,#0056b3,#004085);box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.re-extract-btn:disabled,.reset-btn:disabled{box-shadow:none;cursor:not-allowed;opacity:.5;transform:none}.adjustment-summary{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:15px}.adjustment-summary h4{color:#333;font-size:1rem;font-weight:600;margin:0 0 10px}.adjustment-summary ul{list-style-type:disc;margin:0 0 10px;padding-left:20px}.adjustment-summary li{color:#495057;font-size:.9rem;margin-bottom:4px}.new-dimensions{background:#007bff1a;border-radius:4px;color:#007bff;font-size:.9rem;font-weight:600;margin:0;padding:8px;text-align:center}@media (max-width:768px){.dimension-controls{padding:15px}.current-info{flex-direction:column;gap:10px}.info-item{align-items:center;flex-direction:row;justify-content:space-between}.middle-section{flex-direction:column;gap:15px;padding:0}.card-preview-area{margin:0}.preview-box{height:60px;width:100px}.dimension-btn{font-size:1rem;height:32px;width:32px}.corner-btn,.side-btn{font-size:.9rem}.side-btn{height:28px;width:28px}.action-buttons{align-items:stretch;flex-direction:column}.re-extract-btn,.reset-btn{padding:12px 16px}}@media (max-width:480px){.dimension-controls{padding:12px}.controls-header h3{font-size:1.1rem}.controls-description{font-size:.8rem}.control-group{gap:10px}.side-controls{gap:6px}.dimension-btn{font-size:.9rem;height:28px;width:28px}.side-btn{font-size:.8rem;height:24px;width:24px}.adjustment-value{font-size:.7rem;min-width:40px;padding:2px 4px}.preview-box{height:50px;width:80px}.preview-label{font-size:.6rem}.current-dimensions{font-size:.7rem}}@media (prefers-color-scheme:dark){.dimension-controls{background:#2d3748;border-color:#4a5568}.controls-header h3{color:#e2e8f0}.controls-description{color:#a0aec0}.adjustment-summary,.current-info{background:#1a202c;border-color:#4a5568}.info-label{color:#a0aec0}.info-value{color:#e2e8f0}.step-size-control label{color:#cbd5e0}.step-size-select{color:#e2e8f0}.dimension-btn,.step-size-select{background:#2d3748;border-color:#4a5568}.dimension-btn{color:#cbd5e0}.dimension-btn:hover:not(:disabled){background:#4a5568;border-color:#63b3ed;color:#63b3ed}.adjustment-value{color:#cbd5e0}.adjustment-value,.reset-btn{background:#2d3748;border-color:#4a5568}.reset-btn{color:#a0aec0}.reset-btn:hover:not(:disabled){background:#4a5568;border-color:#a0aec0;color:#cbd5e0}.adjustment-summary h4{color:#e2e8f0}.adjustment-summary li{color:#cbd5e0}.new-dimensions{background:#63b3ed33;color:#63b3ed}}.card-details-view{background:#f8f9fa;display:flex;flex-direction:column;min-height:100vh}.details-header{background:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000001a;gap:20px;padding:20px}.back-btn,.details-header{align-items:center;display:flex}.back-btn{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;gap:8px;padding:10px 16px;transition:all .3s ease}.back-btn:hover{background:#5a6268;box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.details-header h2{color:#333;font-size:1.8rem;font-weight:700;margin:0}.details-content{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:1fr 400px;min-height:0;padding:20px}.image-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;overflow:hidden}.image-viewer-container{display:flex;flex-direction:column;height:100%}.viewer-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:20px}.viewer-header,.viewer-info{align-items:center;display:flex}.viewer-info{gap:15px}.viewer-info h3{color:#333;font-size:1.3rem;font-weight:600;margin:0}.confidence-badge{border-radius:20px;box-shadow:0 2px 4px #0003;color:#fff;font-size:.9rem;font-weight:600;padding:6px 12px}.viewer-controls{align-items:center;display:flex;gap:15px}.zoom-controls{background:#fff;border:1px solid #dee2e6;border-radius:8px;gap:8px;padding:4px}.zoom-btn{background:#0000;border-radius:4px;color:#495057;font-size:1.1rem;font-weight:600;height:32px;transition:all .2s ease;width:32px}.zoom-btn:hover:not(:disabled){background:#e9ecef;color:#007bff}.zoom-btn:disabled{opacity:.5}.zoom-level{color:#495057;font-size:.9rem}.download-btn,.reset-view-btn{background:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;font-weight:500;padding:8px 16px;transition:all .3s ease}.download-btn:hover,.reset-view-btn:hover{background:#e9ecef;border-color:#007bff;color:#007bff}.download-btn{background:linear-gradient(135deg,#28a745,#20c997);border-color:#0000}.download-btn:hover{background:linear-gradient(135deg,#218838,#1ea080);color:#fff}.canvas-container{align-items:center;background:#f8f9fa;display:flex;flex:1 1;justify-content:center;min-height:400px;overflow:hidden;position:relative;touch-action:pan-x pan-y}.canvas-wrapper{transform-origin:center center;transition:transform .1s ease-out}.card-canvas{border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:100%;max-width:100%}.viewer-footer{background:#f8f9fa;border-top:1px solid #e0e0e0;padding:15px 20px}.navigation-controls{display:flex;gap:12px;justify-content:center}.nav-btn{background:#007bff;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .3s ease}.nav-btn:hover:not(:disabled){background:#0056b3;box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.nav-btn:disabled{cursor:not-allowed;opacity:.5}.info-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;overflow:hidden}.tab-navigation{background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex}.tab-btn{background:#0000;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;flex:1 1;font-weight:600;padding:15px 20px;transition:all .3s ease}.tab-btn:hover{background:#e9ecef;color:#495057}.tab-btn.active{background:#fff;border-bottom-color:#007bff;color:#007bff}.tab-content-container{flex:1 1;overflow-y:auto;padding:0}.tab-content{height:100%}@media (max-width:1200px){.details-content{grid-template-columns:1fr 350px}}@media (max-width:968px){.details-content{gap:15px;grid-template-columns:1fr}.info-section{min-height:200px}.viewer-header{align-items:flex-start;flex-direction:column;gap:15px}.viewer-controls{flex-wrap:wrap;justify-content:space-between;width:100%}.canvas-container{min-height:250px}}@media (max-width:768px){.details-header{flex-wrap:wrap;gap:8px;padding:8px 12px}.details-header h2{font-size:1.2rem}.back-btn{font-size:.8rem;padding:6px 10px}.details-content{gap:8px;padding:8px}.info-section{min-height:150px}.viewer-header{gap:8px;padding:8px}.viewer-info{flex-wrap:wrap;gap:6px}.viewer-info h3{font-size:.9rem}.confidence-badge{font-size:.7rem;padding:3px 6px}.viewer-controls{align-items:stretch;flex-direction:column;gap:6px}.zoom-controls{align-self:center;gap:3px;padding:2px}.zoom-btn{font-size:.9rem;height:24px;width:24px}.zoom-level{font-size:.7rem;min-width:40px}.download-btn,.reset-view-btn{font-size:.7rem;padding:4px 8px}.tab-btn{font-size:.75rem;padding:8px 10px}.canvas-container{min-height:180px}.viewer-footer{padding:6px 8px}.nav-btn{font-size:.8rem;padding:6px 12px}}@media (max-width:480px){.details-header{min-height:50px;padding:6px 8px}.details-header h2{font-size:1rem}.back-btn{font-size:.75rem;padding:4px 8px}.details-content{gap:6px;padding:6px}.info-section{min-height:120px}.viewer-header{gap:6px;padding:6px}.viewer-info h3{font-size:.8rem}.confidence-badge{font-size:.65rem;padding:2px 4px}.viewer-controls{align-items:stretch;flex-direction:column;gap:4px}.zoom-controls{align-self:center;gap:2px;padding:1px}.zoom-btn{font-size:.8rem;height:22px;width:22px}.zoom-level{font-size:.65rem;min-width:35px}.download-btn,.reset-view-btn{font-size:.65rem;padding:3px 6px}.tab-btn{font-size:.7rem;padding:6px 8px}.canvas-container{min-height:120px}.viewer-footer{padding:4px 6px}.nav-btn{font-size:.7rem;padding:4px 8px}.navigation-controls{gap:6px}}@media (max-width:360px){.details-header{min-height:45px;padding:4px 6px}.details-header h2{font-size:.9rem}.back-btn{font-size:.7rem;padding:3px 6px}.details-content,.viewer-header{gap:4px;padding:4px}.viewer-info h3{font-size:.75rem}.confidence-badge{font-size:.6rem;padding:1px 3px}.zoom-btn{font-size:.75rem;height:20px;width:20px}.zoom-level{font-size:.6rem;min-width:30px}.download-btn,.reset-view-btn{font-size:.6rem;padding:2px 4px}.tab-btn{font-size:.65rem;padding:4px 6px}.canvas-container{min-height:100px}.nav-btn{font-size:.65rem;padding:3px 6px}}@media (prefers-color-scheme:dark){.card-details-view{background:#1a202c}.details-header{background:#2d3748;border-bottom-color:#4a5568}.details-header h2{color:#e2e8f0}.image-section,.info-section{background:#2d3748;border-color:#4a5568}.viewer-footer,.viewer-header{background:#1a202c;border-color:#4a5568}.viewer-info h3{color:#e2e8f0}.reset-view-btn,.zoom-controls{background:#2d3748;border-color:#4a5568;color:#cbd5e0}.reset-view-btn:hover,.zoom-btn:hover:not(:disabled){background:#4a5568;color:#63b3ed}.zoom-level{color:#cbd5e0}.canvas-container,.tab-navigation{background:#1a202c}.tab-navigation{border-bottom-color:#4a5568}.tab-btn{color:#a0aec0}.tab-btn:hover{background:#2d3748;color:#cbd5e0}.tab-btn.active{background:#2d3748;border-bottom-color:#63b3ed;color:#63b3ed}}.tab-content-container::-webkit-scrollbar{width:8px}.tab-content-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.tab-content-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.tab-content-container::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.card-extraction-view{background:#1a1a1a;color:#fff;display:flex;flex-direction:column;height:100vh}.extraction-header{align-items:center;background:#2a2a2a;border-bottom:1px solid #444;display:flex;gap:16px;justify-content:space-between;padding:16px 20px}.back-btn,.download-all-btn{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.back-btn:hover,.download-all-btn:hover{background:#0056b3}.extraction-title h2{font-size:18px;font-weight:600;margin:0}.threshold-controls{align-items:center;display:flex;flex-direction:column;gap:8px;min-width:120px}.threshold-label{color:#ccc;font-size:12px;font-weight:500}.threshold-slider{-webkit-appearance:none;appearance:none;background:#444;border-radius:2px;height:4px;outline:none;width:100%}.threshold-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#007bff;border-radius:50%;cursor:pointer;height:16px;-webkit-transition:background-color .2s;transition:background-color .2s;width:16px}.threshold-slider::-webkit-slider-thumb:hover{background:#0056b3}.threshold-slider::-moz-range-thumb{background:#007bff;border:none;border-radius:50%;cursor:pointer;height:16px;-moz-transition:background-color .2s;transition:background-color .2s;width:16px}.threshold-slider::-moz-range-thumb:hover{background:#0056b3}.extraction-content{flex:1 1;overflow:auto;padding:20px}.card-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:0 auto;max-width:1200px}.no-cards-message{color:#ccc;margin:0 auto;max-width:400px;padding:60px 20px;text-align:center}.no-cards-message p{line-height:1.5;margin:0 0 12px}.no-cards-message p:first-child{color:#fff;font-size:18px;font-weight:600}.no-cards-message p:last-child{font-size:14px}.card-item{background:#2a2a2a;border:2px solid #0000;border-radius:8px;cursor:pointer;overflow:hidden;transition:transform .2s,box-shadow .2s}.card-item:hover{box-shadow:0 4px 12px #007bff4d;transform:translateY(-2px)}.card-item.selected{border-color:#007bff;box-shadow:0 0 0 2px #007bff4d}.card-preview{aspect-ratio:3/4;overflow:hidden;position:relative}.card-canvas{display:block;height:100%;object-fit:cover;width:100%}.card-overlay{background:linear-gradient(180deg,#000000b3 0,#0000 30%,#0000 70%,#000000b3);bottom:0;display:flex;flex-direction:column;justify-content:space-between;left:0;opacity:0;padding:8px;position:absolute;right:0;top:0;transition:opacity .2s}.card-item:hover .card-overlay{opacity:1}.card-info{display:flex;flex-direction:column;gap:4px}.card-confidence{align-self:flex-start;background:#0f0c;border-radius:4px;color:#000;font-size:12px;font-weight:700;padding:2px 6px}.card-dimensions{color:#ccc;font-size:11px}.download-card-btn{align-items:center;align-self:flex-end;background:#007bffe6;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:background-color .2s;width:32px}.download-card-btn:hover{background:#007bff}.card-detail-view{display:flex;flex-direction:column;height:100%}.detail-header{align-items:center;border-bottom:1px solid #444;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.back-to-grid-btn{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.back-to-grid-btn:hover{background:#545b62}.detail-info{color:#ccc;display:flex;font-size:14px;gap:20px}.detail-canvas-container{align-items:center;background:#333;border-radius:8px;display:flex;flex:1 1;justify-content:center;margin-bottom:20px;overflow:auto;position:relative}.detail-canvas-wrapper{transform-origin:center;transition:transform .2s ease}.detail-canvas{border-radius:4px;box-shadow:0 4px 12px #00000080;display:block;max-height:100%;max-width:100%}.detail-controls{align-items:center;background:#2a2a2a;border-radius:8px;display:flex;justify-content:space-between;padding:16px}.zoom-controls{gap:12px}.zoom-btn,.zoom-controls{align-items:center;display:flex}.zoom-btn{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:18px;font-weight:700;height:36px;justify-content:center;transition:background-color .2s;width:36px}.zoom-btn:hover:not(:disabled){background:#0056b3}.zoom-btn:disabled{background:#6c757d;cursor:not-allowed}.zoom-level{color:#ccc;font-weight:600;min-width:50px;text-align:center}.download-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:background-color .2s}.download-btn:hover{background:#1e7e34}@media (max-width:768px){.extraction-header{flex-wrap:wrap;gap:8px;padding:max(12px,env(safe-area-inset-top)) 16px 12px}.extraction-title h2{font-size:16px;min-width:0}.back-btn,.download-all-btn{flex-shrink:0;font-size:13px;padding:6px 12px}.threshold-controls{flex-shrink:1;min-width:100px}.threshold-label{font-size:11px}.extraction-content{padding:16px}.card-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.detail-controls{align-items:stretch;flex-direction:column;gap:16px}.zoom-controls{justify-content:center}}@media (max-width:600px){.extraction-header{align-items:stretch;flex-direction:column;gap:10px}.extraction-title{order:1;text-align:center}.back-btn{align-self:flex-start;order:0}.threshold-controls{align-self:center;min-width:150px;order:2}.download-all-btn{align-self:flex-end;order:3}}@media (max-width:480px){.card-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.extraction-header{gap:8px;padding:10px 12px}.back-btn,.download-all-btn{font-size:12px;padding:5px 10px}.extraction-title h2{font-size:14px}.threshold-controls{min-width:140px}.threshold-label{font-size:10px}}.App{background:#000;height:100vh;margin:0;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);width:100vw}