:root{--bg:#0a0a0f;--surface:#14141e;--surface-2:#1e1e2e;--surface-3:#282840;--accent:#f59e42;--accent-hover:#e88d30;--accent-glow:#f59e4226;--green:#34d399;--red:#f87171;--text:#f0eff4;--text-dim:#8888a0;--text-muted:#55556a;--radius:16px;--radius-sm:10px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display:"Space Grotesk", var(--font)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.app{flex-direction:column;max-width:480px;min-height:100%;margin:0 auto;padding-bottom:100px;display:flex}.header{flex-direction:column;align-items:center;padding:16px 20px 8px;display:flex}.header-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:12px;display:flex}.logo{font-family:var(--font-display);letter-spacing:-.5px;color:var(--text);font-size:24px;font-weight:700}.logo-accent{color:var(--accent)}.settings-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:8px;font-size:20px;transition:background .2s}.settings-btn:hover{background:var(--surface-2)}.main{flex:1;padding:0 16px}.calorie-ring{width:180px;height:180px;margin:4px auto 8px;position:relative}.calorie-ring-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.calorie-ring-number{font-family:var(--font-display);color:var(--text);font-size:36px;font-weight:700;line-height:1}.calorie-ring-label{color:var(--text-dim);margin-top:4px;font-size:13px}.fab{background:var(--accent);width:64px;height:64px;color:var(--bg);cursor:pointer;box-shadow:0 4px 24px var(--accent-glow), 0 0 0 4px var(--accent-glow);z-index:10;border:none;border-radius:50%;font-size:32px;font-weight:600;transition:transform .15s,box-shadow .15s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.fab:active{transform:translate(-50%)scale(.92)}.timeline{flex-direction:column;gap:10px;padding-top:8px;display:flex}.timeline-empty{text-align:center;color:var(--text-dim);padding:48px 20px}.empty-icon{margin-bottom:12px;font-size:48px}.timeline-empty p{margin-bottom:4px;font-size:16px;font-weight:500}.timeline-empty span{color:var(--text-muted);font-size:13px}.day-group{margin-bottom:8px}.day-group:last-child{margin-bottom:0}.day-header{z-index:2;background:var(--bg);justify-content:space-between;align-items:center;padding:12px 4px 8px;display:flex;position:sticky;top:0}.day-label{font-family:var(--font-display);color:var(--text);font-size:15px;font-weight:600}.day-total{font-family:var(--font-display);color:var(--text-dim);font-size:14px;font-weight:600}.day-total-over{color:var(--red)}.day-meals{flex-direction:column;gap:10px;display:flex}.meal-card{background:var(--surface);border-radius:var(--radius);cursor:pointer;gap:12px;padding:12px;transition:background .15s;display:flex;position:relative}.meal-card:active{background:var(--surface-2)}.meal-card-photo{border-radius:var(--radius-sm);flex-shrink:0;width:56px;height:56px;overflow:hidden}.meal-card-photo img{object-fit:cover;width:100%;height:100%}.meal-card-info{flex:1;min-width:0}.meal-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.meal-card-time{color:var(--text-muted);font-size:12px}.meal-card-calories{font-family:var(--font-display);color:var(--accent);font-size:15px;font-weight:600}.meal-adjusted{color:var(--text-muted);font-size:10px;font-family:var(--font);margin-left:4px;font-weight:400}.meal-card-desc{text-transform:capitalize;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.meal-card-location{color:var(--text-dim);margin-top:2px;font-size:12px;display:block}.meal-card-actions{position:absolute;top:50%;right:12px;transform:translateY(-50%)}.meal-delete{background:var(--red);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:6px 14px;font-size:12px;font-weight:600}.quick-log{margin-bottom:16px}.quick-log-title{color:var(--text-dim);margin-bottom:8px;font-size:14px;font-weight:600}.quick-log-list{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.quick-log-list::-webkit-scrollbar{display:none}.quick-log-item{background:var(--surface);border:1px solid var(--surface-3);border-radius:var(--radius);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;transition:border-color .15s;display:flex}.quick-log-item:hover{border-color:var(--accent)}.quick-log-photo{object-fit:cover;border-radius:8px;width:32px;height:32px}.quick-log-info{flex-direction:column;display:flex}.quick-log-desc{text-transform:capitalize;font-size:13px;font-weight:500}.quick-log-cal{color:var(--text-dim);font-size:11px}.camera-view{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.camera-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:28px;display:flex;position:absolute;top:16px;right:16px}.camera-close:hover{background:var(--surface)}.camera-capture{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.camera-prompt{margin-bottom:16px}.camera-icon{margin-bottom:12px;font-size:64px}.camera-prompt p{font-family:var(--font-display);margin-bottom:4px;font-size:22px;font-weight:600}.camera-hint{color:var(--text-dim);font-size:13px}.camera-btn{border-radius:var(--radius);background:var(--accent);width:240px;color:var(--bg);cursor:pointer;border:none;padding:14px;font-size:16px;font-weight:600;transition:transform .1s}.camera-btn:active{transform:scale(.97)}.camera-btn-secondary{border:1px solid var(--surface-3);border-radius:var(--radius);background:var(--surface);width:240px;color:var(--text);cursor:pointer;padding:14px;font-size:15px;font-weight:500}.camera-error{color:var(--red);max-width:280px;font-size:13px}.camera-analyzing{flex-direction:column;align-items:center;gap:24px;display:flex}.camera-preview{object-fit:cover;border-radius:var(--radius);width:280px;height:280px}.analyzing-pulse{color:var(--text-dim);align-items:center;gap:10px;font-size:15px;display:flex}.pulse-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.camera-confirm{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:340px;display:flex}.confirm-card{background:var(--surface);border-radius:var(--radius);text-align:center;width:100%;padding:20px}.confirm-card h3{text-transform:capitalize;margin-bottom:16px;font-size:18px;font-weight:600}.confirm-calories{justify-content:center;align-items:baseline;gap:6px;margin-bottom:12px;display:flex}.calorie-input{text-align:center;width:120px;font-family:var(--font-display);color:var(--accent);border:none;border-bottom:2px solid var(--surface-3);background:0 0;outline:none;padding-bottom:4px;font-size:40px;font-weight:700;transition:border-color .2s}.calorie-input:focus{border-color:var(--accent)}.calorie-unit{color:var(--text-dim);font-size:18px}.confirm-reasoning{color:var(--text-dim);margin-bottom:16px;font-size:13px;line-height:1.5}.confirm-btn{border-radius:var(--radius);background:var(--accent);width:100%;color:var(--bg);cursor:pointer;border:none;padding:14px;font-size:16px;font-weight:600}.confirm-btn:active{transform:scale(.98)}.settings-view{background:var(--bg);max-width:480px;min-height:100vh;margin:0 auto;padding:20px}.settings-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.settings-header h2{font-family:var(--font-display);font-size:22px;font-weight:700}.settings-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:28px;display:flex}.settings-section{margin-bottom:24px}.settings-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.settings-input{background:var(--surface);border:1px solid var(--surface-3);border-radius:var(--radius-sm);width:100%;color:var(--text);font-size:15px;font-family:var(--font);outline:none;padding:12px 14px;transition:border-color .2s}.settings-input:focus{border-color:var(--accent)}.settings-hint{color:var(--text-muted);margin-top:6px;font-size:12px;display:block}.settings-save{border-radius:var(--radius);background:var(--accent);width:100%;color:var(--bg);cursor:pointer;border:none;margin-top:8px;padding:14px;font-size:16px;font-weight:600;transition:background .2s}.settings-save:hover{background:var(--accent-hover)}.settings-save:active{transform:scale(.98)}.settings-save-done{background:var(--green);transition:background .2s}.settings-save-done:hover{background:var(--green)}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.calorie-input:focus-visible{outline-offset:4px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
