:root{--ink:#15241d;--paper:#fffdf7;--line:#d9ded5;--sage:#dce9dc;--green:#276749;--red:#b42318;--muted:#617066;--radius:6px;--shadow:0 12px 22px #15241d1a}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);padding:24px;font-family:Segoe UI,PingFang TC,Noto Sans TC,Helvetica Neue,Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}.container{max-width:1180px;margin:0 auto}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:18px;display:flex}.brand{color:var(--ink);letter-spacing:.12em;font-size:.84rem;font-weight:800;text-decoration:none}.lang-menu-wrap,.lang-menu-wrap details{position:relative}.lang-menu-wrap summary{cursor:pointer;color:var(--ink);border-radius:var(--radius);background:0 0;border:none;padding:4px 8px;font-size:.9rem;list-style:none}.lang-menu-wrap summary:hover{background:var(--sage)}.lang-menu-wrap summary::-webkit-details-marker{display:none}.lang-dropdown{z-index:10;border:1px solid var(--line);border-radius:var(--radius);min-width:8rem;box-shadow:var(--shadow);background:#fff;margin-top:4px;padding:.5rem;position:absolute;right:0}.lang-dropdown a{color:var(--ink);cursor:pointer;border-radius:4px;padding:.45rem .6rem;font-size:.85rem;text-decoration:none;display:block}.lang-dropdown a:hover{background:var(--sage)}.lang-dropdown a.active-lang{background:var(--sage);font-weight:600}.hero{max-width:650px;padding:32px 0 12px}.hero .eyebrow{color:var(--green);letter-spacing:.13em;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:800}.hero h1{letter-spacing:-.045em;color:var(--ink);margin:.2rem 0 .6rem;font:800 clamp(2.2rem,6vw,4.6rem)/.98 Georgia,serif}.hero p{color:var(--muted);margin:0;font-size:1.1rem;line-height:1.55}.steps-guide{background:var(--sage);border-radius:var(--radius);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:20px;padding:14px 20px;display:flex}.steps-guide .step{color:var(--ink);align-items:center;gap:6px;font-size:.9rem;font-weight:500;display:flex}.steps-guide .step-num{background:var(--green);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:700;display:inline-flex}.steps-guide .step-arrow{color:var(--muted);font-size:1.1rem}.tool-grid{grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr);align-items:start;gap:42px;margin-top:8px;display:grid}.controls{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;padding:clamp(18px,3vw,30px)}.controls fieldset{border:0;border-top:1px solid var(--line);margin:0;padding:22px 0}.controls fieldset:first-child{border-top:0;padding-top:0}.controls legend{width:100%;color:var(--ink);padding:0 0 12px;font:700 1rem/1.2 Georgia,serif}.controls legend .legend-num{color:var(--green);letter-spacing:.13em;margin-right:10px;font-size:.7rem;font-weight:800;display:inline-block}.controls legend em{color:var(--red);float:right;font:600 .7rem/1 sans-serif}.controls select,.controls textarea{border-radius:var(--radius);width:100%;color:var(--ink);background:#fff;border:1px solid #aab5aa;outline:none;padding:.8rem .9rem;font-size:.95rem;transition:border-color .2s}.controls select:focus,.controls textarea:focus{border-color:var(--green)}.controls small{color:var(--muted);margin-top:.55rem;font-size:.77rem;line-height:1.45;display:block}.custom-food-hint{color:var(--muted);margin-bottom:8px;font-size:.78rem;line-height:1.4}.quick-grid{grid-template-columns:1fr 1fr 1fr 1fr;gap:10px;display:grid}.quick-btn{border:1px solid var(--line);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--ink);user-select:none;background:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:64px;padding:12px 8px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.quick-btn:hover{border-color:var(--green);background:var(--sage)}.quick-btn .icon{margin-bottom:2px;font-size:20px;display:block}.quick-btn .desc{color:var(--muted);margin-top:2px;font-size:10px;font-weight:400}.quick-btn.active{border-color:var(--green);background:var(--sage);box-shadow:0 0 0 3px #27674926}.quick-btn.active-red{border-color:var(--red);background:#fff3f1;box-shadow:0 0 0 3px #b4231826}.quick-btn.active-orange{background:#fdf5ea;border-color:#d4853a;box-shadow:0 0 0 3px #d4853a26}.quick-btn.active-green{border-color:var(--green);background:var(--sage);box-shadow:0 0 0 3px #27674926}.quick-btn.active-gray{background:#f3f1ee;border-color:#8f8a84;box-shadow:0 0 0 3px #8f8a8426}.vegan-quick-row{border-top:1.5px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;display:flex}.vegan-quick-btn{border:1px solid var(--line);cursor:pointer;user-select:none;color:var(--ink);touch-action:manipulation;background:#fff;border-radius:40px;align-items:center;min-height:32px;padding:5px 14px;font-size:12px;transition:all .15s;display:inline-flex}.vegan-quick-btn:hover{border-color:var(--green);background:var(--sage)}.vegan-quick-btn.active{border-color:var(--green);background:var(--sage);color:var(--green)}.vegan-status-text{color:var(--muted);align-items:center;margin-right:6px;font-size:12px;display:flex}.quick-hint{color:var(--muted);margin-top:10px;font-size:12px}.quick-hint strong{color:var(--ink)}.food-group{margin-bottom:14px}.food-group-label{color:var(--ink);border-bottom:1.5px solid var(--line);margin-bottom:6px;padding-bottom:3px;font-size:13px;font-weight:700}.food-grid{flex-wrap:wrap;gap:6px;display:flex}.food-chip{border-radius:var(--radius);border:1px solid var(--line);cursor:pointer;user-select:none;min-height:34px;color:var(--ink);touch-action:manipulation;background:#fff;align-items:center;gap:5px;padding:5px 12px;font-size:13px;transition:all .15s;display:inline-flex}.food-chip:hover{border-color:var(--green);background:var(--sage)}.food-chip .label{font-size:13px;font-weight:400}.food-chip .severity-tag{letter-spacing:.3px;cursor:pointer;background:var(--line);color:var(--muted);touch-action:manipulation;border-radius:40px;align-items:center;min-height:20px;margin-left:2px;padding:1px 7px;font-size:8px;font-weight:700;transition:all .15s;display:inline-flex}.food-chip .severity-tag.allergy{color:var(--red);background:#fff3f1}.food-chip .severity-tag.drug{color:#b8702a;background:#fdf5ea}.food-chip .severity-tag.diet{background:var(--sage);color:var(--green)}.food-chip .severity-tag.dislike{color:#6b625a;background:#f3f1ee}.food-chip .remove-btn{color:var(--muted);cursor:pointer;touch-action:manipulation;margin-left:2px;padding:0 3px;font-size:15px;line-height:1}.food-chip .remove-btn:hover{color:var(--red)}.food-chip.inactive{opacity:.5;border-color:var(--line);background:#faf8f6}.food-chip.inactive .severity-tag{display:none}.custom-food-area{border-top:1.5px solid var(--line);margin-top:14px;padding-top:14px}.custom-food-area .custom-label{margin-bottom:2px;font-size:13px;font-weight:600;display:block}.custom-food-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.custom-food-row input[type=text]{border-radius:var(--radius);min-width:140px;color:var(--ink);background:#fff;border:1px solid #aab5aa;outline:none;flex:1;padding:.6rem .8rem;font-size:13px;transition:border-color .2s}.custom-food-row input[type=text]:focus{border-color:var(--green)}.custom-reason-group{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.custom-reason-group label{color:var(--ink);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.custom-reason-group input[type=radio]{accent-color:var(--green);cursor:pointer;width:14px;height:14px}.btn-add-custom{background:var(--green);color:#fff;border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;padding:.5rem 1.2rem;font-size:13px;font-weight:600;transition:background .2s}.btn-add-custom:hover{background:#1d533a}.custom-list{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.custom-chip{border-radius:var(--radius);border:1px solid var(--line);color:var(--ink);background:#fff;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:inline-flex}.custom-chip .custom-reason-tag{border-radius:40px;margin-left:2px;padding:1px 6px;font-size:8px;font-weight:700}.custom-chip .custom-reason-tag.allergy{color:var(--red);background:#fff3f1}.custom-chip .custom-reason-tag.drug{color:#b8702a;background:#fdf5ea}.custom-chip .custom-reason-tag.diet{background:var(--sage);color:var(--green)}.custom-chip .custom-reason-tag.dislike{color:#6b625a;background:#f3f1ee}.custom-chip .custom-remove{color:var(--muted);cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.custom-chip .custom-remove:hover{color:var(--red)}.custom-empty{color:var(--muted);margin-top:6px;font-size:12px}.cross-contact-area{border-top:1.5px solid var(--line);margin-top:14px;padding-top:14px}.cross-contact-area label{cursor:pointer;color:var(--ink);align-items:center;gap:8px;font-size:.88rem;display:flex}.cross-contact-area input[type=checkbox]{width:17px;height:17px;accent-color:var(--green);cursor:pointer}.cross-contact-area .cross-hint{color:var(--muted);margin-top:2px;margin-left:25px;font-size:.75rem}.note-area{margin-top:4px}.note-area label{margin-bottom:6px;font-size:.87rem;font-weight:700;display:block}.note-area textarea{resize:vertical;min-height:60px}.action-row{border-top:1.5px solid var(--line);flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:16px;display:flex}.btn-clear{color:var(--muted);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;touch-action:manipulation;background:0 0;min-height:44px;padding:.7rem 1.4rem;font-size:13px;transition:all .15s}.btn-clear:hover{border-color:var(--green);color:var(--ink);background:var(--sage)}.btn-generate{background:var(--ink);color:#fff;border-radius:var(--radius);cursor:pointer;touch-action:manipulation;border:none;min-height:44px;padding:.7rem 2rem;font-size:15px;font-weight:700;transition:background .2s}.btn-generate:hover{background:#0d1a14}.preview-panel{border-radius:var(--radius);background:#eff4ed;padding:22px;position:sticky;top:20px}.preview-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.preview-heading .preview-label{color:var(--green);letter-spacing:.13em;font-size:.7rem;font-weight:800}.preview-heading strong{font:700 1rem Georgia,serif}#cardContainer{border:1px solid var(--ink);border-radius:var(--radius);cursor:pointer;background:#fff;min-height:320px;padding:28px;font-family:Segoe UI,PingFang TC,Noto Sans TC,Helvetica Neue,sans-serif;transition:all .2s;box-shadow:9px 9px #cadbc9}#cardContainer.card-red{background:#fef6f4}#cardContainer.card-orange{background:#fef9f2}#cardContainer.card-blue{background:#f4f8fa}#cardContainer.card-gray{background:#faf8f6}#cardContainer.fullscreen{z-index:9999;max-width:100vw;max-height:100vh;box-shadow:none;cursor:default;border-radius:0;flex-direction:column;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0;overflow-y:auto}#cardContainer.fullscreen .card-empty,#cardContainer.fullscreen #cardContent,#cardContainer.fullscreen .card-confirm{width:100%;max-width:600px}#cardContainer.fullscreen .card-empty{font-size:1.2rem}#cardContainer.fullscreen .card-confirm{font-size:1rem}#cardContainer.fullscreen .allergy-box{padding:24px 28px}#cardContainer.fullscreen .allergy-box .box-title{font-size:1.4rem}#cardContainer.fullscreen .allergy-box .box-items{font-size:1.3rem}#cardContainer.fullscreen .section-block .section-items{font-size:1.2rem}.fullscreen-close{z-index:10000;background:var(--red);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.6rem;line-height:1;transition:transform .2s;display:none;position:fixed;top:20px;right:30px;box-shadow:0 4px 12px #0000004d}.fullscreen-close:hover{transform:scale(1.05)}.fullscreen-close.show{display:flex}.card-empty{text-align:center;color:var(--muted);padding:30px 0;font-size:14px}#cardContent .card-title{color:var(--ink);margin-bottom:12px;font-size:1.1rem;font-weight:900}.allergy-box{border:2px solid var(--red);border-radius:var(--radius);background:#fef6f4;margin-bottom:16px;padding:16px 18px}.allergy-box .box-title{color:var(--red);margin-bottom:6px;font-size:1rem;font-weight:900}.allergy-box .box-sub{color:var(--red);margin-top:10px;font-size:.85rem;font-weight:700}.allergy-box .box-items{color:var(--red);font-size:1.05rem;font-weight:600;line-height:1.5}.allergy-box .box-cross{color:var(--red);margin-top:4px;font-size:.82rem;line-height:1.5}.section-block{margin-bottom:14px}.section-block .section-title{color:var(--ink);margin-bottom:2px;font-size:.85rem;font-weight:700}.section-block .section-title.drug{color:#b8702a}.section-block .section-title.diet{color:var(--green)}.section-block .section-title.dislike{color:#6b625a}.section-block .section-items{color:var(--ink);padding-left:4px;font-size:1.05rem;font-weight:600;line-height:1.5}.section-block .section-items.drug{color:#b8702a}.section-block .section-items.diet{color:var(--green)}.section-block .section-items.dislike{color:#6b625a}.card-footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin-top:16px;padding-top:12px;font-size:.8rem;line-height:1.5}.card-footer .highlight{color:var(--ink);font-weight:600}.card-confirm{border-top:1px solid var(--line);color:var(--muted);margin:16px 0 0;padding-top:12px;font-size:.85rem;font-weight:700;line-height:1.4}.preview-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.preview-actions button{border:1px solid var(--ink);border-radius:var(--radius);cursor:pointer;touch-action:manipulation;background:#fff;flex:1;min-width:80px;padding:.6rem .5rem;font-size:.72rem;font-weight:700;transition:all .15s}.preview-actions button:hover{background:var(--sage);border-color:var(--green)}.preview-actions .btn-download-main{background:var(--ink);color:#fff;border-color:var(--ink)}.preview-actions .btn-download-main:hover{background:#0d1a14}.preview-actions .btn-emergency{background:var(--red);color:#fff;border-color:var(--red)}.preview-actions .btn-emergency:hover{background:#8f1a12;border-color:#8f1a12}.preview-actions .btn-fullscreen{color:#fff;background:#4a6fa5;border-color:#4a6fa5}.preview-actions .btn-fullscreen:hover{background:#3a5a8a;border-color:#3a5a8a}.preview-helper{color:var(--muted);margin-top:12px;font-size:.78rem;line-height:1.45}.emergency-modal-overlay{z-index:99999;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.emergency-modal{border-radius:var(--radius);background:#fff;width:100%;max-width:520px;padding:32px;position:relative;box-shadow:0 20px 60px #0000004d}.emergency-modal .modal-close{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:4px 8px;font-size:1.6rem;position:absolute;top:12px;right:16px}.emergency-modal .modal-close:hover{color:var(--red)}.emergency-modal .modal-content{margin-top:8px}.emergency-modal .modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.emergency-modal .modal-actions button{border-radius:var(--radius);cursor:pointer;border:1px solid var(--line);background:#fff;padding:10px 24px;font-size:.9rem;font-weight:700}.emergency-modal .modal-actions .btn-download-emergency{background:var(--red);color:#fff;border-color:var(--red)}.emergency-modal .modal-actions .btn-download-emergency:hover{background:#8f1a12;border-color:#8f1a12}.disclaimer{border-radius:var(--radius);color:var(--muted);text-align:center;border:1px solid var(--line);background:#eff4ed;margin-top:40px;padding:16px 20px;font-size:12px;line-height:1.8}@media (width<=820px){.tool-grid{grid-template-columns:1fr;gap:24px}.preview-panel{position:static}.quick-grid{grid-template-columns:1fr 1fr;gap:8px}.quick-btn{min-height:56px;padding:10px 6px;font-size:12px}.quick-btn .icon{font-size:18px}.quick-btn .desc{font-size:9px}.controls{padding:16px 14px}#cardContainer{padding:20px 16px;box-shadow:5px 5px #cadbc9}#cardContainer.fullscreen{padding:24px 16px}.custom-food-row{flex-direction:column;align-items:stretch}.custom-reason-group{justify-content:center}.preview-actions button{min-width:60px;padding:.5rem .3rem;font-size:.65rem}.steps-guide{gap:6px;padding:10px 14px;font-size:.8rem}.steps-guide .step-num{width:20px;height:20px;font-size:.65rem}.emergency-modal{margin:16px;padding:24px 20px}}@media (width<=480px){.quick-grid{grid-template-columns:1fr 1fr;gap:6px}.quick-btn{min-height:48px;padding:8px 4px;font-size:11px}.quick-btn .icon{font-size:16px}.food-chip{min-height:28px;padding:4px 8px;font-size:11px}.food-chip .label{font-size:11px}.food-chip .severity-tag{min-height:16px;padding:1px 5px;font-size:7px}.vegan-quick-btn{min-height:26px;padding:3px 10px;font-size:10px}#cardContainer{padding:16px 12px;box-shadow:3px 3px #cadbc9}#cardContainer.fullscreen{padding:16px 12px}.allergy-box .box-items,.section-block .section-items{font-size:.95rem}.preview-actions{flex-flow:wrap}.preview-actions button{flex:1 0 auto;min-width:50px;min-height:36px;font-size:.6rem}.hero h1{font-size:1.8rem}.hero p{font-size:.95rem}.site-header{flex-wrap:wrap;gap:8px}.steps-guide{gap:4px;padding:8px 10px;font-size:.7rem}.steps-guide .step-num{width:18px;height:18px;font-size:.55rem}.steps-guide .step-arrow{font-size:.8rem}.fullscreen-close{width:40px;height:40px;font-size:1.2rem;top:10px;right:10px}.emergency-modal{margin:12px;padding:20px 16px}.emergency-modal .modal-actions{flex-direction:column}.emergency-modal .modal-actions button{text-align:center;width:100%}}.hidden{display:none!important}@media print{body *{visibility:hidden}#cardContainer,#cardContainer *{visibility:visible}#cardContainer{width:100%;box-shadow:none;margin:0;padding:0;position:absolute;top:0;left:0}}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:2px}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:2px}.food-chip:focus-visible,.quick-btn:focus-visible,.vegan-quick-btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}:focus:not(:focus-visible){outline:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit;font-size:1rem}
