@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--ink:#21312d;--muted:#76817d;--paper:#f7f4ee;--line:#dedbd3;--forest:#214e45;--cream:#fffdfa}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}.app-shell{min-height:100vh}.topbar{justify-content:space-between;align-items:center;max-width:1140px;height:70px;margin:auto;padding:0 24px;display:flex}.brand{letter-spacing:-1px;align-items:center;gap:9px;font-size:22px;font-weight:750;display:flex}.brand-mark{background:var(--forest);color:#f6e4ae;border-radius:9px;place-items:center;width:30px;height:30px;font-family:Georgia,serif;display:grid}.brand-light{font-weight:400}.top-actions{align-items:center;gap:11px;display:flex}.text-button,.admin-button,.tabs button,.formula-card,.copy-button,.download,.modal-close{font:inherit;cursor:pointer}.text-button{color:#53615d;background:0 0;border:0;font-size:14px}.admin-button{color:var(--forest);background:0 0;border:1px solid #cad0ca;border-radius:99px;padding:8px 14px;font-size:13px}.hero{max-width:1140px;margin:45px auto 27px;padding:0 24px}.eyebrow{letter-spacing:1.5px;color:#89918e;margin:0 0 10px;font-size:10px;font-weight:800}.hero h1{letter-spacing:-2px;margin:0;font:500 clamp(33px,5vw,55px)/1.07 Georgia,Songti SC,serif}.hero>p:last-child{color:var(--muted);margin:14px 0 0;font-size:15px}.formula-picker{grid-template-columns:repeat(3,1fr);gap:13px;max-width:1140px;margin:0 auto 40px;padding:0 24px;display:grid}.formula-card{--accent:#555;text-align:left;border:1px solid var(--line);background:#fffdfaaf;border-radius:16px;align-items:center;gap:13px;min-height:110px;padding:18px;transition:all .18s;display:flex;position:relative}.formula-card:hover,.formula-card.active{border-color:var(--accent);box-shadow:0 8px 24px #29393114}.formula-card.active:before{content:"";background:var(--accent);border-radius:0 4px 4px 0;width:3px;position:absolute;top:18px;bottom:18px;left:0}.formula-icon{color:var(--accent);text-align:center;width:28px;font-size:27px}.formula-copy{gap:5px;display:grid}.formula-copy small{letter-spacing:1.2px;color:var(--accent);font-size:9px;font-weight:800}.formula-copy strong{font-size:18px}.formula-copy em{color:var(--muted);font-size:12px;font-style:normal}.arrow{color:#8b9591;margin-left:auto;font-size:20px}.workbench{background:var(--cream);border:1px solid var(--line);border-radius:23px;max-width:1092px;margin:0 auto 30px;overflow:hidden;box-shadow:0 15px 44px #263a3320}.workbench-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;padding:29px 35px 18px;display:flex}.workbench-head h2{margin:0;font:500 29px Georgia,Songti SC,serif}.tabs{gap:18px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 1px;font-size:14px}.tabs .tab-on{color:var(--forest);border-color:var(--forest);font-weight:700}.volume-box{background:#f0eee8;border-radius:14px;justify-content:space-between;align-items:center;margin:24px 35px;padding:17px 20px;display:flex}.volume-box label{font-size:15px;font-weight:700}.volume-box p{color:var(--muted);margin:5px 0 0;font-size:12px}.volume-input{align-items:baseline;gap:5px;display:flex}.volume-input input{width:96px;color:var(--forest);text-align:right;background:0 0;border:0;border-bottom:1px solid #a2aaa5;outline:none;font:500 28px Georgia,serif}.volume-input span{color:var(--muted);font-size:13px}.recipe-grid{grid-template-columns:1.45fr 1fr;gap:24px;padding:0 35px 35px;display:grid}.ingredient-panel{border:1px solid var(--line);border-radius:15px;overflow:hidden}.panel-title,.result-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;padding:16px 17px 12px;display:flex}.panel-title span,.result-heading span{font-size:15px;font-weight:750}.panel-title small,.result-heading small{color:var(--muted);font-size:11px}.ingredient-row{border-bottom:1px solid #ece9e2;grid-template-columns:1fr 92px 107px;align-items:center;gap:9px;padding:12px 17px;display:grid}.ingredient-name{align-items:center;gap:8px;display:flex}.ingredient-name strong{font-size:14px}.ingredient-name span{color:#49887b;background:#e4f0ec;border-radius:4px;padding:3px 5px;font-size:10px}.ingredient-row label{position:relative}.ingredient-row input{text-align:right;background:#fffefa;border:1px solid #ddd9d0;border-radius:6px;outline-color:#55867a;width:100%;padding:8px 26px 8px 8px;font-size:13px}.ingredient-row input:disabled{color:#5d6b66;background:#f3f1ec}.ingredient-row i{color:#8b9490;font-size:10px;font-style:normal;position:absolute;top:9px;right:7px}.total-row{color:#63706b;background:#f7f5f0;justify-content:space-between;padding:12px 17px;font-size:13px;display:flex}.total-row strong{color:var(--forest)}.total-row.warning strong{color:#bd5849}.result-panel{background:var(--forest);color:#f7f4ed;border-radius:15px;align-self:start;padding:2px 17px 17px}.result-heading{border-color:#467269;padding:14px 0 12px}.result-heading small{color:#b9cdc6}.record-fields{border-bottom:1px solid #467269;gap:8px;padding:12px 0 5px;display:grid}.record-fields p{color:#f7f4ed;margin:0;font-size:14px;font-weight:700}.record-fields label{color:#dce8e3;grid-template-columns:58px 1fr;align-items:center;gap:7px;font-size:11px;display:grid}.record-fields input{color:#fffdf5;width:100%;font:inherit;background:#1a443c;border:1px solid #5b8078;border-radius:5px;outline-color:#e6d99f;padding:7px 8px}.record-fields input::placeholder{color:#a9beb8;opacity:.75}.result-row{border-bottom:1px solid #467269;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.result-row>span{font-size:13px}.result-row div{text-align:right}.result-row strong{font:500 19px Georgia,serif;display:block}.result-row small{color:#c1d2cc;font-size:11px}.result-total{color:#c4d3ce;justify-content:space-between;padding:15px 0 13px;font-size:12px;display:flex}.result-total strong{color:#fff;font-size:16px}.copy-button,.download{color:#30453e;text-align:center;background:#e6d99f;border:0;border-radius:8px;width:100%;padding:10px 12px;font-size:13px;font-weight:700;text-decoration:none;display:block}.guide{grid-template-columns:.8fr 1.2fr;gap:32px;padding:35px;display:grid}.guide-intro h3{margin:0 0 11px;font:500 29px Georgia,Songti SC,serif}.guide-intro>p:last-child{color:var(--muted);font-size:13px;line-height:1.8}.steps{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.steps li{border-bottom:1px solid var(--line);gap:16px;padding:15px 2px;display:flex}.steps span{color:#a5afaa;font:500 14px Georgia,serif}.steps p{margin:0;font-size:14px;line-height:1.65}.safety{color:#665839;background:#fff3d8;border-radius:12px;grid-column:1/-1;padding:17px 20px;font-size:13px}.safety strong{margin-bottom:7px;display:block}.safety p{margin:5px 0}.app-shell footer{color:#89918e;text-align:center;gap:5px;max-width:1092px;margin:0 auto 35px;font-size:12px;display:grid}.app-version{letter-spacing:.8px;font-size:11px}.modal-backdrop{z-index:10;background:#19362db8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{text-align:center;background:#fffdf9;border-radius:20px;width:min(400px,100%);padding:31px;position:relative;box-shadow:0 25px 80px #0005}.modal h3{margin:0 0 9px;font:500 27px Georgia,Songti SC,serif}.modal>p:not(.eyebrow){color:var(--muted);margin:0 0 17px;font-size:13px;line-height:1.7}.modal-close{color:#7c8682;background:0 0;border:0;font-size:27px;position:absolute;top:9px;right:14px}.qr{border:8px solid #fff;width:230px;height:230px;margin:10px auto 13px;display:block}.modal code{color:#7c8682;overflow-wrap:anywhere;margin-bottom:14px;font-size:10px;display:block}.download{background:var(--forest);color:#fff}.admin-modal{text-align:left}.admin-modal:has(.admin-entry-link){width:min(330px,100%);padding:46px 31px 31px}.admin-modal .copy-button{background:var(--forest);color:#fff;margin-top:20px}.admin-modal .admin-entry-link{margin-top:0}@media (max-width:720px){.topbar{height:60px;padding:0 18px}.hero{margin:28px auto 21px;padding:0 18px}.hero h1{font-size:38px}.formula-picker{margin-bottom:26px;padding:0 18px 5px;display:flex;overflow:auto}.formula-card{min-width:243px}.workbench{border-radius:16px;margin:0 10px 22px}.workbench-head{flex-direction:column;align-items:flex-start;gap:11px;padding:22px 19px 13px}.workbench-head h2{font-size:26px}.tabs{gap:16px}.volume-box{margin:18px 19px;padding:14px}.recipe-grid{grid-template-columns:1fr;gap:14px;padding:0 19px 20px}.ingredient-row{grid-template-columns:1fr 76px 95px;gap:6px;padding:11px 12px}.ingredient-name{display:block}.ingredient-name span{width:max-content;margin-top:4px;display:block}.panel-title{display:block}.panel-title small{margin-top:4px;display:block}.guide{padding:24px 20px;display:block}.steps{margin-top:24px}.safety{margin-top:21px}.app-shell footer{margin-bottom:25px;padding:0 25px}.text-button{display:none}.volume-input input{width:75px}.formula-copy em{white-space:nowrap}.result-panel{padding:2px 14px 14px}}
.brand-mark{background:var(--forest)!important;width:52px!important;height:52px!important;color:initial!important;border-radius:12px!important;font-family:Georgia,serif!important;display:block!important;position:relative!important;overflow:hidden!important}.logo-m{color:#f3dc9e;letter-spacing:-2px;font:italic 700 29px/1 Georgia,serif;position:absolute;top:12px;left:5px}.logo-l{color:#ff8064;letter-spacing:-2px;width:auto;height:auto;font:italic 700 29px/1 Georgia,serif;position:absolute;top:12px;left:26px}.logo-l:before,.logo-l:after{display:none!important}.brand-word{color:var(--ink);letter-spacing:-1px;font:italic 800 28px/1 "Bodoni 72",Didot,Georgia,Times New Roman,serif}.brand-word .brand-light{font:italic 400 28px/1 "Bodoni 72",Didot,Georgia,Times New Roman,serif}.color-button{color:#ff8064;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #cad0ca;border-radius:99px;padding:8px 14px;font-size:14px}.color-modal{text-align:left;max-height:92vh;overflow:auto}.color-modal h3{text-align:left}.color-preview{color:#fff;text-shadow:0 1px 2px #0008;border-radius:12px;align-items:end;height:70px;margin:14px 0;padding:9px;font:700 12px Arial;display:flex}.color-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.color-fields label{color:#60706a;font-size:11px;font-weight:700}.color-fields input{color:#21312d;background:#fffefa;border:1px solid #d9d6cf;border-radius:7px;width:100%;margin-top:5px;padding:9px;font:13px Arial;display:block}.color-fields input[type=color]{height:38px;padding:3px}.color-result{color:#31564c;background:#edf2ee;border-radius:9px;align-items:baseline;gap:9px;margin:16px 0 8px;padding:12px;display:flex}.color-result span,.color-result small{font-size:11px}.color-result strong{margin-left:auto;font:600 22px Georgia,serif}.color-note{color:#7c8682!important;font-size:11px!important}@media (max-width:520px){.color-fields{grid-template-columns:1fr}.top-actions .text-button:first-child{display:block}}.color-guide ol{counter-reset:colorstep;margin:17px 0;padding:0;list-style:none}.color-guide li{counter-increment:colorstep;min-height:38px;padding:0 0 15px 39px;position:relative}.color-guide li:before{content:counter(colorstep);color:#285548;background:#e5f0eb;border-radius:50%;place-items:center;width:25px;height:25px;font:700 11px Arial;display:grid;position:absolute;top:0;left:0}.color-guide li strong{margin-bottom:4px;font-size:13px;display:block}.color-guide li span{color:#66736e;font-size:12px;line-height:1.6;display:block}.color-tip{color:#665839;background:#fff3d8;border-radius:10px;padding:12px 14px}.color-tip strong{font-size:12px}.color-tip p{margin:5px 0 0;font-size:12px;line-height:1.6}.admin-preview{max-height:92vh;overflow:auto}.admin-cards{gap:8px;margin:17px 0;display:grid}.admin-cards>div{background:#fffefa;border:1px solid #e3dfd6;border-radius:10px;padding:12px 12px 12px 42px;position:relative}.admin-cards span{color:#c4843c;font:700 11px Georgia,serif;position:absolute;top:12px;left:12px}.admin-cards strong{font-size:13px}.admin-cards p{margin:4px 0 0!important;font-size:11px!important;line-height:1.55!important}.admin-status{color:#31564c;background:#edf2ee;border-radius:9px;justify-content:space-between;align-items:center;gap:7px;margin:0 0 14px;padding:10px 12px;font-size:11px;display:flex}.admin-status span{color:#61746d}
