:root{--paper:#f6f7f0;--white:#fffefa;--ink:#263b2c;--green:#2f6449;--green-dark:#234f38;--muted:#8a9380;--line:#e7ebde;--font:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;background:none;color:inherit;padding:0;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c5a864;outline-offset:4px}a{color:inherit;text-decoration:none}svg{width:24px;height:24px;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.app-shell{max-width:500px;margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--paper)}.topbar{height:91px;display:flex;align-items:center;justify-content:space-between;padding:14px 24px 8px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:750;letter-spacing:1px;min-height:48px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:var(--green);color:#fafbea}.brand-mark svg{width:25px;height:25px;stroke-width:1.5}.brand small{display:block;font-weight:400;font-size:10px;letter-spacing:1px;color:var(--muted);margin-top:3px}.help-trigger{display:flex;align-items:center;gap:6px;min-height:44px;color:#637357;font-size:11px}.help-trigger svg{width:18px;height:18px}.app-shell main{padding:5px 24px 150px}.hero{position:relative;display:flex;align-items:center;min-height:188px;padding:25px 23px;isolation:isolate;border-radius:25px;background:#e5edcf;overflow:hidden}.hero:after{content:"";position:absolute;width:220px;height:220px;right:-102px;top:-85px;border:1px solid #d4dfbb;border-radius:50%;z-index:-1}.hero-label{display:flex;align-items:center;gap:6px;font-size:10px;color:#6d825a;letter-spacing:2px;font-weight:600}.hero-label>span{width:5px;height:5px;background:#76955c;border-radius:50%}.hero h1{font-size:32px;font-weight:800;letter-spacing:-1px;line-height:1.3;margin:13px 0 9px}.hero p{font-size:12px;color:#71815e;line-height:1.8;letter-spacing:.4px}.hero-copy{position:relative;z-index:2}.hero-art{position:absolute;right:-8px;top:32px;width:158px;height:158px;transform:rotate(7deg)}.meal-plate{width:100%;height:100%;stroke:none;fill:unset}.spark{position:absolute;z-index:1;color:#8a9f62}.spark-a{top:7px;right:16px;font-size:18px}.spark-b{bottom:9px;left:3px;font-size:22px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:29px 0 15px;gap:6px}.section-heading h2{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:700;letter-spacing:.3px}.step{color:#99a48b;font-size:10px;font-weight:500;letter-spacing:1px}.tiny-label{font-size:9px;color:#9aa28f;letter-spacing:.2px}.category-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.category-card{position:relative;display:flex;align-items:center;text-align:left;gap:13px;min-height:92px;padding:16px 14px;border:1.5px solid transparent;border-radius:18px;transition:background .15s,border-color .15s}.category-card[aria-pressed=true]{border-color:var(--green);box-shadow:0 3px 0 #2f644909}.category-card[aria-pressed=true]:after{content:"✓";position:absolute;right:10px;top:7px;color:var(--green);font-size:12px}.category-card.amber{background:#f4ead5}.category-card.green{background:#e8eddf}.category-card.purple{background:#ebe8f1}.category-card.pink{background:#f3e7df}.category-icon{width:33px;height:40px;display:grid;place-items:center;flex-shrink:0}.category-icon svg{width:29px;height:29px;stroke-width:1.45}.category-card.amber .category-icon{color:#b58d43}.category-card.green .category-icon{color:#6b8b58}.category-card.purple .category-icon{color:#8e83a5}.category-card.pink .category-icon{color:#b3886f}.category-copy{min-width:0}.category-name{font-size:16px;font-weight:700;display:block;margin:0 0 6px}.category-caption{font-size:9px;color:#859078;display:block;white-space:nowrap;letter-spacing:.2px}.plan-card{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:8px 18px}.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px}.plan-label{font-size:13px;font-weight:600}.plan-label small{display:block;font-size:9px;color:#9aa18e;font-weight:400;margin-top:6px}.segmented{display:flex;background:#f1f3e9;border-radius:11px;padding:4px;gap:3px;flex-shrink:0}.segmented button{font-size:12px;min-width:42px;min-height:37px;border-radius:8px;color:#8a957c}.segmented button[aria-pressed=true]{background:var(--green);color:white;box-shadow:0 2px 6px #254d2820}.switch-row{display:flex;align-items:center;position:relative;justify-content:space-between;min-height:54px;font-size:13px;border-top:1px solid #f0f2e9;cursor:pointer}.switch-row>span:first-child{display:flex;align-items:center;gap:10px}.mini-symbol{color:#9aa986;display:inline-block;width:19px;text-align:center;font-size:22px}.staple-symbol{font-size:23px}.switch-row input{position:absolute;right:0;opacity:0;width:45px;height:32px;cursor:pointer}.switch-track{width:40px;height:25px;background:#dfe4d6;border-radius:20px;position:relative;pointer-events:none;transition:background .15s}.switch-track:after{content:"";position:absolute;left:3px;top:3px;width:19px;height:19px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0001;transition:transform .15s}.switch-row input:checked+.switch-track{background:var(--green)}.switch-row input:checked+.switch-track:after{transform:translateX(15px)}.switch-row input:focus-visible+.switch-track{outline:3px solid #c5a864;outline-offset:4px}.plan-summary{font-size:10px;color:#7a8c69;line-height:1.7;border-top:1px dashed #dce4cd;padding:13px 0 8px;letter-spacing:.1px}.menu-heading{margin-bottom:6px}.menu-total{font-size:11px;color:#a2aa96;font-weight:400;letter-spacing:0;margin-left:0}.text-button{font-size:11px;color:var(--green);min-height:44px;min-width:48px}.menu-description{font-size:10px;color:#929b86;line-height:1.7;margin:0 0 17px 24px}.filter-bar{display:flex;gap:4px;padding:4px;background:#eceedf;border-radius:12px;margin-bottom:14px}.filter-bar button{flex:1;min-height:38px;border-radius:9px;color:#8e977f;font-size:12px}.filter-bar button[aria-pressed=true]{background:var(--white);color:var(--green);font-weight:650;box-shadow:0 2px 4px #3f502509}.food-list{border:1px solid var(--line);border-radius:20px;background:var(--white);overflow:hidden}.food-row{min-height:77px;display:flex;align-items:center;padding:0 7px 0 17px;gap:4px}.food-row+.food-row{border-top:1px solid #edf0e6}.food-select{position:relative;display:flex;align-items:center;gap:13px;flex:1;min-width:0;min-height:76px;cursor:pointer;padding:12px 0}.food-select input{position:absolute;left:-4px;opacity:0;width:36px;height:44px}.check-visual{width:22px;height:22px;flex-shrink:0;border:1.5px solid #ccd5bd;border-radius:7px;display:grid;place-items:center;color:white}.check-visual svg{width:15px;height:15px;stroke-width:2.2;visibility:hidden}.food-select input:checked+.check-visual{background:var(--green);border-color:var(--green)}.food-select input:checked+.check-visual svg{visibility:visible}.food-select input:focus-visible+.check-visual{outline:3px solid #c5a864;outline-offset:4px}.food-copy{display:block;min-width:0}.food-name{font-size:13px;line-height:1.6;word-break:break-word;display:block}.food-kind{display:block;font-size:9px;color:#a0a88f;margin-top:4px;line-height:1.2}.food-row:has(input:not(:checked)) .food-name{color:#87927c}.edit-food{width:50px;min-height:52px;display:flex;align-items:center;justify-content:center;gap:3px;font-size:10px;color:#8a977e;flex-shrink:0}.edit-food svg{width:12px;height:12px}.empty-list{padding:35px 12px;text-align:center;color:#96a086;font-size:12px;line-height:2.2}.empty-list span{display:block;font-size:30px;color:#b5bea4}.add-button{display:flex;align-items:center;justify-content:center;width:100%;gap:8px;border:1px dashed #b9c9a5;border-radius:16px;min-height:54px;color:#63824e;font-size:12px;margin-top:15px;background:#eef2e53d}.add-button span{font-size:20px}.local-footer{padding:25px 0 0;text-align:center;color:#99a28c;font-size:10px;line-height:2}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#95a983;vertical-align:middle;margin-right:5px}.footer-divider{margin:0 6px}.local-footer button{font-size:10px;color:#6d8958;min-height:34px;text-decoration:underline;text-underline-offset:3px}.local-footer p{font-size:9px;letter-spacing:1px;color:#b2b8a7}.draw-dock{position:fixed;bottom:0;left:0;right:0;z-index:4;padding-bottom:env(safe-area-inset-bottom,0px);background:rgba(255,254,250,.96);border-top:1px solid #e7ebdf;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.dock-inner{max-width:500px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 24px}.dock-info{min-width:0}.dock-info strong{display:block;font-size:13px;font-weight:700;white-space:nowrap}.dock-info small{display:block;font-size:9px;color:#a0a68e;margin-top:7px;white-space:nowrap}.primary-button{display:flex;align-items:center;justify-content:center;gap:15px;border-radius:15px;background:var(--green);color:var(--white);font-size:14px;font-weight:650;min-height:54px;padding:15px 22px}.primary-button:active{background:var(--green-dark);transform:translateY(1px)}.draw-button{flex-shrink:0;min-width:167px;justify-content:space-between;box-shadow:0 4px 9px #25462713}.draw-button svg{width:19px;height:19px}.full-width{width:100%}.notice{background:#faf0d7;border:1px solid #efdfb7;color:#8e7032;border-radius:13px;font-size:11px;line-height:1.7;padding:12px 14px;margin-top:14px}
dialog{border:0;color:var(--ink);background:var(--paper);padding:0;box-shadow:0 12px 80px #122c2429}dialog::backdrop{background:#18342273;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}body.modal-open{overflow:hidden}.sheet-dialog{width:100%;max-width:500px;max-height:92vh;max-height:92dvh;margin:auto auto 0;position:fixed;bottom:0;top:auto;border-radius:27px 27px 0 0;overscroll-behavior:contain}.sheet-content{padding:12px 25px max(25px,env(safe-area-inset-bottom));overflow-y:auto}.sheet-handle{width:39px;height:4px;border-radius:6px;background:#d2dbc5;margin:0 auto 22px}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.eyebrow{color:#94a080;font-size:10px;letter-spacing:.6px}.dialog-top h2{font-size:24px;letter-spacing:-.6px;margin-top:7px}.icon-button{width:44px;height:44px;display:grid;place-items:center;color:#8e9c80;border-radius:50%;flex-shrink:0}.icon-button:active{background:#e9eede}.icon-button svg{width:23px;height:23px}.field-label{display:block;font-size:12px;color:#698057;font-weight:600;margin:18px 0 11px}.name-input{font-size:17px;width:100%;min-height:58px;padding:14px 15px;border:1.5px solid #8ea77b;border-radius:13px;background:white;color:var(--ink);appearance:none;-webkit-appearance:none;outline-offset:2px}.name-input::placeholder{color:#b4bba6}.character-count{text-align:right;font-size:10px;color:#a7af98;margin:7px 2px 15px}.kind-select{display:block;width:100%;font-size:16px;color:#48633a;padding:14px 15px;min-height:53px;background:var(--white);border:1px solid #cedabf;border-radius:12px;margin-bottom:25px}.danger-button{display:block;width:100%;font-size:12px;color:#aa6c5b;min-height:49px;margin-top:7px}.dialog-footnote{text-align:center;color:#a1ab92;font-size:10px;line-height:1.8;margin:18px 0 3px}.inline-error{color:#ad5140;font-size:12px;line-height:1.7;padding:0 0 15px}.result-dialog{width:calc(100% - 40px);max-width:412px;max-height:90vh;max-height:90dvh;border-radius:27px;margin:auto;overflow-y:auto;overscroll-behavior:contain}.result-content{position:relative;padding:29px 25px 8px;text-align:center}.result-close{position:absolute;right:5px;top:7px}.result-tag{display:inline-block;font-size:10px;color:#70885b;background:#e8eed9;border:1px solid #dde6cb;border-radius:30px;padding:8px 16px;letter-spacing:1px}.result-art{position:relative;width:66px;height:66px;display:grid;place-items:center;border-radius:50%;margin:24px auto 15px;background:#e6edda;color:#61834e}.result-art svg{width:38px;height:38px}.result-art span{position:absolute;right:-11px;top:3px;font-size:16px;color:#b0a46a}.result-eyebrow{font-size:10px;color:#a2aa93;letter-spacing:2px}.result-content h2{font-size:25px;letter-spacing:-.5px;margin:10px 0 21px}.result-list{display:grid;gap:8px}.result-item{display:flex;align-items:center;text-align:left;gap:12px;border-radius:12px;background:#eaf0df;padding:14px}.result-kind{flex-shrink:0;font-size:10px;color:#8b9d75;min-width:34px}.result-food-name{font-size:15px;font-weight:650;line-height:1.55;word-break:break-word}.result-note{font-size:9px;color:#9fa88e;line-height:1.7;margin:19px 0 22px}.again-button{min-height:54px;width:100%;font-size:12px;color:#788e63;margin-top:3px}.install-steps{list-style:none;padding:0;margin:4px 0 23px;display:grid;gap:22px}.install-steps li{display:flex;gap:13px}.install-steps li>span{width:25px;height:25px;flex-shrink:0;background:#e6eed9;display:grid;place-items:center;border-radius:8px;font-size:12px;color:#6d8758}.install-steps strong{display:block;font-size:13px;line-height:25px}.install-steps p{font-size:11px;color:#8f9a7f;line-height:1.8;margin-top:5px}.inline-icon{display:inline-block;width:15px;height:15px;vertical-align:-2px;color:#63834e}.help-note{font-size:10px;color:#7f8e6d;line-height:1.9;background:#eaf0df;padding:14px;border-radius:13px}.help-section{margin:25px 0 17px}.help-section h3{font-size:14px;margin-bottom:9px}.help-section p{font-size:11px;color:#94a081;line-height:1.8}.backup-buttons{display:flex;gap:10px;margin-top:17px}.secondary-button{border:1px solid #cad7b9;border-radius:12px;padding:13px 14px;min-height:46px;color:#6b8653;font-size:12px;background:var(--white)}.backup-buttons button{flex:1}.update-button{margin-top:11px;background:#e6eed9}.installed-hint{background:#e5eed8;color:#5b7b42;font-size:12px;padding:14px;border-radius:12px;margin-bottom:20px}.toast{position:fixed;bottom:calc(112px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 48px);padding:13px 18px;background:#283e2df2;color:#fffef3;box-shadow:0 5px 20px #20352222;border-radius:13px;font-size:12px;line-height:1.65;z-index:100;text-align:center;pointer-events:none}.no-script{padding:25px;text-align:center}
@media(min-width:700px){body{background:#e9ede1;background-image:radial-gradient(#9ca88830 .8px,transparent .8px);background-size:15px 15px}.app-shell{box-shadow:0 0 80px #41562c12;border-left:1px solid #dce3d1;border-right:1px solid #dce3d1}.draw-dock{left:50%;right:auto;width:500px;transform:translateX(-50%);border-left:1px solid #dce3d1;border-right:1px solid #dce3d1}.sheet-dialog{margin:auto;border-radius:26px;top:50%;bottom:auto;transform:translateY(-50%);width:450px;max-height:90vh}.sheet-content{padding-bottom:25px}.hero-art{right:8px}}
@media(max-width:374px){.topbar{padding-left:18px;padding-right:18px}.app-shell main{padding-left:18px;padding-right:18px}.hero{padding-left:19px}.hero h1{font-size:29px}.hero-art{width:135px;height:135px;right:-15px;top:45px}.category-card{padding-left:11px;gap:9px}.category-caption{font-size:8px}.category-icon{width:28px}.category-name{font-size:15px}.tiny-label{display:none}.plan-card{padding-left:13px;padding-right:13px}.segmented button{min-width:37px}.dock-inner{padding:14px 18px;gap:8px}.draw-button{min-width:149px;padding:15px 17px;font-size:13px}.dock-info strong{font-size:12px}.dock-info small{font-size:8px}}
@media(prefers-reduced-motion:no-preference){dialog[open]{animation:enter .18s ease-out}.result-art{animation:pop .35s ease-out}@keyframes enter{from{opacity:0}to{opacity:1}}@keyframes pop{from{scale:.85;rotate:-8deg}to{scale:1;rotate:0deg}}}
