:root{color:#253044;background:#fff8ef;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45;text-size-adjust:100%;--coral: #ff7a59;--coral-dark: #e95b40;--blue: #39a9ff;--green: #35c486;--yellow: #ffd45a;--red: #ff5f73;--ink: #253044;--muted: #6a7688;--surface: rgba(255, 255, 255, .92);--line: rgba(37, 48, 68, .1);--shadow: 0 16px 40px rgba(74, 57, 36, .14)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(135deg,rgba(255,122,89,.18),rgba(255,212,90,.2) 38%,rgba(57,169,255,.16) 100%),#fff8ef}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}input,select,textarea{width:100%;min-height:46px;border:1px solid rgba(37,48,68,.14);border-radius:8px;background:rgba(255,255,255,.96);color:var(--ink);padding:11px 12px;outline:none}textarea{min-height:84px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #39a9ff26}.app-shell{min-height:100vh;min-height:100dvh}.page-shell{width:min(100%,760px);min-height:100vh;min-height:100dvh;margin:0 auto;padding:calc(16px + env(safe-area-inset-top)) 16px calc(104px + env(safe-area-inset-bottom))}.today-hero,.page-heading{border-radius:8px;color:#fff;box-shadow:var(--shadow)}.today-hero{min-height:148px;display:flex;align-items:flex-end;padding:20px;background:linear-gradient(135deg,rgba(255,122,89,.96),rgba(255,166,72,.92) 55%,rgba(53,196,134,.9)),var(--coral)}.today-hero h1,.page-heading h1{margin:0;font-size:2.3rem;line-height:1.05;letter-spacing:0}.today-hero p,.page-heading p{margin:8px 0 0}.eyebrow{margin:0 0 4px;color:inherit;font-size:.75rem;font-weight:800;letter-spacing:0;text-transform:uppercase;opacity:.78}.quick-stats,.stat-cards{display:grid;gap:10px;margin:14px 0}.quick-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-stats article,.stat-cards article,.loading-card,.error-card{min-height:86px;border:1px solid rgba(255,255,255,.74);border-radius:8px;background:var(--surface);box-shadow:0 10px 24px #4a392414;padding:14px}.quick-stats span,.stat-cards span,.loading-card span,.error-card span{display:block;color:var(--muted);font-size:.84rem}.quick-stats strong,.stat-cards strong{display:block;margin-top:5px;color:var(--ink);font-size:1.35rem}.panel,.calendar-panel{margin-top:14px;border:1px solid rgba(255,255,255,.8);border-radius:8px;background:var(--surface);box-shadow:0 12px 30px #4a392414;padding:14px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title h2{margin:0;font-size:1.12rem;line-height:1.18}.muted{color:var(--muted)}.timeline{display:grid;gap:10px}.record-card{width:100%;min-height:76px;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:stretch;gap:8px;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--ink);padding:0 8px 0 0;text-align:left}.record-main{min-width:0;display:grid;grid-template-columns:8px 50px minmax(0,1fr);align-items:stretch;gap:10px;border:0;background:transparent;color:var(--ink);padding:0;text-align:left;cursor:pointer}.record-main:active,.food-main:active,.calendar-day:active{transform:scale(.99)}.record-accent{width:8px;border-radius:8px 0 0 8px}.accent-blue{background:var(--blue)}.accent-coral{background:var(--coral)}.accent-yellow{background:var(--yellow)}.accent-red{background:var(--red)}.accent-green{background:var(--green)}.record-time{align-self:center;color:var(--muted);font-size:.82rem;font-weight:700}.record-body{min-width:0;align-self:center;display:grid;gap:2px;padding:10px 0}.record-body strong,.food-main strong,.solid-summary strong{min-width:0;overflow-wrap:anywhere}.record-kicker,.record-detail,.record-note,.food-meta{color:var(--muted);font-size:.82rem}.record-note{overflow-wrap:anywhere}.icon-button,.round-add{width:40px;height:40px;min-width:40px;display:inline-grid;place-items:center;border:0;border-radius:999px;background:rgba(255,255,255,.8);color:var(--ink);font-size:1.45rem;font-weight:700;line-height:1;cursor:pointer}.record-card .icon-button{align-self:center;justify-self:center;color:var(--muted)}.danger{color:var(--red)}.empty-state{min-height:96px;display:grid;place-items:center;border:1px dashed rgba(37,48,68,.18);border-radius:8px;color:var(--muted);padding:18px;text-align:center}.empty-state.compact{min-height:60px;margin-bottom:10px}.fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(78px + env(safe-area-inset-bottom));min-width:132px;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--coral);color:#fff;box-shadow:0 14px 30px #e95b4057;font-weight:800;cursor:pointer}.fab span{font-size:1.35rem;line-height:1}.bottom-tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:760px;margin:0 auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid rgba(37,48,68,.08);background:rgba(255,255,255,.88);backdrop-filter:blur(22px)}.tab-button{min-height:52px;display:grid;place-items:center;gap:4px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:800;cursor:pointer}.tab-button.active{background:rgba(255,122,89,.12);color:var(--ink)}.tab-dot{width:20px;height:8px;border-radius:999px}.tab-dot.coral{background:var(--coral)}.tab-dot.blue{background:var(--blue)}.tab-dot.green{background:var(--green)}.tab-dot.yellow{background:var(--yellow)}.modal-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:rgba(37,48,68,.32);padding:14px 12px calc(14px + env(safe-area-inset-bottom))}.sheet{width:min(100%,720px);max-height:min(88vh,760px);overflow:auto;border-radius:8px;background:#fffaf4;box-shadow:0 24px 80px #25304447;padding:16px}.sheet-header{position:sticky;top:-16px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-16px -16px 14px;padding:16px;background:rgba(255,250,244,.96);backdrop-filter:blur(16px)}.sheet-header h2{margin:0;font-size:1.2rem}.segmented{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-bottom:12px;padding:4px;border-radius:8px;background:rgba(37,48,68,.08)}.segmented button{min-height:40px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:.78rem;font-weight:800;cursor:pointer;overflow-wrap:anywhere}.segmented button.selected{background:#ffffff;color:var(--coral-dark);box-shadow:0 4px 12px #4a392414}.segmented button:disabled{opacity:1}.field,.search-field{display:grid;gap:7px;margin-bottom:12px;color:var(--muted);font-size:.86rem;font-weight:800}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.amount-grid{grid-template-columns:minmax(0,1fr) 126px}.check-row{min-height:48px;display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--ink);font-weight:800}.check-row input{width:22px;min-height:22px;accent-color:var(--coral)}.sheet-actions{position:sticky;bottom:-16px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:14px -16px -16px;padding:14px 16px 16px;background:rgba(255,250,244,.96);backdrop-filter:blur(16px)}.primary-button,.secondary-button,.small-add-button{min-height:48px;border:0;border-radius:8px;font-weight:900;cursor:pointer}.primary-button{background:var(--coral);color:#fff}.secondary-button{background:rgba(37,48,68,.08);color:var(--ink)}.small-add-button{min-height:40px;width:auto;max-width:150px;flex:0 0 auto;border-radius:999px;background:var(--coral);color:#fff;padding:8px 12px;font-size:.82rem;line-height:1.15;white-space:normal}.page-heading{min-height:110px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px}.foods-heading{background:linear-gradient(135deg,rgba(53,196,134,.96),rgba(57,169,255,.88)),var(--green)}.calendar-heading{background:linear-gradient(135deg,rgba(57,169,255,.96),rgba(116,204,120,.88)),var(--blue)}.stats-heading{background:linear-gradient(135deg,rgba(255,212,90,.98),rgba(255,122,89,.9)),var(--yellow)}.search-field{margin:14px 0}.food-list{display:grid;gap:10px}.food-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.94);padding:10px;box-shadow:0 8px 18px #4a39240f}.food-main{min-width:0;display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:10px;border:0;background:transparent;color:var(--ink);padding:0;text-align:left;cursor:pointer}.food-avatar{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;background:rgba(255,212,90,.46);color:#8a5a00;font-weight:900}.food-main span:last-child{min-width:0;display:grid;gap:2px}.food-meta{overflow-wrap:anywhere}.food-side{display:grid;justify-items:end;gap:6px}.status-pill,.age-pill{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:900;white-space:nowrap}.status-untested{background:rgba(106,118,136,.14);color:#506074}.status-tried{background:rgba(53,196,134,.18);color:#147c54}.status-observing{background:rgba(255,212,90,.28);color:#8a5a00}.status-suspicious{background:rgba(255,122,89,.18);color:#b2432a}.status-allergic{background:rgba(255,95,115,.18);color:#b12b42}.calendar-panel{padding:10px}.week-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week-row span{min-height:28px;display:grid;place-items:center;color:var(--muted);font-size:.72rem;font-weight:900}.calendar-grid{gap:5px}.calendar-day{min-width:0;min-height:70px;display:grid;grid-template-rows:22px minmax(0,1fr);gap:2px;border:1px solid rgba(37,48,68,.08);border-radius:8px;background:#ffffff;color:var(--ink);padding:6px;text-align:left;cursor:pointer}.calendar-day.muted-day{opacity:.42}.calendar-day.today{border-color:#ff7a598c}.calendar-day.selected{background:rgba(57,169,255,.14);border-color:var(--blue)}.day-number{font-size:.86rem;font-weight:900}.day-tags{min-width:0;display:grid;align-content:start;gap:2px}.day-tags span{min-width:0;overflow:hidden;border-radius:999px;background:rgba(255,122,89,.14);color:#b2432a;padding:1px 5px;font-size:.62rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.solid-summary-list{display:grid;gap:8px;margin-bottom:12px}.solid-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;border-radius:8px;background:rgba(255,122,89,.1);padding:10px}.solid-summary span:last-child{grid-column:1 / -1;color:var(--muted);font-size:.82rem}.meal-plan{background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,248,239,.94)),#ffffff}.age-pill{background:rgba(57,169,255,.14);color:#1475ad}.meal-list{display:grid;gap:8px;margin:12px 0}.meal-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;border-radius:8px;background:rgba(53,196,134,.1);padding:10px}.meal-time{color:#147c54;font-weight:900}.meal-item p{margin:3px 0 0;color:var(--muted);font-size:.88rem}.tip-list{display:flex;flex-wrap:wrap;gap:6px}.tip-list span{border-radius:999px;background:rgba(255,212,90,.24);color:#8a5a00;padding:5px 9px;font-size:.76rem;font-weight:800}.chart-panel{margin-top:14px}.bar-chart{display:grid;gap:10px}.bar-row{min-height:32px;display:grid;grid-template-columns:52px minmax(0,1fr) 74px;align-items:center;gap:9px;font-size:.82rem}.bar-row span{color:var(--muted);font-weight:800}.bar-row strong{text-align:right;font-size:.78rem}.bar-track{height:12px;overflow:hidden;border-radius:999px;background:rgba(37,48,68,.08)}.bar-fill{height:100%;border-radius:inherit}.milk-chart .bar-fill{background:var(--blue)}.poop-chart .bar-fill{background:var(--yellow)}.loading-card,.error-card{display:grid;align-content:center;gap:8px;min-height:160px;margin-top:20vh}.error-card strong{color:var(--red)}@media (max-width: 390px){.page-shell{padding-left:12px;padding-right:12px}.today-hero h1,.page-heading h1{font-size:1.9rem}.quick-stats article,.stat-cards article{padding:12px 9px}.record-card{grid-template-columns:minmax(0,1fr) 34px;gap:8px}.record-main{grid-template-columns:7px 44px minmax(0,1fr);gap:8px}.segmented{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-day{min-height:62px;padding:5px}.day-tags span{font-size:.58rem}}
