@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;800&display=swap');

:root{font-family:'DM Sans','Noto Sans TC',sans-serif;color:#26382f;background:#f5f3ec;font-synthesis:none;text-rendering:optimizeLegibility;--green:#315e49;--muted:#879188;--line:#e6e8df;--orange:#e7a15e}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 6% 21%,rgba(229,231,215,.44),transparent 32%),#f5f3ec}.shell{max-width:1080px;margin:0 auto;padding:27px 32px 23px}.topbar,footer{display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:10px;text-decoration:none;color:#314438;font-size:14px;font-weight:700;letter-spacing:.03em}.mark{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:var(--green);color:#fff;font-family:'Noto Sans TC',sans-serif;font-size:15px}.test-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid #e5dfd1;border-radius:20px;padding:6px 11px;color:#797568;font-size:11px;letter-spacing:.05em;background:#f9f7f0}.test-badge i{width:6px;height:6px;border-radius:50%;background:#e4a35e}.intro{text-align:center;padding:49px 0 31px}.eyebrow{margin:0 0 9px;color:#8b978d;font-size:9px;font-weight:700;letter-spacing:.18em}.intro h1{margin:0;color:#283c31;font-family:'Noto Sans TC',sans-serif;font-size:clamp(29px,4.2vw,39px);font-weight:700;letter-spacing:.045em}.intro h1 em{font-style:normal;color:#63846d}.intro-copy{margin:14px 0 0;color:#79857d;font-family:'Noto Sans TC',sans-serif;font-size:13px;line-height:1.8}.workspace{display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);min-height:532px;overflow:hidden;border:1px solid #e9e8df;border-radius:20px;background:#fff;box-shadow:0 17px 48px rgba(47,58,44,.055)}.form-panel{padding:35px 40px 27px}.step-heading{display:flex;align-items:flex-start;gap:13px}.step-number{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border:1px solid #dfe8dd;border-radius:50%;color:#6c896f;font-size:9px;font-weight:700}.step-heading .eyebrow{margin:1px 0 5px;font-size:8px}.step-heading h2{margin:0;color:#35483c;font-family:'Noto Sans TC',sans-serif;font-size:15px;font-weight:600}.brand-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:17px 0 25px}.brand-option{position:relative;display:flex;align-items:center;gap:10px;min-width:0;padding:12px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;color:inherit;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.brand-option:hover{transform:translateY(-1px);border-color:#b9cbb9}.brand-option.is-active{border-color:#9caf9c;background:#f7faf5}.brand-symbol{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:11px;font-family:'Noto Sans TC',sans-serif;font-size:14px;font-weight:700}.noodle{background:#f7eadc;color:#b66d3d}.air{background:#e6edf0;color:#577682}.brand-copy{display:grid;gap:3px;min-width:0}.brand-copy strong{font-family:'Noto Sans TC',sans-serif;font-size:11px;white-space:nowrap}.brand-copy small{color:#929b93;font-size:9px;white-space:nowrap}.radio-dot{position:absolute;right:9px;top:9px;width:8px;height:8px;border:1px solid #d3d9d0;border-radius:50%}.is-active .radio-dot{border:2px solid #64856b;background:#64856b;box-shadow:inset 0 0 0 1px white}.second-step{margin-bottom:17px}#recipe-form .field-label{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:#4e5e53;font-family:'Noto Sans TC',sans-serif;font-size:11px;font-weight:600}.field-label span{padding:3px 6px;border-radius:4px;background:#fbefe5;color:#b77a51;font-family:'Noto Sans TC',sans-serif;font-size:8px;font-weight:500}.field-label .optional{background:#f0f2ed;color:#8b948b}textarea,input{width:100%;border:1px solid #e4e8e1;border-radius:9px;outline:none;background:#fbfcfa;color:#33473b;font:12px 'Noto Sans TC',sans-serif;transition:border-color .2s,box-shadow .2s}textarea{min-height:79px;padding:11px 12px;resize:vertical;line-height:1.7}input{height:40px;padding:0 12px}textarea:focus,input:focus{border-color:#9eb49d;box-shadow:0 0 0 3px rgba(118,151,120,.12)}textarea::placeholder,input::placeholder{color:#b3bab2}.field-hint{margin-top:7px;color:#9aa29b;font-family:'Noto Sans TC',sans-serif;font-size:9px}.conditional-field{margin-top:17px}.conditional-field[hidden]{display:none}.submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;height:45px;margin-top:21px;padding:0 14px 0 17px;border:0;border-radius:9px;background:var(--green);color:white;font-family:'Noto Sans TC',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.submit-button:hover{transform:translateY(-1px);background:#254c38}.submit-button:disabled{cursor:wait;opacity:.7;transform:none}.button-arrow{font-family:'DM Sans',sans-serif;font-size:17px;font-weight:400}.privacy-note{display:flex;justify-content:center;gap:6px;margin:12px 0 0;color:#a0a79e;font-family:'Noto Sans TC',sans-serif;font-size:9px}.privacy-note span{color:#8d9e80}.result-panel{position:relative;min-width:0;padding:27px 31px;background:#f5f6f0;overflow:hidden}.result-panel:after{position:absolute;right:-85px;bottom:-125px;width:290px;height:290px;border:1px solid rgba(150,168,144,.16);border-radius:50%;content:'';pointer-events:none}.result-topline{display:flex;justify-content:space-between;align-items:center;color:#99a397;font-size:8px;font-weight:700;letter-spacing:.17em}.sparkle{color:#d8a471;font-size:17px}.result-content{position:relative;z-index:1;max-width:400px;margin:35px auto 0}.empty-art{position:relative;width:153px;height:135px;margin:0 auto 17px}.plate{position:absolute;left:15px;top:17px;width:123px;height:104px;border:1px solid #cbd5c5;border-radius:49% 51% 48% 52%;background:linear-gradient(145deg,#fdfdf8,#e8eee3);box-shadow:0 7px 18px rgba(67,91,67,.09)}.plate:before{position:absolute;inset:11px;border:1px solid #dbe3d6;border-radius:inherit;content:''}.plate:after{position:absolute;left:35px;top:30px;width:53px;height:39px;border-radius:50%;background:radial-gradient(ellipse at 60% 35%,#e9c68e 0 13%,transparent 14%),radial-gradient(ellipse at 37% 57%,#7b9b6f 0 12%,transparent 13%),radial-gradient(ellipse at 66% 68%,#d29165 0 10%,transparent 11%),#f2e8d2;transform:rotate(-12deg)}.herb{position:absolute;color:#779177}.herb-one{left:4px;top:13px;font-size:21px;transform:rotate(-15deg)}.herb-two{right:5px;top:48px;color:#d39b6c;font-size:16px}.herb-three{left:30px;bottom:0;font-size:34px}.result-kicker{text-align:center;margin:0 0 8px;color:#879584;font-family:'Noto Sans TC',sans-serif;font-size:10px;letter-spacing:.1em}.empty-title{text-align:center;margin:0;color:#344b39;font-family:'Noto Sans TC',sans-serif;font-size:25px;line-height:1.5;letter-spacing:.05em}.empty-copy{text-align:center;margin:10px 0 0;color:#8a9488;font-family:'Noto Sans TC',sans-serif;font-size:11px;line-height:1.9}.result-decoration{display:flex;align-items:center;gap:10px;margin-top:25px;color:#a3aa9e;font-size:8px;font-weight:600;letter-spacing:.12em}.result-decoration span:first-child{color:#779076}.decoration-line{height:1px;flex:1;background:#dce2d8}footer{padding-top:17px;color:#9ba197;font-family:'Noto Sans TC',sans-serif;font-size:9px}footer b{padding:0 5px;color:#c1a47c}.recipe-result{margin-top:24px;font-family:'Noto Sans TC',sans-serif}.recipe-result .result-kicker{text-align:left;margin-bottom:7px}.recipe-title{margin:0;color:#344b39;font-size:22px;line-height:1.4}.recipe-product{display:inline-block;margin:10px 0 19px;padding:5px 9px;border:1px solid #dce5d7;border-radius:20px;color:#69816a;font-size:10px}.recipe-result h3{margin:18px 0 8px;color:#536c57;font-size:11px;letter-spacing:.04em}.recipe-result ul,.recipe-result ol{margin:0;padding-left:19px;color:#606e62;font-size:11px;line-height:1.9}.recipe-result li{padding-left:2px;margin:2px 0}.recipe-note,.recipe-error{margin:15px 0 0;color:#7f8a7e;font-size:10px;line-height:1.8}.recipe-error{padding:12px;border:1px solid #ead8c8;border-radius:8px;background:#fffaf5;color:#966344}.recipe-source{display:inline-block;margin-top:14px;color:#55745c;font-size:10px;text-decoration:underline;text-underline-offset:3px}.loading-state{display:grid;place-items:center;min-height:380px;text-align:center;color:#667967;font-family:'Noto Sans TC',sans-serif;font-size:12px}.loading-mark{width:38px;height:38px;margin:0 auto 14px;border:2px solid #dbe5d8;border-top-color:#65846a;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.shell{padding:20px 20px}.intro{padding:39px 0 26px}.workspace{grid-template-columns:1fr}.form-panel{padding:28px 28px 24px}.result-panel{min-height:430px;padding:23px 27px}.result-content{margin-top:29px}.loading-state{min-height:330px}}
@media(max-width:420px){.shell{padding:15px 13px}.intro{padding:34px 0 23px}.intro-copy{font-size:12px}.form-panel{padding:24px 18px}.brand-switch{gap:7px}.brand-option{gap:7px;padding:10px 7px}.brand-symbol{flex-basis:30px;height:30px}.brand-copy strong{font-size:10px}.brand-copy small{font-size:8px}.result-panel{padding:21px 20px}footer{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.recipe-mode{margin:14px 0 0;padding:8px 10px;border-left:2px solid #91a98d;background:#edf2e9;color:#5e765f;font-size:10px;line-height:1.7}.recipe-result .recipe-sources{padding-left:18px}.recipe-sources li{margin:3px 0;padding-left:1px}.recipe-sources .recipe-source{margin:0;font-size:10px}

.photo-box{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:14px}.photo-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.photo-button{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1px dashed #9caf9c;border-radius:9px;background:#f7faf5;color:#4d6b53;font-family:'Noto Sans TC',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s}.photo-button:hover{background:#eef4ea;border-color:#64856b}.photo-file:focus-visible+.photo-button{box-shadow:0 0 0 3px rgba(118,151,120,.25)}.photo-file:disabled+.photo-button{cursor:wait;opacity:.65}.photo-tip{color:#9aa29b;font-family:'Noto Sans TC',sans-serif;font-size:9px}.photo-preview{display:flex;flex:1 0 100%;gap:11px;align-items:flex-start;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fbfcfa}.photo-preview[hidden]{display:none}.photo-preview img{flex:0 0 64px;width:64px;height:64px;border-radius:8px;object-fit:cover;background:#e8eee3}.photo-result{min-width:0;flex:1;font-family:'Noto Sans TC',sans-serif}.photo-message{margin:6px 0 0;color:#7f8a7e;font-size:10px;line-height:1.7}.photo-message:first-child{margin-top:0}.photo-message.is-error{color:#966344}.chip-list{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0;list-style:none}.chip{padding:3px 9px;border:1px solid #cfdccb;border-radius:20px;background:#eef4ea;color:#41603f;font-size:10px}.chip-medium{background:#f5f8f1;color:#5a7359}.chip-low{border-style:dashed;background:#fbfcfa;color:#8a978a}.loading-mark.small{width:22px;height:22px;margin:0 0 6px}

.product-field{min-width:0;margin:17px 0 0;padding:0;border:0}
.product-field legend{padding:0}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;max-height:332px;overflow-y:auto;padding:3px;margin:-3px;overscroll-behavior:contain}
.product-card{position:relative;display:block;min-width:0;cursor:pointer}
.product-card .product-radio{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none}
.product-body{display:flex;flex-direction:column;height:100%;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;transition:border-color .2s,background .2s,box-shadow .2s}
.product-card:hover .product-body{border-color:#b9cbb9}
.product-radio:checked+.product-body{border-color:#64856b;background:#f7faf5;box-shadow:inset 0 0 0 1px #64856b}
.product-radio:focus-visible+.product-body{box-shadow:0 0 0 3px rgba(118,151,120,.35)}
.product-radio:checked:focus-visible+.product-body{box-shadow:inset 0 0 0 1px #64856b,0 0 0 3px rgba(118,151,120,.35)}
.product-media{display:grid;place-items:center;aspect-ratio:1;background:#fbfcfa}
.product-media img{width:100%;height:100%;object-fit:contain;display:block}
.product-text{display:grid;gap:2px;padding:6px 7px 8px}
.product-name{color:#35483c;font-family:'Noto Sans TC',sans-serif;font-size:10px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}
.product-cat{color:#929b93;font-family:'Noto Sans TC',sans-serif;font-size:8px;line-height:1.4}
.product-card-any{grid-column:1/-1}
.product-card-any .product-body{flex-direction:row;align-items:center}
.product-card-any .product-media{flex:0 0 52px;aspect-ratio:auto;align-self:stretch;background:#f7eadc;color:#b66d3d;font-size:20px}
.product-card-any .product-text{padding:9px 10px}
.product-card-any .product-name{font-size:12px}
.product-card-any .product-cat{font-size:9px}

.recipe-pick{display:flex;align-items:center;gap:11px;margin:12px 0 16px;padding:8px;border:1px solid #dce5d7;border-radius:11px;background:#fff}
.recipe-pick img{flex:0 0 64px;width:64px;height:64px;border-radius:8px;object-fit:contain;background:#fbfcfa}
.recipe-pick-text{display:grid;gap:3px;min-width:0}
.recipe-pick-name{color:#35483c;font-size:12px;font-weight:600;overflow-wrap:anywhere}
.recipe-pick-label{width:fit-content;padding:2px 8px;border-radius:20px;background:#edf2e9;color:#5e765f;font-size:9px}
.recipe-pick-link{color:#55745c;font-size:9px;text-underline-offset:3px}

.thread{display:grid;gap:14px}
.user-bubble{justify-self:end;max-width:88%;margin:0;padding:8px 12px;border-radius:14px 14px 3px 14px;background:var(--green);color:#fff;font-family:'Noto Sans TC',sans-serif;font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.turn-old{border:1px solid var(--line);border-radius:11px;background:#fbfcfa;font-family:'Noto Sans TC',sans-serif}
.turn-old summary{padding:9px 12px;color:#536c57;font-size:11px;font-weight:600;cursor:pointer}
.turn-old .recipe-result{margin:0;padding:0 12px 12px}
.thread .recipe-result{margin-top:0}
.followup{margin-top:20px;padding-top:16px;border-top:1px solid #dce2d8;font-family:'Noto Sans TC',sans-serif}
.followup[hidden]{display:none}
.followup-label{display:block;margin:0 0 8px;color:#4e5e53;font-size:11px;font-weight:600}
.followup-row{display:flex;gap:7px}
.followup-row input{flex:1;min-width:0}
.followup-send{flex:0 0 auto;height:40px;padding:0 14px;border:0;border-radius:9px;background:var(--green);color:#fff;font-family:'Noto Sans TC',sans-serif;font-size:11px;font-weight:600;cursor:pointer}
.followup-send:disabled{cursor:wait;opacity:.7}
.quick-replies{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.quick-reply,.reset-button{padding:5px 10px;border:1px solid #cfdccb;border-radius:20px;background:#eef4ea;color:#41603f;font-family:'Noto Sans TC',sans-serif;font-size:10px;cursor:pointer}
.quick-reply:hover{background:#e3edde}
.quick-reply:disabled{cursor:wait;opacity:.6}
.reset-button{border-style:dashed;background:transparent;color:#8a978a}
.followup-status{margin:10px 0 0;color:#667967;font-size:10px}
.followup .recipe-error{margin-top:10px}
.followup :focus-visible,.turn-old summary:focus-visible{outline:2px solid #64856b;outline-offset:2px}
