:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--bg: #0a0a0a;--surface: #141414;--surface-2: #1e1e1e;--border: rgba(255, 255, 255, .08);--accent: #3b82f6;--accent-hover: #2563eb;--text: #fafafa;--text-dim: rgba(255, 255, 255, .55);--text-muted: rgba(255, 255, 255, .35);--danger: #ef4444;--success: #22c55e}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.logo{display:flex;align-items:center;gap:.6rem;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--accent)}.app-main{flex:1;max-width:640px;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem;display:flex;flex-direction:column;gap:1.5rem}.scanner-section{display:flex;flex-direction:column;align-items:center;gap:1rem}.scan-btn{display:flex;align-items:center;gap:.6rem;padding:.9rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:.75rem;background:var(--accent);color:#fff;cursor:pointer;transition:background .15s;width:100%;justify-content:center}.scan-btn:hover{background:var(--accent-hover)}.stop-btn{padding:.6rem 1.5rem;font-size:.9rem;font-weight:500;border:1px solid var(--border);border-radius:.6rem;background:var(--surface-2);color:var(--text);cursor:pointer;transition:border-color .15s;margin-top:.5rem}.stop-btn:hover{border-color:var(--danger);color:var(--danger)}.scanner-container{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;position:relative}.scanner-video{width:100%;max-width:400px;border-radius:.75rem;border:2px solid var(--accent);background:#000}.scanner-canvas{display:none}.scanner-overlay{position:absolute;top:0;left:50%;transform:translate(-50%);width:100%;max-width:400px;height:calc(100% - 60px);display:flex;align-items:center;justify-content:center;pointer-events:none}.scanner-frame{position:relative;width:70%;height:40%;border:2px solid rgba(59,130,246,.6);border-radius:.5rem;box-shadow:0 0 0 9999px #0000004d}.scanner-hint{font-size:.85rem;color:var(--text-dim)}.scanner-unsupported{text-align:center;padding:2rem 1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:.75rem;display:flex;flex-direction:column;gap:.5rem;align-items:center}.scanner-unsupported p{font-size:.9rem;color:var(--text-dim)}.manual-form{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center}.manual-label{font-size:.85rem;color:var(--text-dim)}.manual-input{padding:.55rem .85rem;font-size:.9rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface-2);color:var(--text);width:180px;outline:none;transition:border-color .15s}.manual-input:focus{border-color:var(--accent)}.manual-input::placeholder{color:var(--text-muted)}.manual-btn{padding:.55rem 1rem;font-size:.9rem;font-weight:600;border:1px solid var(--border);border-radius:.5rem;background:var(--surface-2);color:var(--text);cursor:pointer;transition:all .15s}.manual-btn:hover{border-color:var(--accent);color:var(--accent)}.samples-section{text-align:center}.samples-section h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.75rem}.samples-grid{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.sample-btn{padding:.5rem 1rem;font-size:.82rem;font-weight:500;border:1px solid var(--border);border-radius:2rem;background:var(--surface);color:var(--text-dim);cursor:pointer;transition:all .15s}.sample-btn:hover{border-color:var(--accent);color:var(--accent);background:#3b82f614}.status{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-radius:.75rem;font-size:.9rem}.status.loading{background:#3b82f614;border:1px solid rgba(59,130,246,.2);color:var(--accent)}.status.error{background:#ef444414;border:1px solid rgba(239,68,68,.2);color:var(--danger)}.spinner{width:18px;height:18px;border:2px solid rgba(59,130,246,.3);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden}.product-image{width:100%;max-height:260px;object-fit:contain;background:#fff;padding:1rem}.product-info{padding:1.25rem;display:flex;flex-direction:column;gap:1.25rem}.product-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.product-header h2{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;line-height:1.3}.brand{color:var(--text-dim);font-size:.85rem;margin-top:.2rem}.nutrition-badge{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;border-radius:.5rem;font-size:1rem;font-weight:800;text-transform:uppercase}.product-section h3{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.4rem}.product-section p{font-size:.9rem;color:var(--text);line-height:1.6}.ingredients{font-size:.82rem!important;color:var(--text-dim)!important}.nutrients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.nutrient-item{background:var(--surface-2);border:1px solid var(--border);border-radius:.6rem;padding:.65rem .75rem;display:flex;flex-direction:column;gap:.15rem}.nutrient-value{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums}.nutrient-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.history-section h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.75rem}.history-list{display:flex;flex-direction:column;gap:.4rem}.history-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:.65rem;cursor:pointer;transition:all .15s;text-align:left;width:100%;color:var(--text)}.history-item:hover{border-color:var(--accent);background:var(--surface-2)}.history-item img{width:40px;height:40px;object-fit:contain;border-radius:.4rem;background:#fff;flex-shrink:0}.history-name{display:block;font-size:.88rem;font-weight:500}.history-code{display:block;font-size:.75rem;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app-header{display:flex;align-items:center;justify-content:space-between}.reset-key-btn{background:none;border:1px solid var(--border);border-radius:.5rem;color:var(--text-dim);cursor:pointer;padding:.4rem;display:grid;place-items:center;transition:all .15s}.reset-key-btn:hover{color:var(--text);border-color:var(--text-dim)}.capture-controls{display:flex;align-items:center;justify-content:center;gap:1.5rem;width:100%;max-width:400px}.capture-btn{width:64px;height:64px;border-radius:50%;border:3px solid var(--accent);background:#3b82f626;color:var(--accent);cursor:pointer;display:grid;place-items:center;transition:all .15s}.capture-btn:hover:not(:disabled){background:var(--accent);color:#fff}.capture-btn:disabled{opacity:.4;cursor:not-allowed}.frame-label{position:absolute;bottom:-2rem;left:50%;transform:translate(-50%);font-size:.8rem;color:var(--text-dim);white-space:nowrap}.api-prompt{min-height:100vh;display:grid;place-items:center;padding:2rem;background:var(--bg)}.api-prompt-card{max-width:440px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:1rem;padding:2rem;display:flex;flex-direction:column;gap:1.25rem}.api-prompt-card h2{font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.api-prompt-card p{font-size:.9rem;color:var(--text-dim);line-height:1.6}.api-prompt-card ol{font-size:.85rem;color:var(--text-dim);line-height:1.8;padding-left:1.25rem}.api-prompt-card a{color:var(--accent);text-decoration:underline}.api-prompt-card form{display:flex;flex-direction:column;gap:.75rem}.api-input{padding:.7rem 1rem;font-size:.95rem;border:1px solid var(--border);border-radius:.6rem;background:var(--surface-2);color:var(--text);outline:none;transition:border-color .15s;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.api-input:focus{border-color:var(--accent)}.api-input::placeholder{color:var(--text-muted)}.api-btn{padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:.6rem;background:var(--accent);color:#fff;cursor:pointer;transition:background .15s}.api-btn:hover{background:var(--accent-hover)}.captured-preview{border-radius:.75rem;overflow:hidden;border:1px solid var(--border);background:var(--surface)}.captured-preview img{width:100%;max-height:300px;object-fit:contain;display:block}.recognition-results{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.recognition-results h3{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.75rem}.results-list{display:flex;flex-direction:column;gap:.5rem}.result-item{display:grid;grid-template-columns:1fr auto 50px;align-items:center;gap:.75rem}.result-item.result-top .result-label{color:var(--accent);font-weight:600}.result-label{font-size:.85rem;color:var(--text);text-transform:capitalize}.result-bar-wrap{width:100px;height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}.result-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease}.result-confidence{font-size:.78rem;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}@media(max-width:480px){.app-main{padding:1.25rem 1rem 3rem}.nutrients-grid{grid-template-columns:repeat(2,1fr)}.manual-form{flex-direction:column;align-items:stretch}.manual-input{width:100%}.manual-btn{width:100%;text-align:center;justify-content:center}}
