*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f4f1e9;color:#1d2923;font-family:"Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}header{height:72px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px}.brand{display:flex;align-items:center;gap:11px;color:#17251f;text-decoration:none;font-size:19px}.logo{display:grid;place-items:center;width:40px;height:40px;background:#bc4638;color:#fff;border-radius:7px;font-weight:800;box-shadow:0 5px 14px #bc463830}.icon-btn{width:40px;height:40px;border:1px solid #d6d5cf;background:#fff;border-radius:7px;color:#4b5751;font-size:20px;display:inline-grid;place-items:center}.icon-btn:hover{border-color:#315e4b;color:#315e4b}.danger:hover{border-color:#bc4638;color:#bc4638}main{max-width:1180px;margin:auto;padding:18px 24px 70px}.alert{margin-bottom:16px;border-radius:6px;padding:13px 16px;font-weight:600}.alert.error{background:#fae2dd;color:#8d281d}.alert.success{background:#dfeee5;color:#1d6042}.hero{min-height:350px;background:#173e32;color:#fff;border-radius:8px;padding:52px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:52px;align-items:center;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:210px;height:210px;border:44px solid #bc4638;right:-100px;top:-100px;border-radius:50%;opacity:.68}.kicker{margin:0 0 8px;text-transform:uppercase;font-size:13px;font-weight:800;color:#bc4638}.hero .kicker{color:#f0ad68}.hero h1{font-size:clamp(36px,5vw,62px);line-height:1.08;margin:0;max-width:650px;font-weight:800}.intro{font-size:17px;color:#d7e4de;margin:20px 0 0}.draw-box{position:relative;z-index:1;background:#fff;color:#1d2923;border-radius:7px;padding:24px;box-shadow:0 16px 36px #09251b4d}.draw-box label{font-weight:700;display:block;margin-bottom:10px}.draw-row{display:grid;grid-template-columns:1fr auto;gap:10px}.draw-note{margin:12px 0 0;color:#68766f;font-size:13px;line-height:1.55}select,input,textarea{width:100%;border:1px solid #cfd2cc;background:#fff;color:#202b26;border-radius:6px;padding:12px 13px;outline:0;transition:border .2s,box-shadow .2s}select:focus,input:focus,textarea:focus{border-color:#315e4b;box-shadow:0 0 0 3px #315e4b20}textarea{resize:vertical;line-height:1.7}.primary,.secondary{min-height:46px;border-radius:6px;padding:0 19px;font-weight:800;border:1px solid transparent}.primary{background:#bc4638;color:#fff}.primary:hover{background:#a6382d}.secondary{background:#fff;color:#284c3e;border-color:#aebbb5}.secondary:hover{background:#edf3ef}.full{width:100%}.result{margin-top:22px;background:#fff;border:1px solid #dcdcd6;border-left:6px solid #bc4638;border-radius:7px;padding:22px;animation:reveal .3s ease}.result-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.result-heading h2{font-size:28px;margin:3px 0 0}.result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.result-card{min-width:0;padding:0;text-align:left;background:#f7f7f3;border:1px solid #dfe1dc;border-radius:7px;overflow:hidden;color:#1d2923}.result-card:hover{border-color:#315e4b;box-shadow:0 8px 20px #27352f18}.result-card>img,.result-card>.result-placeholder{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e8e8e2;display:grid;place-items:center;font-size:38px}.result-card-body{padding:13px;display:flex;gap:10px;align-items:flex-start}.result-number{width:27px;height:27px;flex:0 0 auto;border-radius:50%;background:#bc4638;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:800}.result-card small{color:#748079}.result-card h3{font-size:18px;margin:2px 0 7px}.recipe-link{font-size:13px;color:#315e4b;font-weight:800}.menu{padding-top:64px}.title-row{display:flex;justify-content:space-between;align-items:end;gap:20px}.title-row h2,.dialog-head h2{font-size:30px;margin:0}.filters{display:flex;gap:9px;overflow-x:auto;padding:24px 0 18px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border:1px solid #d5d6d0;background:#fff;color:#46524c;border-radius:999px;padding:9px 14px;font-weight:700}.chip b{font-size:12px;color:#89928d;margin-left:4px}.chip.active{background:#284c3e;color:#fff;border-color:#284c3e}.chip.active b{color:#d5e4dd}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{background:#fff;border:1px solid #deded8;border-radius:7px;overflow:hidden;min-width:0;transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #27352f18}.photo{aspect-ratio:16/10;position:relative;background:#e9e8e1;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.placeholder{width:100%;height:100%;display:grid;place-content:center;text-align:center;color:#7e8983;gap:6px}.placeholder span{font-size:42px;color:#315e4b}.badge{position:absolute;left:13px;top:13px;background:#fff;color:#274a3c;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;box-shadow:0 4px 12px #0002}.card-body{padding:18px}.card h3{font-size:21px;margin:0 0 8px}.card-body>p{height:44px;line-height:1.55;color:#69736e;font-size:14px;margin:0;overflow:hidden}.actions{display:flex;align-items:center;gap:8px;border-top:1px solid #ededeb;margin-top:16px;padding-top:12px}.link{border:0;background:transparent;color:#315e4b;font-weight:800;padding:8px 0;margin-right:auto}.delete{display:flex}.empty{text-align:center;background:#fff;border:1px dashed #bfc5c0;border-radius:7px;padding:65px 20px}.empty>span{font-size:48px;color:#315e4b}.empty h3{font-size:24px;margin:12px 0 5px}.empty p{color:#68736d;margin:0 0 20px}dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:0;border-radius:8px;padding:25px;background:#fff;color:#1d2923;box-shadow:0 24px 80px #071b1470;overflow:auto}dialog::backdrop{background:#10221cbf;backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.dialog-head .icon-btn{flex:0 0 auto}.dialog-actions{display:flex;gap:10px;margin-top:24px}.form{display:grid;gap:17px}.form label{display:grid;gap:7px;font-weight:700}.form label small{font-weight:400;color:#7a847f}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.preview{min-height:120px;border:1px dashed #b8c0bb;border-radius:6px;background:#f7f7f3;color:#79847e;display:grid;place-items:center;overflow:hidden}.preview img{width:100%;height:220px;object-fit:cover}.recipe-dialog{width:min(820px,calc(100% - 32px));padding:0}.recipe-photo{height:300px;background:#e8e8e1 center/cover no-repeat;display:grid;place-items:center;font-size:52px;color:#315e4b}.recipe-content{padding:25px}.recipe-text{white-space:pre-wrap;line-height:1.8;color:#4e5a54}.recipe-source{margin:22px 0 0;padding-top:14px;border-top:1px solid #ededeb;color:#7a847f;font-size:13px}.recipe-source a{color:#315e4b;font-weight:700}.hidden{display:none!important}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:860px){.hero{grid-template-columns:1fr;padding:38px;gap:34px}.grid,.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){header{height:62px;padding:0 16px}main{padding:8px 14px 44px}.hero{min-height:0;padding:29px 20px;border-radius:7px;gap:26px}.hero h1{font-size:36px}.intro{font-size:15px}.draw-box{padding:16px}.draw-row{grid-template-columns:1fr}.draw-row .primary{width:100%}.result-heading{align-items:flex-start}.result-heading h2{font-size:23px}.result-heading .secondary{padding:0 12px}.result-grid{grid-template-columns:1fr}.result-card>img,.result-card>.result-placeholder{max-height:210px}.menu{padding-top:44px}.title-row{align-items:center}.title-row h2,.dialog-head h2{font-size:25px}.title-row .secondary{padding:0 12px}.filters{padding-top:18px}.grid{grid-template-columns:1fr;gap:14px}.photo{aspect-ratio:16/9}.two{grid-template-columns:1fr}.dialog-actions{flex-direction:column}.dialog-actions form,.dialog-actions button{width:100%}dialog{padding:20px;width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.recipe-dialog{padding:0}.recipe-photo{height:210px}.recipe-content{padding:20px}.card:hover{transform:none}}