:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#293c30;background:#f8f6f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink:#293c30;--muted:#778477;--green:#356348;--green-2:#587a5c;--light:#eaf1e7;--line:#e6e7dd;--white:#fffefa}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.63}button,input,textarea{outline-offset:2px}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8bb69a}a,button{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{overflow-wrap:anywhere}h1,h2,h3{color:var(--ink)}.app-shell{min-height:100dvh;padding-bottom:110px}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 max(23px,calc((100vw - 950px)/2));background:#fffefaf2;border-bottom:1px solid var(--line)}.brand-button{display:flex;align-items:center;gap:11px;border:0;background:none;padding:0;color:var(--ink)}.brand-button strong{font:700 24px Georgia,serif;letter-spacing:-.6px}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;color:#fff;background:var(--green)}.topbar-actions{display:flex;gap:8px}.icon-button{width:40px;height:40px;display:grid;place-items:center;background:var(--white);border:1px solid var(--line);border-radius:12px;color:var(--green)}.page-content{width:min(100%,970px);padding:28px 24px 80px;margin:auto}.eyebrow{text-transform:uppercase;font-weight:800;letter-spacing:1.35px;color:#67846b;font-size:10px;display:block;margin-bottom:8px}.page-title{margin-bottom:24px}.title-actions{display:flex;justify-content:space-between;gap:15px;align-items:center}.page-title h1,.home-welcome h1{font:700 clamp(29px,4vw,38px)/1.14 Georgia,serif;letter-spacing:-.9px;margin:0}.page-title p,.home-welcome p{font-size:14px;color:var(--muted);margin:9px 0 0;line-height:1.55}.go-back{display:inline-flex;align-items:center;gap:5px;background:none;border:0;color:var(--green);font-weight:700;font-size:13px;padding:0;margin:0 0 19px}.add-btn,.solid-btn,.primary-button{border:0;background:var(--green);color:#fff;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:700}.add-btn{min-height:39px;padding:0 15px;white-space:nowrap;font-size:13px}.solid-btn,.secondary-btn{min-height:41px;padding:0 17px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:10px}.secondary-btn{background:#f4f6ef;border:1px solid #dce5d8;color:var(--green)}.solid-btn:hover,.add-btn:hover{background:#2a523b}.surface-panel{background:var(--white);border:1px solid #ebeae2;border-radius:18px;padding:20px;box-shadow:0 4px 21px #182f1a06}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.panel-heading h2{font:700 20px Georgia,serif;margin:0;display:flex;align-items:center;gap:8px}.panel-heading h2 svg{color:var(--green-2)}.text-link{border:0;background:none;display:flex;align-items:center;color:var(--green);font-size:12px;font-weight:800;white-space:nowrap;padding:5px 0}.quiet{color:var(--muted);font-size:13px;margin:5px 0;line-height:1.6}.home-view{max-width:860px;margin:auto}.home-welcome{margin:0 0 23px}.home-section{margin-bottom:16px}.home-fixed-lists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.home-list{display:flex;flex-direction:column;align-items:flex-start;gap:7px;position:relative;min-width:0;border:1px solid #dfe8da;background:#f5f8f1;text-align:left;border-radius:13px;padding:16px 12px;min-height:97px}.home-list strong{font-size:14px;color:var(--ink)}.home-list span{font-size:12px;color:#738a76}.home-list svg{position:absolute;right:9px;top:14px;color:#9aab98}.meal-summary{display:grid;grid-template-columns:1fr 1fr;gap:11px}.meal-summary>div{background:#f4f7f1;border-radius:12px;padding:16px;min-width:0}.meal-summary span{font-size:12px;color:var(--green);font-weight:800}.meal-summary p{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5;margin:8px 0 0}.home-event{display:flex;align-items:center;gap:12px;min-height:55px;padding:12px 0;background:none;border:0;border-top:1px solid var(--line);text-align:left;width:100%;color:var(--ink)}.home-event>span{color:var(--green);font-size:12px;font-weight:800;min-width:56px}.home-event strong{font-size:14px;flex:1}.home-event small{color:var(--muted)}.home-event>svg{color:#8fa595}.lists-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.list-tile{display:flex;align-items:center;gap:14px;background:var(--white);border:1px solid var(--line);border-radius:16px;text-align:left;padding:18px 15px;min-height:94px;color:var(--ink)}.list-tile:hover,.recipe-row:hover{border-color:#aec9b4}.tile-icon{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;background:var(--light);color:var(--green);border-radius:14px}.list-tile-main{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.list-tile-main strong{font-size:16px}.list-tile-main small{color:var(--muted);font-size:12px}.tile-lock,.tile-arrow{color:#9baa9d;flex-shrink:0}.list-settings{display:flex;gap:17px;flex-wrap:wrap;margin-bottom:18px}.subtle-link{display:inline-flex;gap:6px;align-items:center;padding:6px 0;font-size:13px;font-weight:700;color:var(--green);border:0;background:none}.danger-text{color:#a65350!important}.item-section{max-width:700px}.add-item-row{display:flex;gap:8px;margin:12px 0 18px}.add-item-row input{height:46px;flex:1;min-width:0;border:1px solid #d9e2d6;border-radius:12px;background:#fff;padding:0 13px}.add-item-row button{width:46px;display:grid;place-items:center;background:var(--green);color:#fff;border:0;border-radius:12px}.items-sheet{background:var(--white);border:1px solid var(--line);border-radius:17px;padding:2px 16px}.item-slot+.item-slot{border-top:1px solid #eaece6}.item-display{display:flex;align-items:center;gap:6px;min-height:50px}.item-row{border:0;background:none;color:var(--ink);flex:1;text-align:left;padding:12px 0;font-size:15px;line-height:1.45;min-width:0}.item-delete{border:0;background:none;color:#a6afa3;display:grid;place-items:center;width:38px;height:40px;border-radius:9px}.item-delete:hover{background:#fff0eb;color:#a65350}.empty-items{font-size:13px;color:var(--muted);padding:20px 4px}.inline-edit{padding:13px 0}.inline-edit input{width:100%;height:43px;border:1px solid #a9c5aa;border-radius:10px;padding:0 11px}.inline-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:9px}.inline-actions button{border:0;background:none;color:var(--green);font-size:12px;font-weight:700;padding:5px 0}.fab{position:fixed;bottom:calc(95px + env(safe-area-inset-bottom));right:max(20px,calc((100vw - 960px)/2));z-index:15;width:55px;height:55px;display:grid;place-items:center;border-radius:18px;background:var(--green);color:#fff;border:0;box-shadow:0 6px 22px #2756354d}.search-box{height:47px;display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:0 14px;color:#8a9b8b;margin-bottom:15px}.search-box input{border:0;outline:0;background:transparent;width:100%;font-size:14px;color:var(--ink)}.recipe-row-list{display:grid;gap:9px}.recipe-row{display:flex;gap:14px;align-items:center;width:100%;padding:8px 12px 8px 8px;text-align:left;background:var(--white);border:1px solid var(--line);border-radius:15px;color:var(--ink);min-height:91px}.recipe-row img,.recipe-row-placeholder{height:76px;width:86px;flex-shrink:0;border-radius:11px;object-fit:cover}.recipe-row-placeholder{display:grid;place-items:center;color:#819e80;background:linear-gradient(135deg,#ecf0e4,#f7eddc)}.recipe-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.recipe-row-info strong{font-size:15px;line-height:1.3}.recipe-row-info small{font-size:12px;color:var(--muted)}.recipe-row>svg{color:#98a899}.recipe-hero-photo,.recipe-hero-placeholder{width:100%;max-height:360px;object-fit:cover;border-radius:19px;background:linear-gradient(135deg,#e8efe5,#f4e7d7)}.recipe-hero-placeholder{min-height:185px;display:grid;place-items:center;color:#8fab8d}.detail-actions{display:flex;gap:9px;align-items:center;margin:14px 0 19px}.more-wrap{position:relative}.popup-danger{position:absolute;z-index:11;top:44px;left:0;white-space:nowrap;background:#fff;border:1px solid #ecd9d5;box-shadow:0 6px 20px #0001;border-radius:10px;display:flex;align-items:center;gap:8px;padding:12px 15px;color:#a65350;font-weight:700;font-size:13px}.recipe-facts{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 19px;color:var(--green);font-size:13px;font-weight:700}.recipe-facts span{display:flex;align-items:center;gap:6px}.recipe-sections{display:grid;gap:12px}.recipe-sections h2,.event-detail h2{font:700 20px Georgia,serif;margin:0 0 12px}.preserve-lines{white-space:pre-wrap;line-height:1.7;color:#435248;font-size:14px;margin:0;overflow-wrap:anywhere}.calendar-panel{max-width:700px;padding:18px}.calendar-month-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-month-heading h2{text-align:center;font:700 21px Georgia,serif;text-transform:capitalize;margin:0}.round-arrow{border:1px solid var(--line);border-radius:11px;width:39px;height:39px;background:var(--white);color:var(--green);display:grid;place-items:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.weekday{text-align:center;font-size:12px;font-weight:800;color:#8c9c8a;padding:9px 0}.day-cell{min-width:0;aspect-ratio:1/1;max-height:67px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:11px;background:none;color:var(--ink);font-size:14px;font-weight:650}.day-cell.outside{color:#bac1b7}.day-cell.today{background:#edf5ec;color:var(--green);font-weight:850}.day-cell.selected{background:var(--green);color:#fff}.day-cell i{background:#79a77d;width:5px;height:5px;border-radius:50%}.day-cell.selected i{background:#fff}.day-event-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:22px 0 13px;max-width:700px}.day-event-title h2{text-transform:capitalize;font:700 20px Georgia,serif;margin:0}.day-event-title span{font-size:12px;color:var(--muted)}.day-events{max-width:700px;background:var(--white);border:1px solid var(--line);border-radius:15px;padding:0 15px}.day-event-row{width:100%;display:flex;gap:13px;align-items:center;text-align:left;border:0;background:none;color:var(--ink);padding:16px 3px;min-height:55px}.day-event-row+.day-event-row{border-top:1px solid var(--line)}.day-event-row strong{font-size:14px;flex:1}.day-event-row svg{color:#9ba89d}.day-event-time{font-size:12px;color:var(--green);width:77px;flex-shrink:0}.event-detail{max-width:700px}.event-detail>p{display:flex;gap:12px;align-items:flex-start;line-height:1.6;font-size:14px}.event-detail>p svg{flex-shrink:0;color:var(--green)}.event-detail section{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}.week-navigation{display:flex;align-items:center;justify-content:space-between;gap:13px;max-width:850px;margin:3px 0 15px}.week-navigation>div{text-align:center;display:flex;flex-direction:column;gap:5px}.week-navigation strong{font-size:14px}.week-navigation small{font-size:12px;color:var(--green)}.week-table{max-width:850px;border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--white)}.week-table-header,.week-table-row{display:grid;grid-template-columns:23% 38.5% 38.5%}.week-table-header{background:#e8f0e5;color:var(--green);font-size:12px;font-weight:850}.week-table-header>span{padding:13px 11px}.week-row-wrap+.week-row-wrap{border-top:1px solid var(--line)}.week-table-row{min-height:72px}.menu-date{display:flex;align-items:flex-start;padding:15px 11px;font-size:13px;font-weight:800;white-space:nowrap;text-transform:capitalize}.menu-cell{min-width:0;min-height:72px;padding:14px 11px;border:0;background:none;text-align:left;color:var(--ink);font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.menu-cell:hover,.menu-cell-active{background:#f1f7ef}.menu-cell em{font-size:12px;color:#acb5a9;font-style:normal}.menu-current-day .menu-date{color:var(--green);background:#f3f8f0}.menu-inline-editor{border-top:1px solid #d9e6d5;padding:16px;background:#f4f8f2}.menu-inline-editor label{font-weight:700;font-size:13px;display:block;color:var(--green)}.menu-inline-editor textarea{margin-top:10px}.menu-hint{display:flex;align-items:center;gap:8px;line-height:1.5}.form-panel{max-width:720px;background:var(--white);border:1px solid var(--line);border-radius:17px;padding:23px;display:grid;gap:17px;margin:16px 0}.form-panel h2{font:700 20px Georgia,serif;margin:0}.form-panel label{font-size:13px;font-weight:750;color:#536353;display:grid;gap:8px}.form-panel input,.form-panel textarea,.menu-inline-editor textarea{width:100%;min-width:0;border:1px solid #dce3d7;border-radius:11px;background:#fff;color:var(--ink);padding:12px 13px;font-size:14px;font-weight:400;line-height:1.5}.form-panel input{min-height:45px}.form-panel textarea,.menu-inline-editor textarea{resize:vertical}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px}.photo-upload{border:1px dashed #a6c5aa;border-radius:11px;display:flex!important;align-items:center;gap:10px;background:#f4f8f1;padding:14px;cursor:pointer;color:var(--green)!important}.photo-upload input{position:absolute;width:1px!important;height:1px;opacity:0;pointer-events:none}.photo-preview{width:180px;max-height:160px;object-fit:cover;border-radius:11px}.field-hint{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.inline-error{display:flex;align-items:flex-start;gap:8px;padding:11px;border-radius:10px;background:#fff2ec;color:#9b493c;font-size:13px}.inline-error svg{flex-shrink:0}.empty-box{background:var(--white);border:1px dashed #cbd9c8;border-radius:16px;padding:35px 20px;text-align:center;color:var(--ink)}.empty-box strong{font:700 19px Georgia,serif}.empty-box p{margin:8px 0 0;color:var(--muted);font-size:13px}.loading-state,.boot-screen{min-height:40vh;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--green);gap:13px}.boot-screen{min-height:100dvh}.loading-circle{width:25px;height:25px;border:3px solid #d9e7d7;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#fff3ed;border:1px solid #e7cfc0;border-radius:10px;color:#925545;font-size:13px;margin-bottom:18px}.error-banner>span{flex:1}.error-banner button{background:none;border:0;color:inherit;font-weight:800}.setup-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.setup-card{max-width:510px;width:100%;padding:30px}.setup-icon{display:grid;place-items:center;width:54px;height:54px;background:var(--light);border-radius:14px;color:var(--green)}.setup-card h1{font:700 28px Georgia,serif}.setup-card p{font-size:14px;color:var(--muted);line-height:1.6}.setup-card code{display:block;background:#f0f4ed;border-radius:8px;padding:11px;margin-bottom:7px;overflow-wrap:anywhere;font-size:12px}.bottom-nav{position:fixed;z-index:12;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(580px,calc(100vw - 20px));height:69px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#fffefa;border:1px solid #e5e8dd;border-radius:20px;padding:6px;box-shadow:0 10px 35px #19331c22}.nav-item{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border:0;border-radius:14px;background:none;color:#97a396;font-size:10px;font-weight:700}.nav-item.active{background:#e9f2e6;color:var(--green)}.nav-item span{white-space:nowrap}.login-layout{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:28px 18px;background:radial-gradient(ellipse at top left,#e3eee0 0,transparent 55%),#f8f6f0}.login-brand{display:flex;gap:10px;align-items:center;font:700 25px Georgia,serif;color:var(--ink)}.login-logo{width:42px;height:42px;display:grid;place-items:center;background:var(--green);border-radius:13px;color:#fff}.login-card{position:relative;width:min(100%,445px);margin:auto;background:var(--white);border:1px solid var(--line);padding:39px 30px;border-radius:24px;overflow:hidden;box-shadow:0 22px 70px #244b2a12}.login-sun{position:absolute;right:-28px;top:-65px;font-size:180px;color:#edf3e5;pointer-events:none}.login-kicker{position:relative;display:flex;align-items:center;gap:6px;color:var(--green);font-size:10px;letter-spacing:1.2px;font-weight:850}.login-card h1{position:relative;font:700 36px/1.15 Georgia,serif;letter-spacing:-1px;margin:17px 0 12px}.login-card>p{font-size:14px;color:var(--muted);line-height:1.6;margin:0 0 25px}.login-card form{display:flex;flex-direction:column;gap:8px}.login-card label{font-size:12px;font-weight:800;color:#506c54}.login-card input{width:100%;height:46px;border:1px solid #dce5d7;border-radius:11px;background:#fff;padding:0 13px;margin:0 0 10px}.password-field{position:relative}.password-field input{padding-right:48px}.password-field button{position:absolute;right:9px;top:9px;border:0;background:none;color:#8a9e8c;padding:5px}.primary-button{height:48px;margin-top:10px}.form-error{font-size:13px;padding:9px;background:#fff2ed;color:#9a5344;border-radius:8px}.login-footer{font-size:12px;color:#829983;text-align:center}.start-error{position:fixed;top:0;left:0;right:0;z-index:99}@media(min-width:800px){.home-fixed-lists{gap:13px}.home-list{min-height:113px}.recipe-row-list{grid-template-columns:1fr 1fr}.page-content{padding-top:36px}.home-view{max-width:770px}}@media(max-width:600px){.topbar{padding:0 17px;height:64px}.page-content{padding:25px 16px 85px}.home-fixed-lists{gap:7px}.home-list{padding:12px 8px;min-height:86px}.home-list strong{font-size:13px}.home-list span{font-size:11px}.home-list svg{display:none}.surface-panel{padding:17px}.panel-heading h2{font-size:18px}.panel-heading h2 svg{width:16px}.meal-summary{grid-template-columns:1fr;gap:8px}.meal-summary>div{padding:12px}.lists-grid{grid-template-columns:1fr;gap:9px}.list-tile{min-height:80px}.recipe-row img,.recipe-row-placeholder{width:81px;height:72px}.calendar-panel{padding:10px}.day-cell{border-radius:8px;font-size:13px}.calendar-month-heading{padding:7px}.weekday{padding:7px 0}.week-table-header,.week-table-row{grid-template-columns:24% 38% 38%}.week-table-header>span,.menu-date,.menu-cell{padding-left:7px;padding-right:7px}.menu-date,.menu-cell{font-size:12px}.menu-cell em{font-size:11px}.form-panel{padding:15px}.form-grid-2{gap:9px}.add-btn{padding:0 11px}.bottom-nav{width:calc(100vw - 14px);height:66px;bottom:max(7px,env(safe-area-inset-bottom))}.nav-item{font-size:10px}.fab{right:18px;bottom:calc(88px + env(safe-area-inset-bottom))}}@media(max-width:370px){.panel-heading h2{font-size:16px}.text-link{font-size:11px}.home-list strong{font-size:12px}.home-list span{font-size:10px}.nav-item{font-size:9px}.nav-item svg{width:20px}.week-table-header>span,.menu-date,.menu-cell{padding-left:5px;padding-right:5px}.menu-cell{font-size:11px}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}
