:root{--bg:#0f0f13;--surface:#1a1a24;--surface-2:#141419;--surface-hover:#22222f;--border:#2a2a3a;--text-primary:#e8e8f0;--text-muted:#6b6b80;--accent:#f59e0b;--accent-soft:#f59e0b1f;--danger:#f87171;--success:#4ade80;-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text-primary)}button,input,select,textarea{font-family:inherit}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.day-view{padding:1rem}.day-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.day-nav{background:var(--surface);color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:2.5rem;height:2.5rem;font-size:1.5rem}.day-nav:hover{background:var(--surface-hover)}.day-title{flex-direction:column;align-items:center;gap:.3rem;display:flex}.day-label{text-align:center;text-transform:capitalize;font-size:1rem;font-weight:600}.today-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:600}.totals-card{background:var(--surface);border-radius:14px;flex-direction:column;align-items:center;gap:.6rem;margin-bottom:1.25rem;padding:1.25rem;display:flex}.totals-calories{align-items:baseline;gap:.4rem;display:flex}.totals-value{color:var(--accent);font-size:2.4rem;font-weight:700;line-height:1}.totals-unit{color:var(--text-muted);font-size:1rem;font-weight:600}.totals-macros{color:var(--text-muted);gap:1rem;font-size:.8rem;font-weight:500;display:flex}.meal-list{flex-direction:column;gap:.6rem;list-style:none;display:flex}.meal-item{background:var(--surface);border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;display:flex}.meal-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.meal-name{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.meal-meta{color:var(--text-muted);font-size:.75rem}.meal-cal{color:var(--accent);white-space:nowrap;font-size:.9rem;font-weight:600}.meal-delete{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.3rem;font-size:.9rem}.meal-delete:hover{color:var(--danger)}.calendar{padding:1rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.calendar-header h2{color:var(--text-primary);font-size:1.2rem;font-weight:600}.nav-btn{background:var(--surface);color:var(--text-primary);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;transition:background .2s;display:flex}.nav-btn:hover{background:var(--surface-hover)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day-label{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:.4rem 0;font-size:.75rem;font-weight:600}.day-cell{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;transition:background .15s;display:flex;position:relative}.day-cell:not(.empty):hover{background:var(--surface-hover)}.day-cell.empty{cursor:default}.day-number{color:var(--text-primary);font-size:.9rem;font-weight:400;line-height:1}.day-cell.today .day-number{color:var(--accent);font-weight:700}.day-cell.today{background:var(--accent-soft)}.day-cell.has-meals{background:var(--surface)}.day-cell.has-meals.today{background:var(--accent-soft)}.day-total{background:var(--accent);color:#fff;border-radius:10px;padding:1px 5px;font-size:.6rem;font-weight:600;line-height:1.4}.manual-entry{background:var(--surface);border-radius:14px;flex-direction:column;gap:.9rem;padding:1.25rem;display:flex}.manual-entry .field-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.manual-entry .field-row.three{grid-template-columns:1fr 1fr 1fr}.add-meal{padding:1rem}.mode-switch{background:var(--surface);border-radius:12px;margin-bottom:1.25rem;padding:4px;display:flex}.mode-switch button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:.55rem 0;font-size:.8rem;font-weight:600;transition:background .15s,color .15s}.mode-switch button.active{background:var(--accent);color:#fff}.field{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:500;display:flex}.field input,.field textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--text-primary);border-radius:10px;padding:.65rem .8rem;font-size:.95rem}.field input:focus,.field textarea:focus{border-color:var(--accent);outline:none}.actions{gap:.75rem;margin-top:1rem;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:none;border-radius:10px;flex:1;padding:.75rem;font-size:.9rem;font-weight:600}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--surface);color:var(--text-primary)}.state-msg{text-align:center;color:var(--text-muted);padding:1.5rem 1rem;font-size:.9rem}.state-msg.error{color:var(--danger)}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.content{flex:1;padding-bottom:1rem;overflow-y:auto}.bottom-nav{background:var(--surface-2);border-top:1px solid var(--border);padding:.5rem 0;padding-bottom:calc(.5rem + env(safe-area-inset-bottom));flex-shrink:0;display:flex}.bottom-nav button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.25rem;padding:.4rem 0;font-size:.7rem;font-weight:500;transition:color .15s;display:flex}.bottom-nav button.active{color:var(--accent)}.install-banner{background:var(--accent);color:#fff;flex-shrink:0;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;font-weight:500;display:flex}.install-banner span{flex:1}.install-btn{color:var(--accent);cursor:pointer;white-space:nowrap;background:#fff;border:none;border-radius:8px;padding:.4rem .9rem;font-size:.8rem;font-weight:700}.install-dismiss{color:#fffc;cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:1rem;line-height:1}
