.image-uploader{max-width:800px;margin:0 auto}.upload-area{border:3px dashed #cbd5e0;border-radius:16px;padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .3s ease;background:#fff;position:relative;overflow:hidden}.upload-area:hover{border-color:#667eea;background:#f7fafc;transform:translateY(-2px);box-shadow:0 8px 16px #667eea1a}.upload-area.dragging{border-color:#667eea;background:#eef2ff;transform:scale(1.02)}.upload-prompt{color:#4a5568}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-prompt h3{font-size:1.5rem;margin-bottom:.5rem;color:#2d3748}.upload-prompt p{font-size:1rem;margin-bottom:1rem;color:#718096}.upload-info{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1rem;font-size:.875rem;color:#a0aec0}.preview-container{position:relative;max-width:500px;margin:0 auto}.preview-image{width:100%;height:auto;max-height:400px;object-fit:contain;border-radius:8px}.preview-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#0000;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:background .3s ease}.preview-container:hover .preview-overlay{background:#000000b3}.preview-overlay p{color:#fff;font-size:1.1rem;font-weight:600;opacity:0;transition:opacity .3s ease}.preview-container:hover .preview-overlay p{opacity:1}.upload-tips{margin-top:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d}.upload-tips h4{color:#2d3748;margin-bottom:1rem;font-size:1.1rem}.upload-tips ul{list-style:none;padding:0}.upload-tips li{color:#4a5568;position:relative;padding:.5rem 0 .5rem 1.5rem}.upload-tips li:before{content:"✓";position:absolute;left:0;color:#667eea;font-weight:700}@media (max-width: 768px){.upload-area{padding:2rem 1rem}.upload-icon{font-size:3rem}.upload-prompt h3{font-size:1.25rem}.upload-info{flex-direction:column;gap:.5rem}}@media (prefers-color-scheme: dark){.upload-area{background:#2d3748;border-color:#4a5568}.upload-area:hover{background:#374151}.upload-area.dragging{background:#4c51bf}.upload-prompt{color:#e2e8f0}.upload-prompt h3{color:#f7fafc}.upload-prompt p{color:#cbd5e0}.upload-tips{background:#2d3748}.upload-tips h4{color:#f7fafc}.upload-tips li{color:#e2e8f0}}.nutrition-chart{display:flex;flex-direction:column;align-items:center;padding:.5rem 0;height:100%}.custom-tooltip{background:#000000d9;padding:1rem;border-radius:8px;box-shadow:0 4px 6px #0000001a}.tooltip-name{color:#fff;font-weight:600;margin:0 0 .25rem;font-size:.95rem}.tooltip-value{color:gold;font-weight:700;margin:0 0 .25rem;font-size:1.1rem}.tooltip-calories{color:#a0aec0;margin:0;font-size:.875rem}.chart-summary{margin-top:1rem;width:100%;max-width:100%;padding:1rem;background:#f7fafc;border-radius:12px}.summary-item{display:flex;justify-content:space-between;align-items:center;padding-bottom:1rem;margin-bottom:1rem;border-bottom:2px solid #e2e8f0}.summary-label{font-weight:600;color:#4a5568;font-size:1rem}.summary-value{font-size:1.5rem;font-weight:700;color:#2d3748}.summary-breakdown{display:flex;flex-direction:column;gap:.5rem}.breakdown-item{display:flex;align-items:center;gap:.5rem;color:#4a5568;font-size:.9rem}.breakdown-item span{font-size:1.2rem}@media (max-width: 768px){.chart-summary{max-width:100%}.summary-value{font-size:1.25rem}}@media (prefers-color-scheme: dark){.chart-summary{background:#1a202c}.summary-label{color:#cbd5e0}.summary-value{color:#f7fafc}.summary-item{border-bottom-color:#4a5568}.breakdown-item{color:#cbd5e0}}.result-display{max-width:1000px;margin:0 auto;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.result-header h2{font-size:2rem;color:#2d3748;margin:0}.btn-new-analysis{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #667eea4d}.btn-new-analysis:hover{transform:translateY(-2px);box-shadow:0 6px 12px #667eea66}.result-content{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}.info-card{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 6px #00000012;transition:transform .3s ease,box-shadow .3s ease}.info-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.info-card h3{font-size:1.5rem;margin-bottom:1.5rem;color:#2d3748;border-bottom:2px solid #e2e8f0;padding-bottom:.5rem}.info-item{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid #f7fafc}.info-item:last-child{border-bottom:none}.info-label{font-weight:600;color:#4a5568;flex-shrink:0;margin-right:1rem}.info-value{color:#2d3748;text-align:right;flex:1}.ingredients{flex-direction:column;align-items:flex-start}.ingredients-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.ingredient-tag{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500}.calorie-highlight{text-align:center;padding:2rem;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;margin-bottom:1.5rem}.calorie-value{font-size:3.5rem;font-weight:700;margin-bottom:.5rem}.calorie-label{font-size:1.1rem;opacity:.9}.nutrition-details{display:flex;flex-direction:column;gap:1rem}.nutrition-item{display:flex;align-items:center;padding:1rem;background:#f7fafc;border-radius:8px;transition:background .3s ease}.nutrition-item:hover{background:#edf2f7}.nutrition-item.protein{border-left:4px solid #ff6b6b}.nutrition-item.carbs{border-left:4px solid #4ecdc4}.nutrition-item.fat{border-left:4px solid #ffe66d}.nutrition-icon{font-size:2rem;margin-right:1rem}.nutrition-text{display:flex;justify-content:space-between;align-items:center;flex:1}.nutrition-name{font-weight:600;color:#4a5568}.nutrition-amount{font-size:1.25rem;font-weight:700;color:#2d3748}.result-footer{margin-top:2rem;padding:1.5rem;background:#fff3cd;border-radius:8px;border-left:4px solid #ffc107}.disclaimer{margin:0;color:#856404;font-size:.9rem;line-height:1.6}@media (max-width: 1024px){.result-content{grid-template-columns:repeat(2,1fr)}.chart-card{grid-column:1 / -1}}@media (max-width: 768px){.result-header{flex-direction:column;align-items:flex-start;gap:1rem}.result-header h2{font-size:1.5rem}.btn-new-analysis{width:100%}.result-content{grid-template-columns:1fr}.chart-card{grid-column:1}.info-card{padding:1.5rem}.calorie-value{font-size:2.5rem}}@media (prefers-color-scheme: dark){.result-header h2{color:#f7fafc}.info-card{background:#2d3748}.info-card h3{color:#f7fafc;border-bottom-color:#4a5568}.info-label{color:#cbd5e0}.info-value{color:#e2e8f0}.nutrition-item{background:#1a202c}.nutrition-item:hover{background:#2d3748}.nutrition-name{color:#cbd5e0}.nutrition-amount{color:#f7fafc}.result-footer{background:#2d3748;border-left-color:#f6ad55}.disclaimer{color:#f6ad55}}.error-message{background:#fff;border:2px solid #fc8181;border-radius:12px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 4px 6px #fc81811a;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.error-content{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem}.error-icon{font-size:2rem;flex-shrink:0}.error-text{flex:1}.error-text h4{color:#c53030;margin:0 0 .5rem;font-size:1.1rem}.error-text p{color:#742a2a;margin:0;line-height:1.5}.error-close{background:none;border:none;font-size:1.5rem;color:#c53030;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s ease}.error-close:hover{background:#fc81811a}.error-actions{display:flex;justify-content:flex-end}.btn-retry{padding:.5rem 1.5rem;background:#c53030;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .3s ease}.btn-retry:hover{background:#9b2c2c}@media (max-width: 768px){.error-message{padding:1rem}.error-content{flex-direction:column;gap:.5rem}.error-icon{font-size:1.5rem}.error-text h4{font-size:1rem}.error-text p{font-size:.9rem}.btn-retry{width:100%}}@media (prefers-color-scheme: dark){.error-message{background:#2d3748;border-color:#fc8181}.error-text h4{color:#fc8181}.error-text p{color:#feb2b2}.error-close{color:#fc8181}.error-close:hover{background:#fc818133}.btn-retry{background:#fc8181}.btn-retry:hover{background:#f56565}}.loading-spinner{display:flex;justify-content:center;align-items:center;min-height:400px;animation:fadeIn .3s ease-in}.spinner-container{text-align:center;padding:3rem;background:#fff;border-radius:16px;box-shadow:0 4px 6px #00000012;max-width:500px}.spinner{width:80px;height:80px;margin:0 auto 2rem;border:6px solid #e2e8f0;border-top:6px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text h3{font-size:1.75rem;color:#2d3748;margin-bottom:.5rem}.loading-text p{color:#718096;margin-bottom:2rem;font-size:1rem}.loading-steps{display:flex;flex-direction:column;gap:1rem;margin-top:2rem}.step{padding:.75rem 1.5rem;background:linear-gradient(90deg,#667eea,#764ba2);color:#fff;border-radius:8px;font-weight:500;animation:pulse 2s ease-in-out infinite}.step:nth-child(1){animation-delay:0s}.step:nth-child(2){animation-delay:.3s}.step:nth-child(3){animation-delay:.6s}@keyframes pulse{0%,to{opacity:.6;transform:scale(.98)}50%{opacity:1;transform:scale(1)}}@media (max-width: 768px){.spinner-container{padding:2rem 1.5rem;margin:0 1rem}.spinner{width:60px;height:60px}.loading-text h3{font-size:1.5rem}.loading-text p{font-size:.9rem}.step{padding:.5rem 1rem;font-size:.9rem}}@media (prefers-color-scheme: dark){.spinner-container{background:#2d3748}.spinner{border-color:#4a5568;border-top-color:#667eea}.loading-text h3{color:#f7fafc}.loading-text p{color:#cbd5e0}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem 1rem;box-shadow:0 4px 6px #0000001a}.header-content{max-width:1200px;margin:0 auto;text-align:center}.header-content h1{font-size:2.5rem;margin-bottom:.5rem;font-weight:700}.header-content p{font-size:1.1rem;opacity:.95}.app-main{flex:1;padding:2rem 1rem;background:linear-gradient(180deg,#f8f9fa,#e9ecef)}.container{max-width:1200px;margin:0 auto}.app-footer{background-color:#2c3e50;color:#fff;text-align:center;padding:1.5rem;font-size:.9rem}.app-footer p{margin:0;opacity:.8}@media (max-width: 768px){.header-content h1{font-size:2rem}.header-content p{font-size:1rem}.app-main{padding:1rem .5rem}}@media (prefers-color-scheme: dark){.app-main{background:linear-gradient(180deg,#1a1a1a,#0d0d0d)}.app-footer{background-color:#1a1a1a}}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;display:flex;min-width:320px;min-height:100vh}#root{width:100%}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}}
