:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--c-bg:#f6efdd;--c-bg-deep:#efe3c5;--c-text:#203427;--c-text-muted:#53694f;--c-text-soft:#73846e;--c-success:#5aaa4b;--c-fail:#e28a2d;--c-pending:#e7dcc1;font-family:Trebuchet MS,Avenir Next,Segoe UI,sans-serif;font-weight:500;line-height:1.45}*{box-sizing:border-box}html{background:radial-gradient(circle at top left, #87c26f3d, transparent 28%), radial-gradient(circle at top right, #e8845924, transparent 24%), linear-gradient(180deg, var(--c-bg), var(--c-bg-deep));min-height:100%}body{min-width:320px;min-height:100svh;color:var(--c-text-muted);margin:0}body:before,body:after{content:"";z-index:-1;filter:blur(40px);opacity:.6;border-radius:999px;position:fixed}body:before{background:#70bb6c38;width:180px;height:180px;top:72px;right:-30px}body:after{background:#e8815724;width:220px;height:220px;bottom:12%;left:-80px}button,a{transition:transform .16s,box-shadow .16s,opacity .16s}button{cursor:pointer}button,input,select,textarea{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3,strong{color:var(--c-text)}h1{letter-spacing:-.05em;font-size:clamp(2rem,6vw,3.6rem);line-height:.95}h2{letter-spacing:-.04em;font-size:clamp(1.45rem,4vw,2.1rem);line-height:1.05}h3{font-size:1rem}#root{width:min(100%,980px);margin:0 auto}.app-shell{min-height:100svh;padding:24px 18px 140px}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.brand-lockup{align-items:center;gap:14px;display:flex}.brand-lockup h1,.brand-lockup p{margin:0}.brand-mark{object-fit:cover;object-position:center;border-radius:22px;width:60px;height:60px;box-shadow:0 22px 45px #1a4e2e2e}.view-switch{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fdf9eedb;border:1px solid #445e4214;border-radius:999px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;display:inline-grid}.view-switch a{color:var(--c-text-muted);border-radius:999px;padding:10px 14px;font-weight:700;text-decoration:none;transition:background .18s,color .18s,transform .18s}.view-switch a.active{color:var(--c-text);background:#fff;box-shadow:0 10px 24px #374a301f}.main-grid{gap:18px;display:grid}.card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffaf1e6;border:1px solid #485b3f14;border-radius:28px;position:relative;overflow:hidden;box-shadow:0 24px 60px #3f4e3514}.calendar-panel{padding:20px}.calendar-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.calendar-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.ghost-button,.icon-button{font:inherit;color:var(--c-text);background:#ffffffe0;border:0;border-radius:999px;padding:11px 16px;font-weight:700;box-shadow:0 12px 20px #465d3914}.close-button{place-items:center;width:40px;height:40px;padding:0;font-size:1.4rem;line-height:1;display:inline-grid}.ghost-button[aria-label]{min-width:48px}.ghost-button span{justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:inline-flex}.ghost-button:hover,.icon-button:hover,.calendar-day:hover,.status-button:hover{transform:translateY(-1px)}.calendar-weekdays{color:var(--c-text-soft);text-transform:uppercase;letter-spacing:.1em;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:10px;font-size:.84rem;display:grid}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;display:grid}.calendar-day{text-align:left;background:#ffffffbd;border:1px solid #43613e14;border-radius:22px;min-height:92px;padding:12px;transition:transform .16s,border-color .16s,box-shadow .16s}.calendar-day.is-selected{border-color:#2e804866;box-shadow:0 14px 28px #2f7d4b24}.calendar-day.is-today .day-number{background:var(--c-success);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:28px;min-height:28px;display:inline-flex}.calendar-day.is-dimmed{opacity:.4}.day-number{color:var(--c-text);font-weight:800}.meal-dots{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.meal-dot{background:var(--c-pending);border-radius:999px;height:10px}.install-banner{z-index:35;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffbf3f5;border:1px solid #445e421a;border-radius:22px;justify-content:space-between;align-items:center;gap:14px;margin:0 0 16px;padding:14px 16px;display:flex;position:sticky;top:12px;box-shadow:0 18px 40px #3f4e351f}.install-banner__copy{gap:4px;display:grid}.install-banner__copy strong{color:var(--c-text);font-size:.98rem}.install-banner__copy span{color:var(--c-text-soft);font-size:.9rem}.install-banner__actions{flex-shrink:0;gap:8px;display:flex}.install-banner__primary,.install-banner__secondary{font:inherit;border:0;border-radius:999px;padding:10px 14px;font-weight:800}.install-banner__primary{background:var(--c-success);color:#fff}.install-banner__secondary{color:var(--c-text);background:#ffffffd1;box-shadow:inset 0 0 0 1px #475c4114}.stats-subtitle{color:#ffffffc7;max-width:36ch;margin:0}.stats-layout{gap:16px;display:grid}.stats-card{padding:20px}.stats-heading{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.stats-heading h2{margin:0;line-height:1}.stats-subtitle{max-width:42ch;margin-top:4px}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.metric{background:#ffffffd1;border-radius:16px;padding:14px}.metric span,.metric strong{display:block}.metric strong{color:var(--c-text);margin-top:4px;font-size:1.5rem}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#1e221461;place-items:start center;padding:8px 10px 10px;display:grid;position:fixed;inset:0}.day-modal{background:radial-gradient(circle at top,#82be692e,#0000 28%),#fffaf2;border-radius:30px;flex-direction:column;width:min(100%,520px);height:calc(100svh - 18px);padding:16px 16px 14px;display:flex;overflow:hidden;box-shadow:0 28px 70px #1d2c1640}.modal-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding-bottom:0;display:flex}.meal-list{flex:auto;gap:10px;min-height:0;display:grid}.meal-row{background:#ffffffb8;border:1px solid #445e4214;border-radius:20px;gap:10px;padding:12px 12px 10px;display:grid}.meal-row h3,.meal-row p{margin:0}.status-picker{flex-direction:row;gap:8px;display:flex}.status-button{min-height:38px;font:inherit;color:var(--c-text);background:#fff;border:0;border-radius:12px;flex:1 1 0;padding:8px 10px;font-size:.9rem;font-weight:700;box-shadow:inset 0 0 0 1px #475c4114}.status-button.is-active{box-shadow:inset 0 0 0 2px,0 12px 24px #4863461f}.status-button.tone-success,.status-button.tone-fail{place-items:center;font-size:0;display:grid}.status-button.tone-success:before,.status-button.tone-fail:before{font-size:1rem;font-weight:900;line-height:1}.status-button.tone-success:before{content:"✓"}.status-button.tone-fail:before{content:"×"}.reset-button{width:100%;margin-top:18px}.status-success,.tone-success{background:var(--c-success);color:#fff}.status-fail,.tone-fail{background:var(--c-fail);color:#fff}.status-pending,.tone-pending{background:var(--c-pending);color:var(--c-text)}.tone-neutral{background:#ffffffd1}.eyebrow{color:var(--c-text-soft);text-transform:uppercase;letter-spacing:.12em;margin:0 0 8px;font-size:.72rem;font-weight:800}@media (width<=820px){.app-shell{padding:18px 12px 120px}.topbar,.calendar-toolbar,.hero-card,.stats-heading{flex-direction:column;align-items:stretch}.modal-header{flex-direction:row;align-items:flex-start}.view-switch,.calendar-actions{width:100%}.view-switch a{text-align:center}.calendar-grid{gap:6px}.calendar-day{min-height:80px;padding:10px}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.install-banner{flex-direction:column;align-items:stretch;position:static}.install-banner__actions{justify-content:flex-end}.stats-highlight{grid-template-columns:1fr}.stats-ring{width:min(100%,180px)}}
