:root{color:#20302a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #1e70583d}.app-shell{background:#f4f6f3;min-height:100vh;padding:28px clamp(20px,5vw,64px) 64px}.app-header{border-bottom:1px solid #d8ded9;justify-content:space-between;align-items:center;width:min(100%,1040px);margin:0 auto;padding-bottom:24px;display:flex}.brand{color:#16231e;margin:0;font-size:1.5rem;font-weight:760;line-height:1.1}.tagline{color:#5e6c66;margin:6px 0 0;font-size:.92rem}.brand-link{text-decoration:none;display:inline-block}.home-intro{text-align:center;width:min(100%,760px);margin:56px auto 0}.home-intro h1{color:#17241f;margin:10px 0 0;font-size:clamp(2rem,6vw,3.4rem);line-height:1.08}.home-intro>p:last-child{color:#52615a;max-width:680px;margin:18px auto 0;font-size:1.08rem;line-height:1.7}.auth-state{color:#4f5d57;align-items:center;gap:8px;margin:0;font-size:.9rem;font-weight:650;display:flex}.auth-state span{background:#1e7058;border-radius:50%;width:8px;height:8px}.auth-state--loading span,.auth-state--signed-out span{background:#87928d}.auth-state--error span{background:#b14f42}.auth-panel{background:#fff;border:1px solid #d4dad5;border-radius:8px;width:min(100%,560px);min-height:420px;margin:40px auto 0;padding:36px;box-shadow:0 18px 45px #1e302a14}.site-footer{color:#65726c;border-top:1px solid #d8ded9;justify-content:space-between;align-items:center;gap:24px;width:min(100%,1040px);margin:56px auto 0;padding-top:24px;font-size:.88rem;display:flex}.site-footer p{margin:0}.site-footer nav{gap:20px;display:flex}.site-footer a{color:#315f50;text-underline-offset:3px;font-weight:680}.public-page-shell{background:#f4f6f3;min-height:100vh;padding:28px clamp(20px,5vw,64px) 48px}.public-page-header{border-bottom:1px solid #d8ded9;width:min(100%,760px);margin:0 auto;padding-bottom:24px}.legal-page{background:#fff;border:1px solid #d4dad5;border-radius:8px;width:min(100%,760px);margin:48px auto 0;padding:clamp(28px,6vw,48px);box-shadow:0 18px 45px #1e302a14}.legal-page h1{color:#17241f;margin:10px 0 0;font-size:clamp(2rem,6vw,3rem);line-height:1.12}.legal-page h2{color:#20302a;margin:32px 0 10px;font-size:1.22rem}.legal-page p,.legal-page li{color:#52615a;line-height:1.7}.legal-page ul{gap:10px;margin:14px 0 0;padding-left:22px;display:grid}.legal-page .legal-updated{color:#7a8680;margin:8px 0 28px;font-size:.86rem}.chat-panel,.reminders-panel,.shopping-lists-panel,.meal-plan-panel,.recipes-panel,.integrations-panel{background:#fff;border:1px solid #d4dad5;border-radius:8px;width:min(100%,760px);margin:28px auto 0;padding:36px;box-shadow:0 18px 45px #1e302a14}.week-navigation,.meal-quick-add,.recipe-layout{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.meal-week-table{grid-template-columns:minmax(5.5rem,.65fr) repeat(7,minmax(7rem,1fr));gap:.4rem;margin:1rem 0;display:grid;overflow-x:auto}.meal-week-table>h3,.meal-week-row>h4{margin:0;padding:.5rem;font-size:.82rem}.meal-week-row{display:contents}.meal-cell{border:1px solid #dce4df;border-radius:.5rem;min-height:3.5rem;padding:.35rem}.meal-card{overflow-wrap:anywhere;background:#f4f6f3;border-radius:.6rem;gap:.3rem;margin-bottom:.35rem;padding:.45rem;display:grid}.meal-card--dinner{border-left:4px solid #1e7058}.meal-card-actions{flex-wrap:wrap;gap:.25rem;display:flex}.meal-card .secondary-button{width:auto;min-height:1.8rem;padding:.2rem .4rem;font-size:.72rem}.meal-empty-slot{color:#819087;border:1px dashed #ccd7d0;border-radius:.4rem;place-items:center;min-height:1.8rem;display:grid}.meal-quick-add input,.meal-quick-add select{min-height:2.7rem}.meal-slot-settings{gap:.5rem;margin-top:1.25rem;display:grid}.meal-slot-settings h3{margin-bottom:.25rem}.meal-slot-settings>div{grid-template-columns:1fr auto 2rem auto;align-items:center;gap:.4rem;display:grid}.meal-slot-settings .secondary-button{width:2rem;min-height:2rem;padding:0}.meal-slot-settings output{text-align:center}.recipe-layout{align-items:flex-start}.recipe-list{min-width:14rem;padding:0;list-style:none}.recipe-detail{flex:1;min-width:min(100%,22rem)}.shopping-list-controls,.shopping-list-form{align-items:end;gap:.75rem;margin-top:1rem;display:flex}.shopping-list-controls label,.shopping-list-form label{font-weight:600}.shopping-list-controls select,.shopping-list-form input{flex:1;min-width:0}.shopping-items{margin:1rem 0;padding:0;list-style:none}.shopping-items li{border-bottom:1px solid #d8d5ce;padding:.45rem 0}.shopping-items label{align-items:center;gap:.65rem;display:flex}.completed-shopping-items span{opacity:.7;text-decoration:line-through}.integrations-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.integrations-heading h2{color:#17241f;margin:8px 0 0;font-size:1.55rem}.integrations-heading .primary-button{margin:0}.integrations-panel>p{color:#5b6963}.success-message{color:#1e5d44;background:#edf7f1;border:1px solid #b9d6c6;border-radius:6px;padding:10px 12px}.calendar-setup{gap:18px;margin-top:24px;display:grid}.calendar-setup form{background:#f8faf8;border:1px solid #dce3de;border-radius:8px;gap:10px;padding:18px;display:grid}.calendar-setup label{color:#33423c;font-size:.88rem;font-weight:680}.calendar-setup input{color:#17241f;background:#fff;border:1px solid #bfc8c1;border-radius:6px;width:100%;padding:10px 12px}.calendar-setup .primary-button{width:fit-content;margin:2px 0 0}.calendar-setup-proposal{margin-top:24px}.calendar-preferences{background:#f8faf8;border:1px solid #dce3de;border-radius:8px;gap:10px;margin-top:24px;padding:18px;display:grid}.calendar-preferences h3,.calendar-preferences p{margin:0}.calendar-preferences label{color:#33423c;font-size:.88rem;font-weight:680}.calendar-preferences select{color:#17241f;background:#fff;border:1px solid #bfc8c1;border-radius:6px;width:100%;padding:10px 12px}.calendar-preferences .primary-button{width:fit-content;margin:2px 0 0}.calendar-preferences small{color:#68756f}.calendar-list{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.calendar-list li{border-bottom:1px solid #e4e8e5;justify-content:space-between;gap:16px;padding:10px 0;display:flex}.calendar-list small{color:#68756f}.chat-heading h2{color:#17241f;letter-spacing:0;margin:8px 0 0;font-size:1.55rem;line-height:1.2}.conversation{gap:12px;min-height:180px;max-height:440px;padding:4px 0 20px;display:grid;overflow-y:auto}.chat-message{background:#f7f9f7;border:1px solid #dce2dd;border-radius:8px;width:min(88%,600px);padding:12px 14px}.chat-message--user{background:#e9f2ee;border-color:#bfd4cb;justify-self:end}.chat-message p{overflow-wrap:anywhere;white-space:pre-wrap;margin:0;line-height:1.5}.chat-actions{border-top:1px solid #dce2dd;gap:8px;margin:12px 0 0;padding:10px 0 0;list-style:none;display:grid}.chat-actions li{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.chat-actions span{overflow-wrap:anywhere}.chat-actions small,.model-label,.chat-thinking{color:#6b7872;font-size:.76rem}.chat-proposal{border-top:1px solid #dce2dd;margin-top:12px;padding-top:12px}.chat-proposal h3{color:#1c2b25;letter-spacing:0;margin:0;font-size:.95rem;line-height:1.35}.chat-proposal>p{color:#52615a;margin-top:6px}.chat-proposal-buttons{gap:8px;margin-top:12px;display:flex}.chat-proposal-buttons .primary-button,.chat-proposal-buttons .secondary-button{min-height:38px;margin:0}.model-label{margin-top:10px;display:block}.chat-thinking{margin:4px 0 0}.chat-error{margin-bottom:14px}.chat-form{border-top:1px solid #e0e5e1;align-items:flex-end;gap:12px;padding-top:18px;display:flex}.chat-form textarea{resize:vertical;color:#17241f;background:#fff;border:1px solid #bfc8c1;border-radius:6px;flex:1;min-width:0;min-height:48px;padding:11px 12px}.chat-form .primary-button{min-width:76px;margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.panel-heading{margin-bottom:28px}.panel-heading h1,.loading-state h1{color:#17241f;letter-spacing:0;margin:8px 0 0;font-size:2rem;line-height:1.18}.reminders-heading h2{color:#17241f;letter-spacing:0;margin:8px 0 0;font-size:1.55rem;line-height:1.2}.panel-heading>p:last-child{color:#66736d;margin:10px 0 0;line-height:1.5}.section-label{color:#a04f42;letter-spacing:0;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:760}.signed-in-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.login-form{gap:10px;display:grid}.login-form label{color:#33423c;font-size:.9rem;font-weight:680}.login-form input{color:#17241f;background:#fff;border:1px solid #bfc8c1;border-radius:6px;width:100%;height:46px;margin-bottom:10px;padding:0 12px}.reminders-heading,.reminder-form-footer,.reminder-item{align-items:center;display:flex}.reminders-heading{justify-content:space-between;gap:20px}.reminder-filters{background:#f1f4f1;border:1px solid #ccd4ce;border-radius:7px;min-height:38px;padding:3px;display:flex}.filter-button{color:#52615a;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:0 12px}.filter-button.is-active{color:#183b2f;background:#fff;box-shadow:0 1px 4px #1e302a1f}.reminder-form{border-bottom:1px solid #e0e5e1;gap:8px;margin-bottom:28px;padding-bottom:28px;display:grid}.reminder-form label{color:#33423c;font-size:.88rem;font-weight:680}.reminder-form>input,.reminder-form textarea,.reminder-form-footer input{color:#17241f;background:#fff;border:1px solid #bfc8c1;border-radius:6px;width:100%;padding:10px 12px}.reminder-form textarea{resize:vertical;margin-bottom:8px}.reminder-form-footer{justify-content:space-between;gap:16px}.reminder-form-footer label{flex:1;gap:6px;display:grid}.reminder-form-footer .primary-button{align-self:flex-end;margin:0;padding:0 18px}.reminder-error{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.reminder-error .error-message{margin:0}.reminder-list{display:grid}.reminder-item{border-bottom:1px solid #e4e8e5;gap:14px;min-height:78px;padding:14px 0}.reminder-item:last-child{border-bottom:0}.status-button{color:#fff;cursor:pointer;background:#fff;border:2px solid #7f8d86;border-radius:50%;flex:0 0 26px;place-items:center;width:26px;height:26px;padding:0;display:grid}.reminder-item--completed .status-button{background:#1e7058;border-color:#1e7058;font-size:.62rem;font-weight:800}.reminder-content{flex:1;min-width:0}.reminder-content h3,.reminder-content p{overflow-wrap:anywhere}.reminder-content h3{color:#1c2b25;letter-spacing:0;margin:0;font-size:1rem;line-height:1.35}.reminder-content p{color:#5b6963;white-space:pre-wrap;margin:5px 0 0;line-height:1.45}.reminder-content time{color:#9a4c40;margin-top:7px;font-size:.82rem;font-weight:650;display:block}.reminder-item--completed .reminder-content h3{color:#718078;text-decoration:line-through}.delete-button{color:#8a443a;cursor:pointer;background:0 0;border:0;min-height:36px;padding:0 10px}.delete-button:hover:not(:disabled){text-decoration:underline}.status-button:disabled,.delete-button:disabled{cursor:not-allowed;opacity:.55}.empty-state{color:#68756f;text-align:center;margin:0;padding:22px 0 6px}.login-form input:disabled{color:#78847e;background:#eef1ee}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:6px;min-height:42px;font-weight:720}.primary-button{color:#fff;background:#1e7058;margin-top:8px;padding:0 18px}.secondary-button{color:#283a33;background:#e8ede9;padding:0 16px}.primary-button:hover:not(:disabled){background:#175c49}.secondary-button:hover:not(:disabled){background:#dce4de}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.62}.error-message{color:#7e332a;background:#fbefed;border-left:3px solid #b14f42;margin:0 0 24px;padding:12px 14px;line-height:1.45}.loading-state{padding-top:8px}.account-details{border-top:1px solid #e0e5e1;padding-top:24px}.account-details>p{color:#5b6963;margin:0}.account-details dl{gap:22px;margin:0;display:grid}.account-details dl>div{gap:6px;display:grid}.account-details dt{color:#65726c;text-transform:uppercase;font-size:.78rem;font-weight:700}.account-details dd{color:#1c2b25;overflow-wrap:anywhere;margin:0;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.9rem;line-height:1.45}.admin-usage-panel{border-top:2px solid #243c34;margin-top:48px;padding-top:34px}.admin-usage-panel h2,.admin-usage-panel h3{color:#1c2b25;letter-spacing:0;margin:0}.admin-loading{color:#5b6963}.usage-totals{border-top:1px solid #d7ded9;border-left:1px solid #d7ded9;grid-template-columns:repeat(3,minmax(0,1fr));margin:26px 0 34px;display:grid}.usage-totals>div{border-bottom:1px solid #d7ded9;border-right:1px solid #d7ded9;min-width:0;padding:16px}.usage-totals dt{color:#68756f;text-transform:uppercase;font-size:.76rem;font-weight:700}.usage-totals dd{color:#17241f;overflow-wrap:anywhere;margin:7px 0 0;font-size:1.15rem;font-weight:720}.usage-report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;display:grid}.usage-report-grid h3{margin-bottom:14px;font-size:1rem}.usage-table-wrap{overflow-x:auto}.usage-table-wrap table{border-collapse:collapse;width:100%;font-size:.84rem}.usage-table-wrap th,.usage-table-wrap td{text-align:right;white-space:nowrap;border-bottom:1px solid #dfe5e1;padding:10px 8px}.usage-table-wrap th:first-child,.usage-table-wrap td:first-child{text-align:left}.usage-table-wrap th{color:#68756f;font-weight:700}.usage-forecast{color:#42534b;margin:28px 0 0;font-size:.9rem}@media (width<=600px){.app-shell{padding:22px 16px 40px}.app-header,.signed-in-heading{align-items:flex-start}.app-header{gap:20px}.tagline{max-width:190px}.auth-panel{min-height:0;margin-top:36px;padding:26px 22px}.home-intro{margin-top:38px}.chat-panel,.reminders-panel,.shopping-lists-panel,.meal-plan-panel,.recipes-panel,.integrations-panel{margin-top:20px;padding:26px 22px}.meal-week-table{grid-template-columns:minmax(5rem,.6fr) repeat(7,minmax(6.5rem,1fr))}.chat-form{flex-direction:column;align-items:stretch}.chat-form .primary-button{width:100%}.chat-proposal-buttons{flex-direction:column;align-items:stretch}.chat-proposal-buttons .primary-button,.chat-proposal-buttons .secondary-button{width:100%}.reminders-heading,.reminder-form-footer{flex-direction:column;align-items:stretch}.reminder-filters{width:100%}.filter-button{flex:1;min-width:0;padding:0 6px}.reminder-form-footer .primary-button{width:100%}.signed-in-heading{flex-direction:column}.integrations-heading{flex-direction:column;align-items:stretch}.secondary-button{width:100%}.site-footer{flex-direction:column;align-items:flex-start}.legal-page{margin-top:32px;padding:26px 22px}.usage-totals,.usage-report-grid{grid-template-columns:1fr}}
