@import url("https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&display=swap");:root{--page:#edeeea;--app:#faf9f6;--card:#ffffff;--card-soft:#f8f8f5;--border:#d9ddd5;--text:#20241e;--muted:#4d564c;--subtle:#737b70;--green:#3b6e52;--green-dark:#29553d;--green-soft:#e4eee8;--orange:#93401e;--orange-soft:#f6e3d8;--danger:#9b3030;--radius-lg:20px;--radius-md:14px;--shadow:0 2px 8px rgba(30,35,25,0.04);--shadow-raised:0 8px 22px rgba(30,35,25,0.06)}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body,html{background:var(--page)}body{min-height:100%;margin:0;padding:32px 16px;color:var(--text);font-family:Atkinson Hyperlegible,Arial,sans-serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #1d5a8c;outline-offset:3px}.app-frame{display:flex;width:min(1180px,100%);min-height:660px;margin:0 auto 56px;overflow:hidden;border:1px solid #d8ddd4;border-radius:22px;background:var(--app);box-shadow:0 16px 36px rgba(30,35,25,.1)}.app-shell{flex:1 1;min-width:0;padding:30px 40px}.topnav{display:flex;width:230px;flex:0 0 230px;flex-direction:column;padding:22px 16px;border-right:1px solid var(--border);background:linear-gradient(180deg,#f5f3ed,var(--app) 140px)}.nav-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 26px;font-size:19px;font-weight:700}.nav-brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:var(--green);box-shadow:0 3px 8px rgba(59,110,82,.28)}.nav-brand-mark svg,.nav-icon svg{width:18px;height:18px}.nav-links{display:grid;grid-gap:4px;gap:4px}.nav-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1.5px solid transparent;border-radius:11px;color:var(--muted);text-decoration:none}.nav-link:hover{background:#f1f3ef}.nav-link-active{border-color:var(--green);color:var(--green-dark);background:var(--green-soft)}.nav-icon,.nav-icon-shell{display:inline-grid;place-items:center;width:18px;height:18px}.nav-label{font-size:16px;font-weight:700}.nav-foot{margin:auto 8px 4px;padding-top:12px;color:var(--subtle);font-size:13px}.panel-grid{display:grid;grid-gap:24px;gap:24px}.panel-grid-wide{grid-template-columns:minmax(245px,.82fr) minmax(0,1.18fr)}.single-column{grid-template-columns:minmax(0,1fr)}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow)}.page-header,.today-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.page-header h1,.page-title,.today-header h1{margin:0 0 3px;font-size:30px;font-weight:700;letter-spacing:0;line-height:1.15}.meta-text,.page-header p,.shopping-subtitle,.today-date-label{margin:0;color:var(--muted);font-size:16px}.section-title{margin:0;font-size:23px;font-weight:700;line-height:1.2}.editor-kicker,.eyebrow,.field span,.ingredient-header>span{color:var(--muted);font-size:14px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.error-text,.feedback-error{color:var(--danger)}.inline-feedback{margin:12px 0 0;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:9px;background:var(--app);color:var(--text);padding:10px 12px}textarea{line-height:1.5;resize:vertical}.field{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px}button{border:0;border-radius:10px;padding:10px 18px;color:#fff;background:var(--green);font-weight:700;box-shadow:0 4px 10px rgba(59,110,82,.22)}button:hover{background:var(--green-dark)}button:disabled{cursor:not-allowed;opacity:.55}.mini-button,.secondary-button{border:1px solid var(--border);color:var(--muted);background:transparent;box-shadow:none}.mini-button:hover,.secondary-button:hover{background:#f1f3ef;color:var(--text)}.mini-button{padding:7px 10px;font-size:14px}.mini-button.danger{color:var(--danger)}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.planner-layout{grid-template-columns:minmax(0,1.15fr) minmax(300px,1fr);align-items:start}.planner-editor-card,.planner-week-card{padding:0;border:0;background:transparent;box-shadow:none}.planner-day-list{display:grid;grid-gap:10px;gap:10px}.day-card{display:grid;grid-template-columns:54px minmax(0,1fr);grid-gap:12px;gap:12px;width:100%;padding:0;color:inherit;box-shadow:none;text-align:left}.day-card,.day-card:hover{background:transparent}.calendar-stamp{display:grid;min-height:78px;place-content:center;grid-gap:2px;gap:2px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--app);box-shadow:var(--shadow);text-align:center}.calendar-stamp-month{color:var(--subtle);font-size:13px;font-weight:700;text-transform:uppercase}.calendar-stamp-day{font-size:23px;font-weight:700;line-height:1.1}.planner-meal-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--app);box-shadow:var(--shadow)}.planner-empty-dropzone,.planner-meal-card{display:flex;align-items:center;min-height:78px;padding:14px 18px}.planner-empty-dropzone{gap:10px;border:1.5px dashed var(--subtle);border-radius:var(--radius-md);background:transparent}.day-card-selected .calendar-stamp,.day-card-selected .planner-empty-dropzone,.day-card-selected .planner-meal-card{border:2px solid var(--green);box-shadow:0 8px 18px rgba(59,110,82,.1)}.planner-meal-body{min-width:0}.day-meal-name{margin:0;font-size:19px;font-weight:700;line-height:1.25}.planner-meal-meta{margin-top:2px;color:var(--muted);font-size:15px}.planner-empty-plus{display:grid;width:24px;height:24px;place-items:center;border-radius:8px;color:var(--green-dark);background:var(--green-soft);font-weight:700}.planner-empty-label{color:var(--subtle);font-size:16px;font-weight:700}.planner-calendar-summary{margin:12px 0 0 66px;color:var(--subtle);font-size:13px}.planner-editor-surface{position:-webkit-sticky;position:sticky;top:20px;padding:22px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--app);box-shadow:var(--shadow-raised)}.planner-editor-header{margin-bottom:10px}.editor-kicker{margin:0 0 4px;color:var(--subtle)}.planner-editor-help{margin:8px 0 14px;color:var(--muted);font-size:16px}.planner-more-options{margin-top:14px;color:var(--muted)}.planner-more-options summary{cursor:pointer;font-weight:700}.swap-panel{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.today-page{display:block}.today-meal-name{position:relative;overflow:hidden;margin-bottom:20px;padding:26px 28px;border:2px solid var(--green);border-radius:var(--radius-lg);background:var(--card-soft);box-shadow:0 8px 20px rgba(59,110,82,.08)}.today-meal-name:before{content:"";position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:var(--green-soft);opacity:.6}.today-meal-meta{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.today-meal-meta span{padding:5px 12px;border-radius:99px;color:var(--green-dark);background:var(--green-soft);font-size:14px;font-weight:700}.today-meal-meta span:last-child{color:var(--orange);background:var(--orange-soft)}.today-meal-name h2{position:relative;margin:0 0 8px;font-size:30px;line-height:1.15}.today-meal-name p{position:relative;margin:0;color:var(--muted)}.today-columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-bottom:20px}.today-section{padding:18px 20px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--shadow)}.today-section h3{display:flex;justify-content:space-between;margin:0 0 12px;color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.03em}.today-ingredients-list,.today-method-list{display:grid;grid-gap:0;gap:0;margin:0;padding:0;list-style:none}.today-ingredients-list li{padding:9px 0;border-bottom:1px solid var(--border);font-weight:700}.today-ingredients-list li:before{content:"";display:inline-block;width:16px;height:16px;margin-right:10px;vertical-align:-3px;border:1.5px solid var(--green);border-radius:5px}.today-ingredients-list li:last-child{border-bottom:0}.today-method-step{display:grid;grid-template-columns:26px 1fr;grid-gap:10px;gap:10px;padding:8px 0}.today-method-number{display:grid;width:24px;height:24px;place-items:center;border-radius:6px;color:var(--green-dark);background:var(--green-soft);font-size:14px;font-weight:700}.today-method,.today-method-step p{margin:0;color:var(--muted)}.today-footline{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-radius:var(--radius-md);background:var(--orange-soft)}.today-footline a,.today-footline span{color:var(--orange);font-weight:700}.today-footline a{text-decoration:none;border-bottom:2px solid #c1592f}.meal-editor-card,.meals-preview-card,.meals-source-card{padding:20px;background:var(--app)}.meals-quick-select{margin-bottom:24px}.meals-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.meals-section-heading .section-title{margin-bottom:4px}.meals-section-heading .meal-result-count{margin:0;white-space:nowrap}.popular-meal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.popular-meal-button{display:grid;min-height:126px;align-content:space-between;grid-gap:12px;gap:12px;padding:16px;border:1px solid var(--border);color:var(--text);background:var(--card);box-shadow:var(--shadow);text-align:left}.popular-meal-button:hover{border-color:var(--green);background:#f5f8f4}.popular-meal-button-active{border:2px solid var(--green);color:var(--green-dark);background:var(--green-soft);box-shadow:0 5px 14px rgba(59,110,82,.12)}.popular-meal-button strong{font-size:18px;line-height:1.25}.popular-meal-button span{color:var(--muted);font-size:14px;font-weight:700}.popular-meal-button em{color:var(--orange);font-size:13px;font-style:normal;font-weight:700}.meal-library-search{width:min(620px,100%);margin:18px auto 0}.meal-autocomplete{position:relative}.meal-search-suggestions{position:absolute;z-index:2;top:calc(100% + 6px);right:0;left:0;display:grid;grid-gap:2px;gap:2px;max-height:300px;margin:0;padding:6px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:var(--shadow-raised);list-style:none}.meal-search-suggestions button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:10px;border-radius:7px;color:var(--text);background:transparent;box-shadow:none;text-align:left}.meal-search-suggestions button:hover{background:var(--green-soft)}.meal-search-suggestions small{color:var(--muted);font-size:13px;font-weight:700}.meal-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.meal-filter{padding:7px 10px;border:1px solid var(--border);color:var(--muted);background:transparent;box-shadow:none;font-size:14px}.meal-filter:hover{color:var(--text);background:#f1f3ef}.meal-filter-active{border-color:var(--green);color:var(--green-dark);background:var(--green-soft)}.meal-result-count{margin:0 0 10px;color:var(--muted);font-size:14px}.ingredient-list,.meal-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.meal-tab{width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;color:var(--text);background:var(--app);box-shadow:none;text-align:left}.meal-tab:hover{background:#f1f3ef}.meal-tab-active{border:2px solid var(--green);color:var(--green-dark);background:var(--app)}.meal-tab span,.meal-tab strong{display:block}.meal-tab strong{font-size:17px}.meal-status{margin-top:4px;color:var(--orange)!important;font-size:14px;font-weight:700}.meals-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.primary-link-button{display:inline-block;padding:10px 18px;border-radius:10px;color:#fff;background:var(--green);box-shadow:0 4px 10px rgba(59,110,82,.22);font-weight:700;text-decoration:none;white-space:nowrap}.primary-link-button:hover{background:var(--green-dark)}.meals-preview-section{margin-top:22px}.meals-preview-section h3{margin:0 0 10px;color:var(--muted);font-size:15px;text-transform:uppercase;letter-spacing:.03em}.meal-preview-list{display:grid;grid-gap:0;gap:0;margin:0;padding:0;list-style:none}.meal-preview-list li{padding:9px 0;border-bottom:1px solid var(--border)}.meal-preview-list li:last-child{border-bottom:0}.meal-method-preview{margin:0;white-space:pre-wrap}.meal-import-section,.meal-notes{margin-top:22px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.meal-import-section summary,.meal-notes summary{cursor:pointer;color:var(--green-dark);font-weight:700}.meal-notes p{margin:10px 0 0;white-space:pre-wrap}.meals-editor-section{margin-top:20px}.ingredient-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.ingredient-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;align-items:center}.meal-editor-page{max-width:820px;margin:0 auto}.meal-editor-page-header{margin-bottom:18px}.back-link{margin:0 0 8px;padding:0;color:var(--green-dark);background:transparent;box-shadow:none}.back-link:hover{color:var(--green);background:transparent;text-decoration:underline}.meal-import-section .meta-text{margin:10px 0 16px}.meal-editor-actions{padding-top:20px;border-top:1px solid var(--border)}.shopping-layout{max-width:760px;margin:0 auto}.shopping-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0;border:0;background:transparent;box-shadow:none}.shopping-summary{display:grid;min-width:92px;place-items:center;padding:10px;border-radius:10px;color:#fff;background:var(--green)}.shopping-summary strong{font-size:28px}.shopping-summary span{font-size:14px;font-weight:700}.settings-form-surface,.shopping-list-card{padding:20px;background:var(--app)}.shopping-view-tabs{display:flex;gap:4px;margin:-4px 0 20px;padding:4px;border-radius:10px;background:#f1f3ef}.shopping-view-tab{flex:1 1;padding:8px 10px;border:0;border-radius:7px;color:var(--muted);background:transparent;box-shadow:none}.shopping-view-tab span{margin-left:4px}.shopping-view-tab-active{color:var(--text);background:var(--card);box-shadow:0 1px 3px rgb(0 0 0/.12)}.shopping-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.shopping-add-form{display:flex;gap:8px;margin-bottom:18px}.shopping-add-form input{flex:1 1}.shopping-items{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.shopping-section+.shopping-section{margin-top:20px}.shopping-section h3{margin:0 0 8px;color:var(--muted);font-size:16px}.shopping-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.shopping-check{width:24px;height:24px;padding:0;border:1.5px solid var(--green);border-radius:6px;color:#fff;background:transparent;box-shadow:none}.shopping-item-have{opacity:.7}.shopping-item-have .shopping-check{background:var(--green)}.shopping-item-have strong{text-decoration:line-through}.cupboard-rename{margin-left:auto;padding:6px 10px}.shopping-item-copy{flex:1 1;min-width:0}.shopping-item-copy span,.shopping-item-copy strong{display:block}.shopping-item-copy span{color:var(--muted);font-size:14px}.shopping-remove{padding:0;color:var(--muted);background:transparent;box-shadow:none;font-size:24px}.empty-state{padding:14px;border-radius:10px;color:var(--muted);background:#f1f3ef}.settings-simple-header{margin-bottom:18px}.account-page,.people-page{max-width:820px;margin:0 auto}.account-page-header{margin-bottom:20px}.account-role,.people-count{display:inline-flex;align-items:center;min-height:32px;padding:5px 11px;border-radius:99px;color:var(--green-dark);background:var(--green-soft);font-size:14px;font-weight:700;white-space:nowrap}.account-content{display:grid;grid-gap:14px;gap:14px}.account-section,.people-section{padding:22px;background:var(--app)}.account-section .section-title{margin-bottom:16px}.account-details-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 14px;gap:0 14px}.account-details-form .field{margin-bottom:0}.account-form-actions{grid-column:1/-1;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.account-toggle{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer}.account-toggle input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--green)}.account-toggle span{display:grid;grid-gap:2px;gap:2px}.account-toggle small{color:var(--muted);font-size:15px}.account-signout{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:50px;padding:4px 0}.account-signout .form-error,.account-signout .inline-feedback{margin:0}.auth-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:var(--page)}.auth-card{width:min(440px,100%);padding:30px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--app);box-shadow:var(--shadow-raised)}.auth-card h1{margin:0 0 6px;font-size:30px;line-height:1.15}.auth-card>p:not(.auth-brand){margin:0 0 24px;color:var(--muted)}.auth-brand{margin:0 0 14px;color:var(--green-dark);font-size:16px;font-weight:700}.auth-card form{display:grid;grid-gap:14px;gap:14px}.auth-card label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-weight:700}.auth-card .primary-button{width:100%}.form-error{margin:0;color:var(--danger);font-weight:700}.people-page{display:grid;grid-gap:18px;gap:18px}.people-page>.page-header{margin-bottom:2px}.people-section-header{margin-bottom:16px}.people-section-header .section-title{margin-bottom:4px}.people-list{display:grid;grid-gap:10px;gap:10px}.person-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--card)}.person-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.person-edit-form{display:grid;width:100%;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.person-edit-form .account-toggle,.person-edit-form .button-row{grid-column:1/-1}.person-edit-form .account-toggle{padding:10px}.person-details{min-width:0}.person-details>span,.person-details>strong{display:block}.person-details>span{margin-top:2px;overflow:hidden;color:var(--muted);font-size:15px;text-overflow:ellipsis;white-space:nowrap}.person-statuses{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.person-statuses span{padding:2px 8px;border-radius:99px;color:var(--muted);background:#f1f3ef;font-size:13px;font-weight:700}.person-statuses .person-status-admin{color:var(--green-dark);background:var(--green-soft)}.reminder-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;border-bottom:1px solid var(--border)}.reminder-row:last-child{border-bottom:0}.reminder-row span{color:var(--muted);font-size:15px}@media (max-width:900px){body{padding:0;font-size:17px}.app-frame{display:block;width:100%;min-height:100vh;margin:0;border:0;border-radius:0}.topnav{width:100%;flex:none;flex-direction:row;align-items:center;padding:12px 16px;border-right:0;border-bottom:1px solid var(--border)}.nav-brand{margin-right:auto;padding:0}.nav-brand>span:last-child,.nav-foot,.nav-label{display:none}.nav-links{display:flex;gap:4px}.nav-link{padding:9px}.app-shell{padding:22px 20px}.panel-grid-wide,.planner-layout,.today-columns{grid-template-columns:1fr}.popular-meal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.meals-section-heading{align-items:flex-start;flex-direction:column}.planner-editor-surface{position:static}.today-header{align-items:stretch}.ingredient-row{grid-template-columns:1fr}.meal-editor-page-header,.meals-preview-header{flex-direction:column}.account-details-form{gap:14px}.account-details-form,.person-edit-form{grid-template-columns:1fr}.account-form-actions{margin-top:4px}.account-signout,.reminder-row{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}