:root{--bg: #f7f7f5;--surface: #ffffff;--surface-2: #f0efea;--text: #1b1b1b;--text-muted: #6b6b6b;--primary: #2e7d32;--primary-dark: #1b5e20;--danger: #c62828;--border: #dcdcd4;--shadow: 0 2px 8px rgba(0, 0, 0, .06);--radius: 14px;--tap: 56px;--font-base: 18px;--font-lg: 22px;--font-xl: 28px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;font-size:var(--font-base);line-height:1.4;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer}input,textarea,select{font-family:inherit;font-size:inherit}.app{display:flex;flex-direction:column;min-height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.app__main{flex:1;overflow-y:auto;padding:12px 16px 96px}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar__btn{flex:1;background:transparent;border:0;padding:10px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--text-muted);min-height:var(--tap)}.tabbar__btn--active{color:var(--primary);font-weight:600}.tabbar__icon{width:26px;height:26px}.tabbar__label{font-size:14px}.datenav{display:flex;align-items:stretch;gap:8px;margin-bottom:16px}.datenav__arrow{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:var(--tap);min-height:var(--tap);display:inline-flex;align-items:center;justify-content:center;color:var(--primary)}.datenav__arrow:active{background:var(--surface-2)}.datenav__title{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6px 4px}.datenav__title-text{font-size:var(--font-lg);font-weight:600;text-transform:capitalize}.datenav__today{margin-top:4px;background:transparent;border:0;color:var(--primary);font-size:14px;padding:2px 6px}.day__list{display:flex;flex-direction:column;gap:16px}.meal-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 14px 14px}.meal-section__header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.meal-section__title{margin:0;font-size:var(--font-lg);font-weight:700}.meal-section__empty{color:var(--text-muted);font-style:italic;padding:4px 0}.meal-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.meal-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;text-align:left;min-height:var(--tap)}.meal-item:active{background:#e6e5de}.meal-item__time{font-weight:700;font-size:var(--font-base);min-width:58px;color:var(--primary-dark)}.meal-item__body{flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden}.meal-item__desc{font-size:var(--font-base);white-space:normal;word-break:break-word}.meal-item__grams{font-size:14px;color:var(--text-muted)}.meal-item__chevron{color:var(--text-muted);flex-shrink:0}.btn{border:0;border-radius:10px;padding:12px 16px;min-height:var(--tap);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.btn--small{min-height:40px;padding:8px 12px;font-size:15px;font-weight:600}.btn--primary{background:var(--primary);color:#fff}.btn--primary:active{background:var(--primary-dark)}.btn--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--danger{background:#fff;color:var(--danger);border:1px solid var(--danger)}.dialog__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:0}.dialog{background:var(--surface);width:100%;max-width:640px;border-top-left-radius:20px;border-top-right-radius:20px;max-height:92dvh;overflow-y:auto;box-shadow:0 -4px 24px #0003;padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 640px){.dialog__backdrop{align-items:center;padding:16px}.dialog{border-radius:20px}}.dialog__form{padding:20px 18px 24px;display:flex;flex-direction:column;gap:16px}.dialog__title{margin:0;font-size:var(--font-xl);font-weight:700;text-align:center}.dialog__actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.dialog__actions .btn--danger{margin-right:auto}.dialog--reminder{max-width:480px}.reminder{padding:24px 20px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.reminder__icon{width:72px;height:72px;border-radius:50%;background:#2e7d321f;color:var(--primary);display:flex;align-items:center;justify-content:center}.reminder__title{margin:0;font-size:var(--font-xl);font-weight:700}.reminder__text{margin:0;font-size:16px;line-height:1.45;color:var(--text)}.reminder__actions{margin-top:4px;display:flex;flex-direction:column;gap:8px;width:100%}.reminder__actions .btn{width:100%}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:15px;color:var(--text-muted);font-weight:600}.input{border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:12px 14px;min-height:var(--tap);font-size:var(--font-base);outline:none}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2e7d3226}.input--textarea{min-height:92px;resize:vertical;font-family:inherit}.input--time{max-width:160px}.segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:var(--surface-2);border-radius:12px;padding:4px}.segmented__btn{background:transparent;border:0;padding:10px 6px;border-radius:8px;font-weight:600;min-height:48px;color:var(--text)}.segmented__btn--active{background:var(--primary);color:#fff}.week__list{display:flex;flex-direction:column;gap:10px}.week-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;text-align:left;box-shadow:var(--shadow)}.week-day--today{border-color:var(--primary);box-shadow:0 0 0 2px #2e7d3240}.week-day__header{display:flex;align-items:center;justify-content:space-between;gap:8px}.week-day__date{font-weight:700;font-size:var(--font-base);text-transform:capitalize}.week-day__count{font-size:14px;color:var(--text-muted)}.week-day__summary{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px}.week-day__chip{background:var(--surface-2);border-radius:999px;padding:4px 10px;font-size:14px}.month__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month__wh{text-align:center;font-size:13px;color:var(--text-muted);text-transform:uppercase;padding:4px 0}.month__cell{aspect-ratio:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;min-height:48px}.month__cell--empty{background:transparent;border-color:transparent}.month__cell--today{border-color:var(--primary);box-shadow:0 0 0 2px #2e7d3233}.month__day{font-weight:700;font-size:var(--font-base)}.month__count{margin-top:2px;font-size:12px;background:var(--primary);color:#fff;border-radius:999px;padding:2px 8px}.report__controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.report__controls .segmented{grid-template-columns:1fr 1fr}.report__nav,.report__actions{display:flex;gap:8px;flex-wrap:wrap}.report__sheet{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.report__title{margin:0 0 16px;font-size:var(--font-xl);text-transform:capitalize}.report__day{margin-bottom:18px;break-inside:avoid}.report__day-title{font-size:var(--font-lg);margin:0 0 6px;text-transform:capitalize}.report__day-count{color:var(--text-muted);font-weight:400;font-size:15px}.report__empty{color:var(--text-muted);margin:0;font-style:italic}.report__table{width:100%;border-collapse:collapse;font-size:16px}.report__table th,.report__table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:top}.report__table th{background:var(--surface-2);font-weight:600}@media print{.tabbar,.no-print,.app__main>*:not(.report){display:none!important}body,html,#root,.app{background:#fff!important;color:#000!important}.app__main{padding:0!important;overflow:visible!important}.report__sheet{box-shadow:none!important;border:0!important;padding:0!important}.report__day{page-break-inside:avoid}.report__table th{background:#eee!important}@page{margin:12mm}}
