:root{--bg:#0f1115;--card:#1a1d24;--border:#2a2e38;--text:#eef1f5;--text-dim:#8b93a1;--accent:#10b981;--accent-dark:#0d9668;--danger:#ef4444;--protein:#60a5fa;--carbs:#fbbf24;--fat:#f472b6}@media (prefers-color-scheme:light){:root{--bg:#f4f5f7;--card:#fff;--border:#e2e5ea;--text:#171a20;--text-dim:#6b7280}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;max-width:560px;height:100%;margin:0 auto;display:flex}.content{padding:16px 16px calc(24px + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.view{padding-top:env(safe-area-inset-top);flex-direction:column;gap:16px;display:flex}.date-nav{justify-content:space-between;align-items:center;display:flex}.date-nav h1{font-size:1.2rem}.date-nav button{background:var(--card);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:12px;width:40px;height:40px;font-size:1.4rem;line-height:1}.view-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.view-head h1{font-size:1.2rem}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:1rem}.card,.progress-card,.meal-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:16px}.progress-card{flex-direction:column;align-items:center;gap:12px;display:flex}.kcal-ring{width:136px;height:136px;position:relative}.ring-track{fill:none;stroke:var(--border);stroke-width:10px}.ring-progress{fill:none;stroke:var(--accent);stroke-width:10px;stroke-linecap:round;transition:stroke-dashoffset .4s}.ring-progress.over{stroke:var(--danger)}.kcal-ring-label{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.kcal-ring-label strong{font-size:1.6rem}.kcal-ring-label span{color:var(--text-dim);font-size:.75rem}.kcal-summary{color:var(--text-dim);font-size:.9rem}.macros{flex-direction:column;gap:10px;width:100%;display:flex}.macro-head{justify-content:space-between;margin-bottom:4px;font-size:.85rem;display:flex}.macro-numbers{color:var(--text-dim)}.bar-track{background:var(--border);border-radius:4px;height:8px;overflow:hidden}.bar-fill{border-radius:4px;height:100%;transition:width .4s}.bar-fill.protein{background:var(--protein)}.bar-fill.carbs{background:var(--carbs)}.bar-fill.fat{background:var(--fat)}.meal-head{align-items:center;gap:8px;display:flex}.meal-head h2{flex:1;font-size:1rem}.meal-emoji{margin-right:4px}.meal-kcal{color:var(--text-dim);font-size:.85rem}.add-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:32px;height:32px;font-size:1.3rem;line-height:1}.entry-list,.result-list{flex-direction:column;list-style:none;display:flex}.entry-list{gap:4px;margin-top:12px}.result-list{gap:8px}.entry-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.result-list .entry-row{border:1px solid var(--border);background:var(--card);border-radius:12px;padding:10px 12px}.entry-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.entry-name{font-size:.95rem;font-weight:600}.entry-detail{color:var(--text-dim);font-size:.78rem}.entry-kcal{white-space:nowrap;font-size:.85rem}.entry-delete{color:var(--text-dim);cursor:pointer;background:0 0;border:none;width:32px;height:32px;font-size:1.3rem;line-height:1}.segmented{background:var(--card);border:1px solid var(--border);border-radius:12px;gap:4px;padding:4px;display:flex}.segmented button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:8px;font-size:.9rem}.segmented button.active{background:var(--accent);color:#fff;font-weight:600}.meal-select{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:8px 10px;font-size:.9rem}.search-form{gap:8px;display:flex}.search-form input{flex:1}input,select{font:inherit}input[type=search],input[type=number],input[type=date],input[type=text],.field input{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:12px;width:100%;padding:12px;font-size:1rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:.85rem;display:flex}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.manual-form,.weight-form{flex-direction:column;gap:14px;display:flex}.primary-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:14px;font-size:1rem;font-weight:600}.primary-btn:active{background:var(--accent-dark)}.primary-btn:disabled{opacity:.5}.primary-btn.small{padding:0 16px}.result-row{text-align:left;background:var(--card);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex}.result-add{color:var(--accent);font-size:1.3rem}.list-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:8px;font-size:.8rem}.notice{background:var(--card);border:1px solid var(--border);color:var(--text-dim);border-radius:12px;padding:12px;font-size:.85rem}.scaled-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 0;display:grid}.scaled-grid strong{font-size:1rem;display:block}.scaled-grid span{color:var(--text-dim);font-size:.72rem}.scanner{aspect-ratio:3/4;background:#000;border-radius:16px;position:relative;overflow:hidden}.scanner-video{object-fit:cover;width:100%;height:100%}.scanner-frame{border:3px solid var(--accent);border-radius:12px;width:70%;height:30%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000059}.scanner-hint{text-align:center;color:#fff;text-shadow:0 1px 3px #000c;width:100%;font-size:.85rem;position:absolute;bottom:12px}.chart-card{padding:16px 8px 8px}.tab-bar{border-top:1px solid var(--border);background:var(--card);padding-bottom:env(safe-area-inset-bottom);display:flex}.tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 0 6px;display:flex}.tab.active{color:var(--accent)}.tab-icon{font-size:1.25rem}.tab-label{font-size:.68rem}
