:root{color:#111827;text-rendering:optimizelegibility;background-color:#f8fafc;font-family:Inter,system-ui,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0;padding:0}h1,h2,h3,h4,p{margin:0}#root{min-height:100vh}.app{background:#edf1f8;flex-direction:column;min-height:100vh;display:flex}.teaser-page{background:radial-gradient(circle at 20% 20%,#3e71ff47,#0000 45%),radial-gradient(circle at 80% 0,#818cf833,#0000 40%),linear-gradient(150deg,#070b19,#11172c 55%,#0f1325);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.teaser-card{text-align:center;color:#e2e8f0;background:#0a0e1cb8;border:1px solid #94a3b84d;border-radius:28px;width:min(460px,100%);padding:42px 30px 32px;box-shadow:0 24px 60px #02061773}.logo-mark{justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 22px;display:flex}.logo-mark img{object-fit:contain;width:72px;height:72px}.logo-wordmark{width:min(300px,100%);height:auto;display:block}.teaser-wordmark{margin:0 auto 16px}.teaser-headline{color:#f8fafc;margin:0;font-size:clamp(28px,5.5vw,38px);font-weight:650;line-height:1.1}.teaser-subhead{color:#e2e8f0eb;margin:16px 0 26px;font-size:17px}.teaser-enter{color:#fff;cursor:pointer;background:linear-gradient(135deg,#4f46e5,#2563eb);border:none;border-radius:14px;padding:12px 26px;font-size:16px;font-weight:650;box-shadow:0 14px 28px #2563eb5c}.teaser-caption{letter-spacing:.16em;text-transform:uppercase;color:#e2e8f099;margin-top:14px;font-size:12px}.top-app-bar{color:#fff;background:linear-gradient(135deg,#1e5fd8,#0b3c9b);border-bottom-right-radius:28px;border-bottom-left-radius:28px;padding:24px 20px 32px;box-shadow:0 16px 28px #0b3c9b40}.top-app-content{align-items:center;gap:12px;display:flex}.topbar-wordmark{width:min(220px,65vw);margin-bottom:8px}.icon-button{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:inline-flex}.subtitle{color:#6c6c78;margin-top:8px}.status{color:#92400e;background:#fef3c7;border-radius:12px;margin:-16px 20px 12px;padding:10px 16px}.success-banner{color:#92400e;background:#fef3c7;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin:-16px 20px 12px;padding:10px 16px;display:flex}.success-banner button{color:inherit;cursor:pointer;background:0 0;border:none;font-size:18px}.auth-panel{flex-direction:column;gap:18px;display:flex}.auth-header h2{margin-bottom:4px}.content{flex-direction:column;flex:1;gap:16px;padding:20px 20px 120px;display:flex}.panel{background:#fff;border-radius:24px;padding:20px;box-shadow:0 12px 30px #0f172a14}.home-panel{flex-direction:column;gap:14px;display:flex}.home-header{grid-template-columns:128px 1fr;align-items:center;gap:12px;display:grid}.ring{background:conic-gradient(#38bdf8 var(--progress), #ffffff4d 0);border-radius:50%;justify-content:center;align-items:center;width:128px;height:128px;padding:10px;display:flex;box-shadow:inset 0 0 0 12px #0c4a6e1f}.ring-inner{text-align:center;background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;box-shadow:0 10px 20px #0f172a14}.ring-value{font-size:26px;font-weight:700}.ring-sub{color:#64748b;font-size:12px}.home-summary h2{margin:4px 0;font-size:26px}.cta{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1f70ff,#1a4bb8);border:none;border-radius:16px;width:100%;padding:14px 16px;font-size:16px;font-weight:600;box-shadow:0 12px 24px #1e70ff40}.cta.secondary{color:#1e3a8a;box-shadow:none;background:#f0f4ff;border:1px solid #dbe6ff}.macro-list{flex-direction:column;gap:12px;display:flex}.macro-row{flex-direction:column;gap:6px;display:flex}.macro-label{color:#334155;justify-content:space-between;font-size:14px;display:flex}.progress{background:#e2e8f0;border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-fill{background:#38bdf8;border-radius:999px;height:100%}.progress-fill.protein{background:#2563eb}.progress-fill.carbs{background:#22c55e}.progress-fill.sugar{background:#f59e0b}.grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:16px;display:grid}.card{background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 20px #0f172a14}.metric{margin:12px 0 4px;font-size:24px;font-weight:600}.caption{color:#6b7280;font-size:14px}.actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}button{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:12px;padding:10px 16px;font-size:14px}button.primary{color:#fff;background:linear-gradient(135deg,#1f70ff,#1a4bb8);border:none}button.danger{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.result{flex-wrap:wrap;justify-content:space-between;gap:24px;display:flex}.result-grid{grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px 16px;display:grid}.result-grid.compact{grid-template-columns:repeat(2,minmax(100px,1fr));font-size:13px}.scan-tiles{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:6px;display:grid}.scan-tile{color:#fff;background:linear-gradient(135deg,#1f70ff,#1a4bb8);border:none;border-radius:20px;flex-direction:column;align-items:flex-start;gap:8px;min-height:120px;padding:20px;display:flex;box-shadow:0 12px 24px #1e70ff40}.scan-tile .caption{color:#ffffffb3}.text-link{color:#1d4ed8;text-align:left;background:0 0;border:none;margin-top:6px;padding:0;font-weight:600}.scan-manual{flex-direction:column;gap:12px;margin-top:12px;display:flex}.scan-note{color:#9a5b1a;margin:0;font-size:14px}.callout{background:#eef2ff;border-radius:16px;margin-top:16px;padding:16px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:12px;display:grid}.search-panel{flex-direction:column;gap:12px;display:flex}.search-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.search-results{flex-direction:column;gap:12px;display:flex}.search-card{background:#fff}.empty-state{background:#f8fafc;border:1px dashed #cbd5f5;border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}label{flex-direction:column;gap:6px;font-size:14px;display:flex}input{border:1px solid #d1d5db;border-radius:10px;padding:10px 12px}label.highlight{background:#38bdf814;border:1px dashed #38bdf8;border-radius:12px;padding:12px}.validation{color:#b91c1c;margin-top:12px}.validation.ok{color:#15803d}.summary{gap:24px;margin-bottom:16px;display:flex}.log-list{flex-direction:column;gap:12px;display:flex}.log-card{background:#fff;border-radius:16px;justify-content:space-between;gap:16px;padding:16px;display:flex;box-shadow:0 10px 18px #0f172a0f}.log-actions{gap:8px;display:flex}.learn-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:16px;display:grid}.goal-card{flex-direction:column;gap:16px;display:flex}.goal-value{align-items:center;gap:12px;font-size:18px;display:flex}.goal-value input{width:120px;font-size:20px;font-weight:600}.more-list{flex-direction:column;gap:12px;display:flex}.more-item{text-align:left;background:#f8fafc;border:none;border-radius:16px;width:100%;padding:16px;font-weight:600;box-shadow:inset 0 0 0 1px #e2e8f0}.bottom-tabs{padding:12px 20px calc(20px + env(safe-area-inset-bottom));background:#fff;border-top-left-radius:24px;border-top-right-radius:24px;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 20px #0f172a14}.tab{color:#94a3b8;background:0 0;border:none;font-weight:600}.tab.active{color:#1d4ed8}@media (width<=768px){.result,.summary,.log-card{flex-direction:column}.home-header{grid-template-columns:110px 1fr;gap:10px}.ring{width:110px;height:110px}}
