.App{min-height:100vh;display:flex;flex-direction:column;background-color:#f5f5f5}.App-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem 1rem;text-align:center;box-shadow:0 4px 6px #0000001a}.App-header h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.subtitle{font-size:1.125rem;margin-bottom:1.5rem;opacity:.95}.App-main{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:2rem 1rem}.upload-section{text-align:center;margin:3rem 0}.upload-section h2{font-size:1.75rem;color:#333;margin-bottom:2rem}.error-section{max-width:600px;margin:3rem auto;padding:3rem 2rem;background-color:#fff;border:3px solid #dc3545;border-radius:12px;text-align:center;box-shadow:0 4px 12px #0000001a}.error-icon{font-size:4rem;margin-bottom:1rem}.error-section h2{font-size:1.75rem;color:#dc3545;margin-bottom:1rem}.error-message{font-size:1.125rem;color:#666;margin:1.5rem 0;line-height:1.6}.retry-button,.reset-button{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:.875rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:1rem}.retry-button:hover,.reset-button:hover{background-color:#0056b3;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.retry-button:focus,.reset-button:focus{outline:3px solid #007bff;outline-offset:2px}.retry-button:active,.reset-button:active{transform:translateY(0)}.reset-section{text-align:center;margin:2rem 0 3rem}.App-footer{background-color:#343a40;color:#f8f9fa;text-align:center;padding:1.5rem 1rem;margin-top:auto;border-top:4px solid #667eea}.App-footer p{margin:0;font-size:.875rem;line-height:1.6}@media (max-width: 768px){.App-header h1{font-size:2rem}.subtitle{font-size:1rem}.App-main{padding:1rem .5rem}.upload-section h2{font-size:1.5rem}}.disclaimer{background-color:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:1.25rem;margin:0 auto 2rem;max-width:900px;color:#856404;line-height:1.6}.disclaimer p{margin:0;font-size:1rem}.disclaimer strong{font-weight:700}.image-upload{width:100%;max-width:600px;margin:0 auto}.upload-area{border:3px dashed #ccc;border-radius:12px;padding:3rem 2rem;text-align:center;background-color:#f8f9fa;cursor:pointer;transition:all .3s ease}.upload-area:hover:not(.disabled){border-color:#007bff;background-color:#e7f3ff}.upload-area:focus{outline:3px solid #007bff;outline-offset:2px}.upload-area.dragging{border-color:#007bff;background-color:#cfe2ff}.upload-area.disabled{opacity:.6;cursor:not-allowed}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-text{font-size:1.25rem;color:#333;margin:.5rem 0}.upload-subtext{color:#666;margin:1rem 0}.upload-button{background-color:#007bff;color:#fff;border:none;border-radius:6px;padding:.75rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease;margin:1rem 0}.upload-button:hover:not(:disabled){background-color:#0056b3}.upload-button:focus{outline:3px solid #007bff;outline-offset:2px}.upload-button:disabled{background-color:#6c757d;cursor:not-allowed}.upload-hint{font-size:.875rem;color:#666;margin-top:1rem}.file-input{display:none}.progress-indicator{text-align:center;padding:3rem 2rem}.spinner{width:60px;height:60px;border:6px solid #f3f3f3;border-top:6px solid #007bff;border-radius:50%;margin:0 auto 1.5rem;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-message{font-size:1.25rem;color:#495057;font-weight:600}.analysis-display{max-width:1200px;margin:2rem auto;padding:2rem;background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.analysis-title{font-size:2rem;color:#333;margin-bottom:1.5rem;text-align:center;border-bottom:3px solid #007bff;padding-bottom:.5rem}.dimensions-info{background-color:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:2rem;text-align:center}.dimensions-info p{margin:.5rem 0;color:#666}.scores-section{margin-bottom:3rem}.scores-section h3{font-size:1.5rem;color:#333;margin-bottom:1rem;text-align:center}.scores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin:2rem 0}.score-card{background-color:#f8f9fa;border:2px solid #dee2e6;border-radius:12px;padding:1.5rem;text-align:center;transition:transform .2s ease}.score-card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000001a}.score-card h4{font-size:1.25rem;color:#495057;margin-bottom:1rem}.score-value{font-size:3rem;font-weight:700;margin:1rem 0}.score-guidance{font-size:1rem;color:#666;margin-top:.5rem;font-weight:600}.threshold-note{text-align:center;color:#666;font-size:.875rem;font-style:italic;margin-top:1rem}.images-section{margin-bottom:3rem}.images-section h3{font-size:1.5rem;color:#333;margin-bottom:1.5rem;text-align:center}.image-comparison{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin:2rem 0}.image-item{text-align:center}.image-item h4{font-size:1.125rem;color:#495057;margin-bottom:1rem}.comparison-image{width:100%;height:auto;border:2px solid #dee2e6;border-radius:8px;box-shadow:0 2px 6px #0000001a}.heatmaps-section{margin-top:3rem;padding-top:2rem;border-top:2px solid #dee2e6}.heatmaps-section h3{font-size:1.5rem;color:#333;margin-bottom:1.5rem;text-align:center}.heatmap-legend{background-color:#f8f9fa;padding:1.5rem;border-radius:8px;margin-bottom:2rem}.legend-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.legend-gradient{flex:1;height:30px;margin:0 1rem;background:linear-gradient(to right,#00f,#0ff,#0f0,#ff0,red);border-radius:4px;border:1px solid #dee2e6}.legend-label{font-size:.875rem;color:#495057;font-weight:600}.legend-description{text-align:center;color:#666;font-size:.875rem;margin:0}.advice-section{background-color:#e7f3ff;border:2px solid #007bff;border-radius:12px;padding:2rem;margin-top:3rem}.advice-section h3{font-size:1.5rem;color:#0056b3;margin-bottom:1rem}.advice-list{list-style:none;padding:0;margin:0}.advice-item{display:flex;align-items:flex-start;padding:1rem;margin-bottom:.75rem;background-color:#fff;border-radius:8px;border-left:4px solid #007bff;transition:transform .2s ease}.advice-item:hover{transform:translate(4px)}.advice-icon{font-size:1.5rem;margin-right:1rem;flex-shrink:0}.advice-item span:last-child{color:#333;line-height:1.6}@media (max-width: 768px){.analysis-display{padding:1rem}.scores-grid,.image-comparison{grid-template-columns:1fr}.score-value{font-size:2.5rem}}.results-download{max-width:1200px;margin:2rem auto;padding:2rem;background-color:#f8f9fa;border-radius:12px}.results-download h3{font-size:1.5rem;color:#333;margin-bottom:1.5rem;text-align:center}.download-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.download-button{background-color:#28a745;color:#fff;border:none;border-radius:8px;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem}.download-button:hover{background-color:#218838;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.download-button:focus{outline:3px solid #28a745;outline-offset:2px}.download-button:active{transform:translateY(0)}@media (max-width: 768px){.download-buttons{flex-direction:column}.download-button{width:100%;justify-content:center}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#333}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
