:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);background-attachment:fixed}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}p{margin:0}button{border:none;border-radius:8px;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease;outline:none}button:focus-visible{outline:2px solid #667eea;outline-offset:2px}button:disabled{opacity:.6;cursor:not-allowed}input,textarea{font-family:inherit;font-size:inherit}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff80}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}.slide-in-up{animation:slideInUp .5s ease-out}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#667eea,#764ba2)}.app-header{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem 0;text-align:center;box-shadow:0 4px 20px #0000001a}.header-content{max-width:1200px;margin:0 auto;padding:0 2rem}.app-title{font-size:3rem;font-weight:700;margin:0 0 .5rem;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-subtitle{font-size:1.2rem;color:#666;margin:0;font-weight:400}.app-main{flex:1;padding:3rem 0}.container{max-width:800px;margin:0 auto;padding:0 2rem}.error-message{background:#fee;border:1px solid #fcc;border-radius:12px;padding:1rem;margin:1rem 0;text-align:center}.error-message p{margin:0;color:#c33;font-weight:500}.app-footer{background:#0000001a;text-align:center;padding:1rem 0;color:#fffc;font-size:.9rem}.api-key-section{margin-bottom:2rem}.api-key-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:2rem;text-align:center;box-shadow:0 10px 30px #0000001a;border:2px solid rgba(102,126,234,.2)}.api-key-card h3{margin:0 0 1rem;color:#333;font-size:1.5rem;font-weight:600}.api-key-card p{color:#666;margin:0 0 1.5rem;line-height:1.5}.api-key-input-group{display:flex;gap:.5rem;margin-bottom:1rem;max-width:500px;margin-left:auto;margin-right:auto}.api-key-input{flex:1;padding:.8rem 1rem;border:2px solid #e0e0e0;border-radius:12px;font-size:1rem;transition:all .3s ease;background:#fff}.api-key-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.api-key-button{background:#667eea;color:#fff;border:none;border-radius:12px;padding:.8rem 1.2rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.api-key-button:hover{background:#5a6fd8;transform:translateY(-1px)}.api-key-help{font-size:.9rem;color:#888;margin:0}.api-key-help a{color:#667eea;text-decoration:none;font-weight:500}.api-key-help a:hover{text-decoration:underline}@media (max-width: 768px){.app-title{font-size:2.5rem}.app-subtitle{font-size:1rem}.container{padding:0 1rem}.app-main{padding:2rem 0}}.image-uploader{margin-bottom:2rem}.upload-area{border:3px dashed #ccc;border-radius:20px;padding:3rem 2rem;text-align:center;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;cursor:pointer}.upload-area:hover,.upload-area.drag-active{border-color:#667eea;background:#667eea1a;transform:translateY(-2px);box-shadow:0 10px 30px #667eea33}.upload-content{max-width:400px;margin:0 auto}.upload-icon{font-size:4rem;margin-bottom:1rem}.upload-area h3{font-size:1.5rem;margin:0 0 .5rem;color:#333;font-weight:600}.upload-area p{color:#666;margin:0 0 1.5rem;font-size:1rem;line-height:1.5}.upload-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:12px;padding:.8rem 2rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.upload-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.image-preview{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:1.5rem;box-shadow:0 10px 30px #0000001a}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.preview-header h3{margin:0;color:#333;font-size:1.2rem}.remove-button{background:#ff4757;color:#fff;border:none;border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all .3s ease}.remove-button:hover{background:#ff3742;transform:scale(1.1)}.preview-container{position:relative;border-radius:12px;overflow:hidden;background:#f8f9fa}.preview-image{width:100%;max-height:400px;object-fit:cover;display:block}.analyzing-overlay{position:absolute;inset:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analyzing-overlay p{margin:0;font-size:1.1rem;font-weight:500}@media (max-width: 768px){.upload-area{padding:2rem 1rem}.upload-icon{font-size:3rem}.upload-area h3{font-size:1.3rem}.image-preview{padding:1rem}.preview-header h3{font-size:1.1rem}}.nutrition-results{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:2rem;box-shadow:0 10px 30px #0000001a;animation:slideUp .5s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.results-header h2{margin:0;color:#333;font-size:1.8rem;font-weight:700}.confidence-badge{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:600}.results-content{display:flex;flex-direction:column;gap:1.5rem}.food-info-card{display:flex;gap:1.5rem;background:#f8f9fa;border-radius:15px;padding:1.5rem;align-items:flex-start}.food-image-container{position:relative;flex-shrink:0}.food-image{width:120px;height:120px;object-fit:cover;border-radius:12px;box-shadow:0 4px 15px #0000001a}.meal-type-badge{position:absolute;top:-8px;right:-8px;background:#fff;padding:.3rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600;color:#333;box-shadow:0 2px 8px #0000001a}.food-details{flex:1}.food-name{margin:0 0 .5rem;color:#333;font-size:1.4rem;font-weight:600}.food-description{margin:0 0 1rem;color:#666;line-height:1.5}.serving-size{color:#555;font-size:.9rem}.health-score-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:15px;padding:1.5rem}.health-score-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.health-score-header h4{margin:0;color:#333;font-size:1.2rem}.health-score-number{font-size:1.5rem;font-weight:700}.health-score-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.health-score-fill{height:100%;border-radius:4px;transition:width .8s ease-out}.nutrition-facts-card{background:#f8f9fa;border-radius:15px;padding:1.5rem}.nutrition-facts-card h4{margin:0 0 1.5rem;color:#333;font-size:1.2rem;text-align:center}.nutrition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.nutrition-item{background:#fff;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:.8rem;box-shadow:0 2px 8px #0000000d;transition:transform .2s ease}.nutrition-item:hover{transform:translateY(-2px)}.nutrition-icon{font-size:1.5rem;flex-shrink:0}.nutrition-details{display:flex;flex-direction:column;gap:.2rem}.nutrition-value{font-size:1.2rem;font-weight:700;color:#333}.nutrition-unit{font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.additional-info{display:flex;flex-direction:column;gap:1rem}.ingredients-section,.allergens-section{background:#f8f9fa;border-radius:15px;padding:1.5rem}.ingredients-section h5,.allergens-section h5{margin:0 0 1rem;color:#333;font-size:1.1rem;font-weight:600}.ingredients-list,.allergens-list{display:flex;flex-wrap:wrap;gap:.5rem}.ingredient-tag{background:#e3f2fd;color:#1976d2;padding:.4rem .8rem;border-radius:20px;font-size:.9rem;font-weight:500}.allergen-tag{background:#ffebee;color:#d32f2f;padding:.4rem .8rem;border-radius:20px;font-size:.9rem;font-weight:500}@media (max-width: 768px){.nutrition-results{padding:1.5rem}.results-header{flex-direction:column;align-items:flex-start}.results-header h2{font-size:1.5rem}.food-info-card{flex-direction:column;align-items:center;text-align:center}.food-image{width:100px;height:100px}.nutrition-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.nutrition-item{padding:.8rem}.nutrition-icon{font-size:1.3rem}.nutrition-value{font-size:1.1rem}}@media (max-width: 480px){.nutrition-grid{grid-template-columns:1fr}.ingredients-list,.allergens-list{justify-content:center}}
