body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.camera-page{align-items:center;background-color:#000;display:flex;justify-content:center;min-height:100vh}.camera-container{margin:0 auto;max-width:500px;width:100%}.camera-header{color:#fff;padding:20px;text-align:center}.camera-header h2{font-size:24px;margin-bottom:8px}.camera-header p{color:#aaa;font-size:14px}.camera-view{aspect-ratio:3/4;border-radius:20px;margin:0 auto;max-width:400px;overflow:hidden;position:relative;width:100%}.webcam{height:100%;object-fit:cover;width:100%}.face-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0}.face-guide{animation:pulse 2s ease-in-out infinite;height:80%;opacity:.7;width:80%}@keyframes pulse{0%,to{opacity:.5}50%{opacity:.8}}.camera-controls{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:400px;padding:30px 40px}.placeholder,.switch-camera-btn{align-items:center;background-color:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:50px;justify-content:center;transition:background-color .3s;width:50px}.switch-camera-btn:hover{background-color:#ffffff4d}.placeholder{background-color:initial}.capture-btn{align-items:center;background-color:#fff;border:4px solid #ffffff4d;border-radius:50%;cursor:pointer;display:flex;height:70px;justify-content:center;padding:4px;transition:transform .2s;width:70px}.capture-btn:hover{transform:scale(1.05)}.capture-btn:active{transform:scale(.95)}.capture-btn-inner{background-color:#fff;border-radius:50%;height:100%;width:100%}.camera-tips{color:#fff;margin:0 auto;max-width:400px;padding:20px;text-align:center}.camera-tips p{font-weight:600;margin-bottom:10px}.camera-tips ul{color:#aaa;font-size:14px;list-style:none}.camera-tips li{margin:5px 0}.upload-section{margin-bottom:30px;padding:0 20px}.file-upload-area{background:#f8f9ff;border:3px dashed #667eea;border-radius:15px;cursor:pointer;margin-bottom:20px;padding:40px 20px;text-align:center;transition:all .3s ease}.file-upload-area:hover{background:#f0f4ff;border-color:#764ba2;transform:translateY(-2px)}.upload-icon{color:#667eea;display:block;font-size:3rem;margin-bottom:15px}.upload-text{color:#333;font-size:1.1rem;font-weight:500;margin-bottom:8px}.upload-hint{color:#888;font-size:.9rem}.image-preview-section{margin-top:20px;text-align:center}.preview-image{border-radius:15px;box-shadow:0 10px 25px #0000001a;margin-bottom:20px;max-height:300px;max-width:300px;object-fit:cover}.preview-actions{display:flex;flex-wrap:wrap;gap:15px;justify-content:center}.analyze-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 25px;transition:all .3s ease}.analyze-btn:hover{box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.clear-btn{background:#ddd;border:none;border-radius:25px;color:#666;cursor:pointer;font-size:1rem;padding:12px 25px;transition:all .3s ease}.clear-btn:hover{background:#ccc;color:#555}.camera-section{margin-bottom:30px}@media (max-width:768px){.camera-view{max-width:90%}.camera-controls{padding:20px}}img{height:auto;max-width:100%}.scanning-page{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh;padding:20px}.scanning-container{max-width:500px;text-align:center;width:100%}.scanning-container h2{color:#333;font-size:24px;margin-bottom:30px}.scanning-image-container{border-radius:20px;box-shadow:0 10px 40px #0000001a;margin:0 auto 30px;max-width:400px;overflow:hidden;position:relative;width:100%}.captured-image{background-color:#000;display:block;height:auto;object-fit:contain;width:100%}.scanning-overlay{background:linear-gradient(180deg,#0000004d,#0000001a);bottom:0;left:0;position:absolute;right:0;top:0}.scanning-points{height:80%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80%}.scan-dot{fill:#4caf50;animation:dotPulse 1.5s ease-in-out infinite;filter:drop-shadow(0 0 4px #4CAF50)}.scan-line{stroke:#4caf50;stroke-width:1;stroke-dasharray:5,5;animation:linePulse 2s ease-in-out infinite;opacity:.6}@keyframes dotPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes linePulse{0%,to{opacity:.3}50%{opacity:.8}}.scan-beam{background:linear-gradient(90deg,#0000,#4caf50 50%,#0000);box-shadow:0 0 20px #4caf50;height:3px;left:0;position:absolute;right:0;transition:top .03s linear}.scanning-status{margin:30px 0}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#4caf50;height:40px;margin:0 auto 15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.scanning-status p{color:#333;font-size:14px;font-weight:600;letter-spacing:1px;margin-bottom:8px}.est-time{color:#999;font-size:12px}.scanning-progress{margin-top:20px}.progress-bar{background-color:#e0e0e0;border-radius:2px;height:4px;overflow:hidden;width:100%}.progress-fill{animation:progressFill 2s ease-in-out infinite;background:linear-gradient(90deg,#4caf50,#8bc34a);height:100%}@keyframes progressFill{0%{width:0}50%{width:70%}to{width:100%}}@media (max-width:768px){.scanning-page{padding:10px}.scanning-container{max-width:100%;padding:0 10px}.scanning-image-container{aspect-ratio:unset!important;display:block;height:auto!important;max-width:95%;width:95%}.captured-image{height:auto!important;max-height:75vh;object-fit:contain!important;width:100%}.scanning-overlay{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.scanning-container h2{font-size:20px;margin-bottom:20px}}@media (max-width:480px){.scanning-image-container{max-width:95%;width:95%}}.results-page{background-color:#f5f5f5;min-height:100vh;padding:40px 20px}@media (max-width:768px){.results-page{padding:20px 10px}}.results-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin:0 auto;max-width:1400px}.results-grid-simple{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 2fr;margin:0 auto;max-width:1200px}.result-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:20px}.image-column{align-items:center;justify-content:center}.description-column,.image-column{display:flex;flex-direction:column}.description-column{max-height:85vh;overflow-x:hidden;overflow-y:auto}.device-label{color:#999;font-size:12px;margin-bottom:15px;text-align:center}.result-image-container{aspect-ratio:3/4;border-radius:12px;margin-bottom:15px;overflow:hidden;position:relative;width:100%}.result-image{height:100%;object-fit:cover;width:100%}.face-outline{border:2px dashed #fffc;border-radius:50%;height:80%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:70%}.scanning-dots-overlay{bottom:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr);left:0;padding:20%;position:absolute;right:0;top:0}.analysis-dot{animation:dotBlink 1.5s ease-in-out infinite;background-color:#4caf50;border-radius:50%;box-shadow:0 0 10px #4caf50;height:8px;margin:auto;width:8px}.analysis-dot:nth-child(2n){animation-delay:.3s}@keyframes dotBlink{0%,to{opacity:.3}50%{opacity:1}}.retake-btn-small{background-color:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px;transition:background-color .3s;width:100%}.retake-btn-small:hover{background-color:#555}.scanning-text{color:#333;font-size:12px;font-weight:600;margin-top:10px;text-align:center}.time-text{color:#999;font-size:11px;margin-top:5px;text-align:center}.validation-message{background-color:#fff3f3;border:1px solid #ffcdd2;border-radius:8px;margin-top:10px;padding:15px;text-align:center}.error-icon{display:block;font-size:24px;margin-bottom:10px}.validation-message p{color:#d32f2f;font-size:12px;margin:5px 0}.results-detail{grid-column:span 1}.result-image-small-container{border-radius:12px;box-shadow:0 4px 12px #0000001a;height:150px;margin:0 auto 20px;overflow:hidden;width:120px}.result-image-small{height:100%;object-fit:cover;width:100%}.issues-summary{margin-bottom:25px;text-align:center}.issues-percentage{align-items:baseline;display:flex;gap:8px;justify-content:center;margin-bottom:5px}.percentage-number{color:#333;font-size:48px;font-weight:700}.issues-label{color:#666;font-size:18px}.issues-subtitle{color:#999;font-size:14px}.issues-list{margin-bottom:25px;max-height:none;overflow-y:visible}.issue-category{margin-bottom:20px}.issue-category h4{color:#333;font-size:14px;font-weight:600;margin-bottom:10px}.issue-category ul{list-style:none;padding-left:0}.issue-category li{color:#666;font-size:12px;line-height:1.5;margin:6px 0;padding-left:12px;position:relative}.issue-category li:before{color:#4caf50;content:"•";left:0;position:absolute}.recommended-products{border-top:1px solid #eee;padding-top:5px}.recommended-products h3{color:#333;font-size:16px;margin-bottom:15px}.products-row{display:flex;gap:12px;justify-content:center;margin-bottom:15px}.product-mini{flex:1 1;max-width:80px;text-align:center}.product-placeholder{align-items:center;aspect-ratio:3/4;background-color:#f5f5f5;border-radius:8px;display:flex;justify-content:center;margin-bottom:8px;overflow:hidden;width:100%}.product-placeholder img{height:100%;object-fit:cover;width:100%}.product-icon{font-size:28px}.product-mini-name{color:#666;font-size:11px;margin:0}.add-to-cart-btn{background-color:#333;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px;transition:background-color .3s;width:100%}.add-to-cart-btn:hover{background-color:#000}@media (max-width:1200px){.results-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.results-grid{grid-template-columns:1fr}.results-page{padding:20px 10px}.percentage-number{font-size:36px}.issues-label{font-size:16px}}.analysis-intro{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-left:5px solid #667eea;border-radius:15px;box-shadow:0 5px 15px #667eea1a;margin-bottom:30px;padding:25px}.analysis-intro h4{align-items:center;color:#333;display:flex;font-size:1.3rem;font-weight:600;gap:10px;margin-bottom:15px}.analysis-intro p{color:#555;font-size:1rem;line-height:1.6}.products-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:30px}.product-card{background:#fff;border:1px solid #f0f0f0;border-radius:15px;box-shadow:0 8px 25px #0000001a;overflow:hidden;padding:25px;position:relative;transition:all .3s ease}.product-card:before{background:linear-gradient(135deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0}.product-card:hover{box-shadow:0 15px 35px #667eea33;transform:translateY(-5px)}.product-image{border-radius:10px;height:200px;margin-bottom:15px;object-fit:cover;width:100%}.product-name{color:#333;font-size:1.2rem;font-weight:600;line-height:1.4;margin-bottom:15px}.product-description{color:#666;font-size:.95rem;line-height:1.6;margin-bottom:15px}.product-match{background:#e8f5e8;border-left:3px solid #4caf50;border-radius:8px;color:#2d5f2d;font-size:.9rem;margin-bottom:20px;padding:10px}.product-price{color:#667eea;font-size:1.1rem;font-weight:600;margin-bottom:15px}.product-link{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:25px;color:#fff;display:inline-flex;font-size:.9rem;font-weight:500;gap:8px;justify-content:center;padding:12px 20px;text-decoration:none;transition:all .3s ease;width:100%}.product-link:hover{box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.disclaimer{background:#fff8e1;border:1px solid #ffc107;border-radius:15px;color:#8a6d00;margin-top:30px;padding:20px}.disclaimer h4{align-items:center;display:flex;font-size:1.1rem;font-weight:600;gap:8px;margin-bottom:10px}.disclaimer p{font-size:.9rem;line-height:1.5}.no-products{color:#666;font-style:italic;padding:40px;text-align:center}.detailed-analysis{background:#f8f9fa;border-radius:15px;box-sizing:border-box!important;display:block!important;margin-top:20px;max-height:240px;overflow-y:auto;padding:20px;position:relative!important;visibility:visible!important;width:100%!important;z-index:1!important}.detailed-analysis h3{border-bottom:2px solid #e9ecef;color:#2c3e50;font-size:1.2rem;margin-bottom:20px;padding-bottom:10px;text-align:center}.analysis-area{background:#fff;border-left:4px solid #667eea;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:15px;padding:15px}.area-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.area-name{color:#2c3e50;font-size:1rem;font-weight:600;margin:0;text-transform:capitalize}.area-rating{align-items:baseline;display:flex;gap:2px}.rating-number{color:#667eea;font-size:1.2rem;font-weight:700}.rating-label{color:#6c757d;font-size:.9rem}.area-assessment{color:#495057;font-size:.9rem;font-style:italic;line-height:1.5;margin:0}@media (max-width:768px){.detailed-analysis{padding:15px}.area-header{align-items:flex-start;flex-direction:column;gap:5px}.area-name{font-size:.9rem}.area-assessment{font-size:.85rem}}.retake-section{border-top:2px solid #e9ecef;margin-top:30px;padding-top:20px;text-align:center}.retake-btn-large{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:15px 30px;transition:all .3s ease}.retake-btn-large:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.retake-btn-large:active{transform:translateY(0)}.products-carousel{margin:20px 0;overflow:hidden;position:relative}.products-carousel-container{display:flex;transition:transform .5s ease;width:100%}.product-card-carousel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;flex-shrink:0;min-width:100%;padding:15px;width:100%}.carousel-controls{display:flex;gap:10px;justify-content:center;margin-top:15px}.carousel-btn{background:#667eea;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:all .3s ease}.carousel-btn:hover{background:#5a6fd8;transform:translateY(-1px)}.carousel-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}.carousel-dots{display:flex;gap:8px;justify-content:center;margin-top:10px}.carousel-dot{background:#ddd;border-radius:50%;cursor:pointer;height:8px;transition:background .3s ease;width:8px}.carousel-dot.active{background:#667eea}@media (max-width:768px){.products-grid{display:none}.products-carousel{display:block}.product-card-carousel{min-width:100%;width:100%}}@media (min-width:769px){.products-carousel{display:none}.products-grid{display:grid}}@media (max-width:768px){.results-grid-simple{gap:20px;grid-template-columns:1fr;padding:10px}.image-column{order:1;padding:10px;width:100%}.description-column{max-height:none;order:2;overflow-y:visible;padding:10px;width:100%}.result-card{margin:0;padding:15px}.issues-summary{margin-bottom:20px;text-align:center}.detailed-analysis{margin-top:15px;padding:15px}.analysis-area{margin-bottom:12px;padding:12px}.area-header{align-items:flex-start;flex-direction:column;gap:5px}.area-name{font-size:.9rem}.area-assessment{font-size:.85rem}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App,body{background-color:#f5f5f5}.App{min-height:100vh}.backend-status{border-radius:20px;box-shadow:0 2px 8px #0000001a;font-size:12px;font-weight:500;padding:8px 16px;position:fixed;right:20px;top:20px;z-index:1000}.backend-status.checking{background-color:#ffa726;color:#fff}.backend-status.connected{background-color:#4caf50;color:#fff}.backend-status.disconnected,.error-message{background-color:#f44336;color:#fff}.error-message{border-radius:8px;box-shadow:0 4px 12px #00000026;left:50%;padding:15px 25px;position:fixed;text-align:center;top:20px;transform:translateX(-50%);z-index:1000}
/*# sourceMappingURL=main.01d3d528.css.map*/