:root{--teal:#38a3a5;--mint:#48b89f;--emerald:#57cc99;--lime:#80ed99;--tea:#c7f9cc;--ink:#193d35;--muted:#6d8179;--line:#e0e9e2;--paper:#f6f8f3;--deep:#216b60}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--teal);outline-offset:3px}button{border:1px solid var(--line);background:white;color:var(--ink);border-radius:10px;padding:10px 16px;transition:background .15s,transform .15s}button:hover{background:#edf7ef}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--deep);border-color:var(--deep);color:white}.primary:hover{background:#174f47}.secondary{background:#e5f4e9;border-color:#c6dfcf}.danger{color:#a03434}.quiet{background:transparent;border:0;padding:5px 8px}.sidebar{position:fixed;width:230px;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--line);padding:32px 21px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;line-height:1.08;font-size:23px;letter-spacing:-.8px}.brand b{font-weight:500}.brandmark{font-family:Georgia,serif;font-size:48px;background:var(--tea);border-radius:18px;width:53px;text-align:center;color:var(--deep)}.navlabel{font-size:10px;letter-spacing:1.7px;color:var(--muted);margin:48px 12px 12px}nav{display:grid;gap:7px}nav a,.sidebarbottom>a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;font-size:14px;color:#63776d}nav a.active,.sidebarbottom>a.active{background:#e4f4e8;color:var(--deep);font-weight:650}nav a small{margin-left:auto;border-radius:6px;background:white;padding:0 6px}.sidebarbottom{margin-top:auto}.garden-note{background:#f1f7ed;padding:18px;border-radius:14px;margin:32px 0 22px;position:relative}.garden-note>span{font-size:25px;color:var(--mint);position:absolute;right:15px;top:12px}.garden-note p{font:25px/1.2 Georgia,serif;margin:2px 0 10px}.garden-note small{font-size:11px;color:var(--muted)}.account{border-top:1px solid var(--line);margin-top:18px;padding:16px 10px 0;color:var(--muted);font-size:12px}.shell{margin-left:230px}header{height:82px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:#ffffffb0}.crumb{font-size:10px;letter-spacing:1.3px;color:var(--muted)}.crumb span{margin:0 14px;color:#b9c5bd}.crumb b{font-weight:500;color:var(--ink);letter-spacing:0;font-size:12px}.headright{display:flex;align-items:center;gap:20px}#saveStatus{font-size:11px;color:var(--muted)}.avatar{border:0;background:var(--tea);height:35px;width:35px;border-radius:50%;padding:0;font-size:11px}main{max-width:1540px;margin:auto;padding:36px 40px 50px}h1{font:42px/1.15 Georgia,serif;letter-spacing:-1.1px;margin:0 0 10px}h2{font:25px/1.25 Georgia,serif;letter-spacing:-.4px;margin:0}h3{font-size:15px;margin:0 0 7px}p{margin:6px 0 15px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;font-weight:600;color:var(--deep);margin-bottom:13px}.titlebar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.actions{display:flex;gap:9px;flex-wrap:wrap}.hero{background:#e4f3df;border:1px solid #d5e9cd;border-radius:18px;min-height:170px;padding:27px 32px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;margin-bottom:30px}.hero h2{font-size:29px;margin-bottom:10px}.hero p{color:#59715b;font-size:13px;max-width:390px;margin-bottom:0}.hero-art{width:200px;height:145px;flex-shrink:0}.sectionbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}.weeknav{display:flex;align-items:center;gap:12px}.weeknav button{padding:5px 12px}.weeklabel{font-size:13px;font-weight:600;min-width:145px;text-align:center}.pill{font-size:11px;background:#e8f3e9;color:#50745b;border-radius:20px;padding:5px 10px}.planner{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.day{background:#fff;border:1px solid var(--line);border-radius:13px;min-height:238px;overflow:hidden}.day.today{border-color:var(--mint);box-shadow:0 0 0 1px var(--mint)}.dayhead{padding:13px 12px;border-bottom:1px solid #eef2eb;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.dayhead b{font-size:17px;letter-spacing:0;font-weight:500;color:var(--ink)}.dropzone{min-height:175px;padding:10px}.dropzone.over{background:#c7f9cc66}.dayempty{width:100%;min-height:151px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;border:1px dashed #dce6da;color:#8b9b8a;font-size:11px;background:#fbfcf9}.dayempty span{font-size:24px;font-weight:200}.meal{position:relative}.meal img,.meal .foodart{width:100%;height:81px;object-fit:cover;border-radius:8px}.meal h3{font-size:12px;line-height:1.35;margin:9px 0 6px}.meal small{font-size:10px;color:var(--muted)}.meal>button{position:absolute;right:2px;top:2px;background:#fffffff0;border:0;padding:0 5px;font-size:15px}.belowplanner{margin-top:34px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}.card{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden;position:relative}.card img,.card>.foodart{height:172px;width:100%;object-fit:cover;display:block}.cardbody{padding:17px}.card h3{font:21px/1.2 Georgia,serif;margin:6px 0 10px}.cardmeta{font-size:11px;color:var(--muted);display:flex;gap:12px}.card .tag{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--deep)}.cardfoot{display:flex;justify-content:space-between;align-items:center;margin-top:14px}.cardfoot button{font-size:11px;padding:6px 10px}.foodart{background:linear-gradient(145deg,#d3e9cf,#f0f3dd);display:flex;align-items:center;justify-content:center}.foodart svg{height:100%;max-width:100%}.empty{border:1px dashed #c9dbcb;border-radius:16px;background:#ffffff85;text-align:center;padding:42px 20px;grid-column:1/-1}.empty .symbol{font-size:39px;color:var(--mint);line-height:1.2}.empty h2{margin:12px 0}.empty p{max-width:420px;margin:10px auto 20px;color:var(--muted);font-size:13px}.searchbar{display:flex;gap:12px;margin-bottom:24px}.searchbar input{max-width:420px;margin:0}.filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.filter button{border-radius:22px;font-size:12px;padding:6px 14px}.filter button.active{background:var(--deep);color:white;border-color:var(--deep)}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:25px;margin-bottom:20px}.panel p{font-size:13px;color:var(--muted)}.panelrow{display:flex;justify-content:space-between;align-items:center;gap:20px}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settingsgrid .panel{margin:0}.connection{display:flex;align-items:center;gap:12px;margin-bottom:18px}.connection .logo{width:42px;height:42px;border-radius:12px;background:#e5f4e8;display:grid;place-items:center;font-size:21px;font-weight:700}.badge{font-size:10px;color:#637769;background:#f0f3ed;padding:4px 8px;border-radius:20px;display:inline-block}.notice{padding:13px 16px;background:#eaf3e8;border-radius:10px;font-size:12px;color:#536d57;margin:15px 0}.warning{background:#fff4dd;color:#7b622a}.row{display:flex;gap:14px}.row>*{flex:1}label{font-size:12px;font-weight:600;display:block;margin:15px 0 6px}input,textarea,select{border:1px solid #d6e1d8;background:#fff;border-radius:9px;padding:11px 12px;width:100%;color:var(--ink);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 2px #38a3a51a}textarea{resize:vertical;min-height:120px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--deep);flex-shrink:0}input[type=file]{font-size:12px}dialog{border:0;border-radius:20px;padding:0;width:min(730px,calc(100vw - 28px));max-height:90dvh;color:var(--ink);box-shadow:0 20px 100px #193d3540}dialog::backdrop{background:#173b3260;backdrop-filter:blur(4px)}.modalhead{display:flex;align-items:center;justify-content:space-between;padding:24px 27px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.modalhead h2{font-size:26px}.modalbody{padding:22px 27px 28px}.modalfoot{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.recipephoto{width:100%;max-height:270px;object-fit:cover;border-radius:12px;margin-bottom:20px}.detailcols{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;margin-top:25px}.ingredients{list-style:none;padding:0;margin:14px 0 19px}.ingredients li{padding:9px 0;border-bottom:1px solid #eef2ec;font-size:13px}.checkline{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:400;margin:0;padding:10px 0;border-bottom:1px solid #eef2ec}.steps{padding-left:20px;margin-top:15px}.steps li{padding:0 0 17px 6px;font-size:13px;line-height:1.65}.steps li::marker{color:var(--deep);font-weight:bold}.recipeactions{display:flex;gap:8px;margin-top:20px}.recipeactions button{font-size:12px}.grocerygroup{margin:22px 0}.grocerygroup>h3{font-family:Georgia,serif;font-size:20px}.groceryitem{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:10px 0}.groceryitem label{margin:0;flex:1;display:flex;gap:12px;align-items:center;font-weight:400;font-size:14px}.groceryitem.checked label span{text-decoration:line-through;color:var(--muted)}.groceryitem button{margin-left:auto}.palette{display:flex;height:40px;border-radius:9px;overflow:hidden;margin:16px 0}.palette span{flex:1}footer{padding:20px 40px;border-top:1px solid var(--line);color:#88978b;font-size:10px;display:flex;justify-content:space-between}#toast{position:fixed;bottom:25px;left:calc(50% + 80px);transform:translateX(-50%);padding:13px 22px;background:var(--ink);color:white;border-radius:12px;font-size:13px;box-shadow:0 8px 25px #193d3522;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw}#toast.show{opacity:1}.small{font-size:12px}.inline-error{color:#a03434;margin-top:10px;font-size:12px}.hidden{display:none!important}.split{display:flex;justify-content:space-between;align-items:center;gap:12px}.localtag{font-size:10px;letter-spacing:.4px;color:#7f6f47;background:#f5eedf;border-radius:5px;padding:4px 7px}.filepreview{max-height:130px;max-width:100%;border-radius:9px;margin-top:10px}
@media(min-width:1500px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1200px){.sidebar{width:205px;padding:26px 16px}.shell{margin-left:205px}main{padding:28px 25px}.planner{gap:7px}.dayhead{padding:11px 8px}.dropzone{padding:6px}.meal h3{font-size:11px}.grid{gap:13px}.card h3{font-size:19px}}@media(max-width:980px){.planner{grid-template-columns:repeat(4,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{width:145px}.settingsgrid{grid-template-columns:1fr}h1{font-size:36px}.titlebar{align-items:flex-start}.titlebar>.actions{justify-content:flex-end}.day{min-height:220px}}@media(max-width:700px){.sidebar{width:auto;inset:auto 0 0;height:68px;flex-direction:row;padding:6px 5px;border:0;border-top:1px solid var(--line);background:#fff}.brand,.navlabel,.sidebarbottom{display:none}nav{display:flex;width:100%;justify-content:space-around;gap:0}nav a{padding:5px 8px;flex-direction:column;gap:2px;font-size:17px;border-radius:8px}nav a span{font-size:9px}nav a small{display:none}.shell{margin-left:0;padding-bottom:68px}header{height:59px;padding:0 18px}.headright{gap:12px}#saveStatus{font-size:9px}.crumb{font-size:9px}.crumb span{margin:0 7px}main{padding:25px 17px 35px}h1{font-size:34px}.titlebar{display:block;margin-bottom:22px}.titlebar>.actions{justify-content:flex-start;margin-top:17px}.titlebar p{font-size:13px}.hero{padding:20px;min-height:150px;margin-bottom:24px}.hero h2{font-size:25px}.hero-art{width:104px;height:115px;margin-right:-15px}.hero p{font-size:11px;max-width:210px}.sectionbar{flex-wrap:wrap}.sectionbar h2{font-size:24px}.planner{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.day{min-height:215px}.dayhead{padding:10px 12px}.dropzone{padding:9px}.meal h3{font-size:14px}.meal img,.meal .foodart{height:90px}.grid{gap:12px}.card>.foodart,.card img{height:120px}.cardbody{padding:12px}.card h3{font-size:18px}.cardmeta{font-size:10px;gap:8px}.cardfoot{gap:6px;flex-wrap:wrap}.cardfoot button{font-size:10px;padding:5px 8px}.pill{font-size:10px}.detailcols{grid-template-columns:1fr;gap:25px}.modalhead{padding:20px}.modalbody{padding:20px}.panel{padding:20px}.panelrow{flex-wrap:wrap}.row{flex-wrap:wrap}.row>*{flex-basis:100%}#toast{left:50%;bottom:82px}footer{padding:20px 18px}.garden-note{display:none}.weeknav{gap:7px}.weeklabel{min-width:135px}.empty{padding:30px 15px}}
/* Personal palettes */
:root{--soft:#e4f4e8;--hero:#e4f3df;--hero-border:#d5e9cd;--surface:#fff;--warm:#f1f7ed}
:root[data-theme=ocean]{--teal:#3684b4;--mint:#58a9bc;--emerald:#83cad0;--lime:#b0e0e1;--tea:#d9f0ef;--ink:#203e50;--muted:#657d8b;--line:#dce7ec;--paper:#f3f7f9;--deep:#245d80;--soft:#e2f0f7;--hero:#e1f0f2;--hero-border:#cde1e9;--warm:#eef5f8}
:root[data-theme=sand]{--teal:#a4794d;--mint:#bf9a68;--emerald:#d6bb87;--lime:#e8d7ad;--tea:#f5e9cd;--ink:#4d3c29;--muted:#89765f;--line:#e7dfd2;--paper:#faf7f1;--deep:#765433;--soft:#f1e7d5;--hero:#f0e6d0;--hero-border:#e3d5b9;--warm:#f6efe2}
:root[data-theme=berry]{--teal:#92517b;--mint:#b8789e;--emerald:#cd9cb9;--lime:#e3bfd3;--tea:#f2dce9;--ink:#4a2d40;--muted:#8b7182;--line:#e9dce5;--paper:#faf5f8;--deep:#783d62;--soft:#f2e3ed;--hero:#f0deea;--hero-border:#e2c9da;--warm:#f7edf3}
nav a.active,.sidebarbottom>a.active,.connection .logo,.secondary{background:var(--soft);color:var(--deep)}.hero{background:var(--hero);border-color:var(--hero-border)}.hero p,.pill,.notice{color:var(--deep)}.garden-note{background:var(--warm)}.pill,.notice{background:var(--soft)}.warning{background:#fff4dd;color:#7b622a}.primary:hover{background:var(--deep);filter:brightness(.9)}button:hover{background:var(--soft)}.primary{background:var(--deep)}.dayhead,.groceryitem,.ingredients li,.checkline{border-color:var(--line)}.dayempty{background:var(--paper);border-color:var(--line);color:var(--muted)}.foodart{background:linear-gradient(145deg,var(--tea),var(--warm))}.foodart svg path[fill="#48b89f"]{fill:var(--mint)}.garden-note>span{color:var(--mint)}
.bulk-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.bulk-actions button{padding:7px 11px}.account-control{position:relative}.avatar{overflow:hidden;width:39px;height:39px;display:grid;place-items:center;font-size:12px}.avatar img{width:100%;height:100%;object-fit:cover}.account-menu{position:absolute;right:0;top:49px;width:270px;border:1px solid var(--line);border-radius:14px;background:white;box-shadow:0 10px 40px #0002;z-index:25;overflow:hidden}.menu-identity{padding:17px;border-bottom:1px solid var(--line);word-break:break-word}.menu-identity small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.account-menu a,.account-menu>button{display:block;text-align:left;width:100%;border:0;border-radius:0;padding:13px 17px;font-size:13px}.account-menu a:hover{background:var(--soft)}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.theme-choice{text-align:left;padding:10px;border:2px solid var(--line);font-size:12px}.theme-choice.selected{border-color:var(--deep);background:var(--soft)}.theme-choice .palette{display:flex;height:26px;margin:0 0 9px}.theme-choice>span:last-child{font-weight:600}.planner-toolbar{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:23px}.view-tabs{display:flex;background:white;border:1px solid var(--line);padding:4px;border-radius:11px}.view-tabs button{border:0;font-size:12px;padding:8px 15px;background:transparent}.view-tabs button.active{background:var(--deep);color:white}.planner-toolbar .weeklabel{min-width:180px}.add-activity{border:1px dashed var(--line);width:100%;padding:9px 4px;font-size:11px;color:var(--muted);margin-top:8px}.meal{margin-bottom:15px}.meal-label{display:block;color:var(--deep);font-size:9px;text-transform:uppercase;letter-spacing:.6px;margin-top:7px}.meal h3{margin-top:3px}.day-view{grid-template-columns:1fr}.day-view .dayhead{padding:15px 24px}.day-view .dropzone{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.meal-slot{border:1px solid var(--line);border-radius:12px;padding:16px}.meal-slot h3{font:21px Georgia,serif}.expanded-meal{margin-top:15px;margin-bottom:0;padding-right:20px}.expanded-meal a{display:grid;grid-template-columns:70px 1fr;column-gap:13px}.expanded-meal img,.expanded-meal .foodart{grid-row:1/4;width:70px;height:70px}.expanded-meal h3{font:16px/1.3 system-ui;margin:3px 0}.expanded-meal .meal-label{margin-top:0}.expanded-meal>button{top:0;right:0}.month-scroll{overflow-x:auto}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line);border-radius:13px;overflow:hidden;min-width:600px}.weekday{background:var(--paper);padding:10px;text-align:center;font-size:10px;color:var(--muted);font-weight:600}.month-day{background:white;min-height:145px;padding:8px;position:relative;padding-bottom:33px}.month-day.outside{background:var(--paper);opacity:.65}.month-day.today{box-shadow:inset 0 0 0 2px var(--mint)}.calendar-date{border:0;padding:2px 5px;font-weight:600;font-size:12px}.calendar-entry{display:block;text-align:left;width:100%;border:0;border-radius:5px;padding:5px;background:var(--soft);margin-top:5px;font-size:10px;line-height:1.3;overflow-wrap:anywhere}.calendar-entry small{display:block;font-size:8px;color:var(--deep);margin-bottom:2px}.calendar-add{position:absolute;bottom:5px;right:7px;border:0;padding:1px 7px}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.mini-month{background:white;border:1px solid var(--line);border-radius:13px;padding:16px}.month-title{font:21px Georgia,serif;padding:0 0 13px;border:0;background:transparent}.mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}.mini-grid>span{font-size:9px;padding:4px}.mini-date{font-size:11px;padding:6px 0;border:0;position:relative}.mini-date.has-plans{background:var(--soft);font-weight:650}.mini-date i{display:block;width:3px;height:3px;background:var(--deep);border-radius:50%;position:absolute;bottom:2px;left:calc(50% - 1px)}.mini-date.today{outline:1px solid var(--mint)}.recipe-picker{display:grid;gap:10px;margin-top:18px}.dropzone.over,.meal-slot.over,.month-day.over{background:var(--tea)}
@media(max-width:1100px){.year-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.year-grid{grid-template-columns:1fr 1fr;gap:10px}.mini-month{padding:10px}.mini-grid{gap:1px}.mini-date{font-size:10px;padding:6px 0}.month-title{font-size:18px}.day-view .dropzone{grid-template-columns:1fr;padding:12px}.planner-toolbar .weeknav{width:100%;justify-content:space-between;flex-wrap:wrap}.planner-toolbar .weeklabel{min-width:0;font-size:11px}.view-tabs{width:100%}.view-tabs button{flex:1}.account-menu{right:0;width:260px}.meal{margin-bottom:14px}.theme-options{grid-template-columns:1fr 1fr}}@media(max-width:360px){.year-grid{grid-template-columns:1fr}}

.legal-header{height:auto;min-height:90px;gap:22px;flex-wrap:wrap}.legal-header nav{display:flex;gap:5px}.legal-page{max-width:850px;margin:0 auto;padding:45px 30px 65px}.legal-page h1{margin-bottom:25px}.legal-page h2{margin-top:30px;margin-bottom:12px}.legal-page p,.legal-page li{line-height:1.8;font-size:14px}.legal-page li{margin-bottom:10px}.legal-page a{color:var(--deep);text-decoration:underline}.legal-page code{font-size:12px;overflow-wrap:anywhere}.legal-header .brand{font-size:23px}@media(max-width:700px){.legal-header{padding:18px;justify-content:center}.legal-header .brand{display:flex}.legal-header nav{width:auto}.legal-header nav a{font-size:12px;padding:7px}.legal-page{padding:30px 20px}.legal-page h1{font-size:35px}}

.recipe-picker{max-height:50vh;overflow-y:auto;overscroll-behavior:contain}.recipe-picker [hidden],#pickEmpty[hidden]{display:none!important}
