:root{--paper: #fbfaf6;--surface: #fffefb;--surface-muted: #f1efe7;--ink: #2c3736;--ink-muted: #75817e;--primary: #46555a;--primary-pressed: #37454a;--gold: #a98e63;--border: #e2e2d8;--danger: #a03d38;--shadow-sm: 0 4px 18px rgb(44 55 54 / 8%);--shadow-sheet: 0 -18px 60px rgb(20 30 28 / 24%);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;color:var(--ink);background:var(--paper);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;min-height:100dvh;background:url(/images/paper-mountains.webp) no-repeat bottom center / 100% auto,var(--paper);color:var(--ink);overscroll-behavior-y:contain}body.overlay-open{overflow:hidden}button,input,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.46}.skip-link{position:fixed;top:8px;left:8px;z-index:1000;transform:translateY(-160%);padding:10px 14px;border-radius:8px;background:var(--ink);color:#fff}.skip-link:focus{transform:translateY(0)}.menu-app{display:flex;flex-direction:column;width:100%;max-width:980px;height:100dvh;margin:0 auto}.app-header{flex:0 0 auto;padding:10px 18px 12px;background:linear-gradient(180deg,#2634345c,#26343470),url(/images/header-cover.webp) no-repeat center 42% / cover,#5c6b6c;color:#fffdf9}.app-header .eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.22em}.search-bar{display:flex;align-items:center;gap:8px;margin-top:12px;min-height:44px;padding:0 8px 0 14px;border-radius:999px;background:#fffdf7f5;box-shadow:0 6px 18px #1e2a2a33}.search-bar:focus-within{box-shadow:0 0 0 3px #fffdf773,0 6px 18px #1e2a2a3d}.search-bar .icon{width:18px;height:18px;color:var(--ink-muted)}.search-bar input{flex:1 1 auto;min-width:0;border:0;background:transparent;color:var(--ink);font-size:16px;line-height:1.4}.search-bar input::placeholder{color:#a08d85}.search-bar input:focus-visible{outline:none}.search-bar input::-webkit-search-cancel-button,.search-bar input::-webkit-search-decoration{-webkit-appearance:none;display:none}.search-clear{display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:var(--surface-muted);color:var(--ink-muted)}.search-clear .icon{width:14px;height:14px}.menu-body{display:flex;flex:1 1 auto;min-height:0}.eyebrow,.sheet-kicker{margin:0 0 6px;color:#e8d9b0;font-size:12px;font-weight:700;letter-spacing:.22em}h1,h2,h3,p{overflow-wrap:anywhere}h1{margin:0;font-family:Songti SC,STSong,"Noto Serif CJK SC",serif;font-size:clamp(26px,6vw,30px);font-weight:700;letter-spacing:.1em;line-height:1.15}.category-rail{flex:0 0 92px;align-self:stretch;overflow-y:auto;border-right:1px solid var(--border);background:var(--surface-muted);overscroll-behavior:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.category-rail::-webkit-scrollbar{display:none}.category-rail button{position:relative;display:block;width:100%;min-height:56px;padding:10px 22px 10px 12px;border:0;background:transparent;color:var(--ink);font-size:14px;font-weight:600;line-height:1.35;text-align:left;transition:background .16s ease,color .16s ease}.category-rail button em{position:absolute;top:6px;right:7px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--primary);color:#fffdf7;font:700 12px/18px -apple-system,PingFang SC,Noto Sans CJK SC,sans-serif;font-style:normal;text-align:center}.category-rail button[aria-current=true]{background:var(--surface);color:var(--primary);font-weight:700;box-shadow:inset 3px 0 0 var(--gold)}.dish-pane{flex:1 1 auto;min-width:0;overflow-y:auto;padding:14px 14px 24px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.reuse-card{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;margin:0 0 12px;padding:10px 14px;border:1px solid rgb(70 85 90 / 26%);border-radius:var(--radius-md);background:#e9ece5;color:var(--primary);font-size:15px;font-weight:700;text-align:left}.icon{width:22px;height:22px;flex:0 0 auto}.menu-category{margin:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.category-header{position:relative;display:flex;align-items:stretch;justify-content:space-between;min-height:78px;overflow:hidden;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#ece7dc,#f8f5ed)}.category-header>div{position:relative;z-index:2;padding:13px 16px}.category-header p{margin:0 0 2px;color:var(--primary);font:700 12px/1.2 Georgia,serif;letter-spacing:.16em}.category-header h2{margin:0;font:700 22px/1.2 Songti SC,STSong,serif;letter-spacing:.08em}.category-header img{width:40%;height:78px;object-fit:cover;object-position:center;mask-image:linear-gradient(90deg,transparent,#000 26%)}.ink-mark{position:absolute;right:-34px;top:-48px;width:170px;height:170px;border-radius:45% 55% 56% 44%;background:radial-gradient(circle at 40% 40%,rgb(70 85 90 / 20%),rgb(70 85 90 / 4%) 64%,transparent 65%);transform:rotate(-18deg)}.menu-list,.selected-group ul{margin:0;padding:0;list-style:none}.search-summary{margin:2px 2px 10px;color:var(--ink-muted);font-size:14px}.search-results{display:grid;gap:14px}.search-group-label{margin:0;padding:12px 14px 6px 18px;color:var(--primary);font-size:14px;font-weight:700;letter-spacing:.12em}.search-empty{padding:64px 24px;text-align:center}.search-empty p{margin:0 0 6px;color:var(--ink-muted);font-size:16px}.search-empty .search-empty-hint{margin:0;font-size:14px}.menu-item{border-bottom:1px solid #eee8dc;transition:background .18s ease}.menu-item:last-child{border-bottom:0}.menu-item.is-selected{background:#eef0e8}.menu-item-main{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px 10px 18px}.menu-item h3{margin:0;font-size:16px;font-weight:600;line-height:1.45}.menu-item p{margin:3px 0 0;color:var(--ink-muted);font-size:14px}.menu-item .unit-label{display:inline-block;color:var(--primary)}.add-button,.quantity-control button,.icon-button{display:inline-grid;place-items:center;flex:0 0 auto;width:48px;height:48px;padding:0;border:1px solid rgb(70 85 90 / 30%);border-radius:50%;background:var(--surface);color:var(--primary)}.add-button{width:40px;height:40px;color:#fff;background:var(--primary);border-color:var(--primary)}.add-button .icon{width:18px;height:18px}.quantity-control{display:flex;align-items:center;gap:6px;flex:0 0 auto}.quantity-control button{width:40px;height:40px}.quantity-control .icon{width:18px;height:18px}.quantity-control span{min-width:44px;color:var(--primary);font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.method-button{display:inline-flex;align-items:center;gap:4px;min-height:48px;padding:0 12px 0 16px;border:1px solid rgb(70 85 90 / 30%);border-radius:999px;background:transparent;color:var(--primary);font-size:15px;font-weight:700}.method-button .icon{width:17px;height:17px}.variant-lines{padding:0 14px 10px 24px}.variant-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;border-top:1px dashed var(--border);font-size:15px}.variant-line>span{color:var(--ink-muted)}.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border:1px solid transparent;border-radius:12px;font-size:16px;font-weight:700;line-height:1.2;transition:background .18s ease,color .18s ease,border-color .18s ease,opacity .18s ease}.button-primary{color:#fff;background:var(--primary);border-color:var(--primary)}.button-primary:active{background:var(--primary-pressed)}.button-secondary{color:var(--primary);background:var(--surface);border-color:#46555a52}.button-danger{color:#fff;background:var(--danger);border-color:var(--danger)}.button-clear{color:var(--danger);background:var(--surface);border-color:#7e1a164d}.order-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:calc(72px + env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid rgb(221 213 198 / 88%);background:#fffdf7f5;box-shadow:0 -8px 26px #18292314}.order-bar>div{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.order-bar strong{font-size:18px;white-space:nowrap}.order-bar .button-primary{flex:0 0 auto;min-width:124px}.order-bar .icon{width:18px;height:18px}.dialog-backdrop,.sheet-backdrop{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;justify-content:center;padding-top:max(24px,env(safe-area-inset-top));background:#0513108f;backdrop-filter:blur(3px)}.dialog{width:min(100%,560px);max-height:82dvh;overflow:auto;padding:20px 18px calc(20px + env(safe-area-inset-bottom));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);box-shadow:var(--shadow-sheet);animation:sheet-in .22s ease-out}.dialog-header,.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dialog-header h2,.sheet-header h2{margin:0;font:700 24px/1.25 Songti SC,STSong,serif}.dialog-header .icon-button,.sheet-header .icon-button{width:48px;height:48px;border-color:transparent;background:var(--surface-muted)}.dialog-help,.confirm-copy{margin:12px 0 18px;color:var(--ink-muted);font-size:15px;line-height:1.65}.method-list{display:grid;gap:10px}.method-list button{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:10px 16px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--ink);text-align:left}.method-list button span:last-child{color:var(--primary);font-size:14px;font-weight:700}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.sheet{display:flex;flex-direction:column;width:min(100%,640px);max-height:calc(100dvh - max(16px,env(safe-area-inset-top)));border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--surface);box-shadow:var(--shadow-sheet);animation:sheet-in .22s ease-out}.sheet-header{flex:0 0 auto;padding:20px 18px 16px;border-bottom:1px solid var(--border)}.sheet-kicker{color:var(--primary);letter-spacing:.12em}.sheet-scroll{min-height:0;overflow-y:auto;padding:12px 18px 24px;overscroll-behavior:contain}.selected-group{margin-bottom:18px}.selected-group h3{margin:0;padding:10px 0 8px;color:var(--primary);font-size:14px;letter-spacing:.12em}.selected-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;border-bottom:1px solid #eee8dc}.selected-line-name{min-width:0;font-size:16px;font-weight:600;line-height:1.45}.selected-line .quantity-control button{width:36px;height:36px}.selected-line .quantity-control .icon{width:16px;height:16px}.selected-line .quantity-control span{min-width:40px;font-size:15px}.note-panel{margin:20px 0;border:1px solid var(--border);border-radius:14px;background:#fbf8f0}.note-panel summary{display:flex;min-height:52px;align-items:center;justify-content:space-between;padding:12px 14px;color:var(--primary);font-weight:700;cursor:pointer;list-style:none}.note-panel summary::-webkit-details-marker{display:none}.note-panel[open] summary .icon{transform:rotate(90deg)}.note-panel label{display:block;padding:0 14px 6px;color:var(--ink-muted);font-size:14px}.note-panel textarea{display:block;width:calc(100% - 28px);min-height:92px;margin:0 14px 14px;padding:12px;resize:vertical;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--ink);font-size:16px;line-height:1.55}.empty-state{padding:50px 0;text-align:center}.empty-state p{color:var(--ink-muted);font-size:18px}.sheet-footer{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}.sheet-footer>div{display:flex;flex-direction:column}.sheet-footer strong{font-size:18px}.sheet-footer span{margin-top:2px;color:var(--ink-muted);font-size:14px}.sheet-footer .button-primary{min-width:198px}.image-sheet{height:calc(100dvh - max(16px,env(safe-area-inset-top)))}.image-preview-wrap{padding-top:18px;background:var(--surface-muted);text-align:center}.image-preview{display:block;width:min(100%,520px);height:auto;margin:0 auto;border-radius:8px;box-shadow:0 8px 30px #18292329;-webkit-touch-callout:default}.image-hint,.share-status{margin:14px auto 0;color:var(--ink-muted);font-size:14px;line-height:1.6}.share-status{color:var(--primary);font-weight:600}.image-actions{display:grid;grid-template-columns:1fr 1fr}.image-actions .button{min-width:0}.live-region{position:fixed;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(min-width:768px){.menu-app{max-width:1080px}.app-header{padding:14px 24px 16px}.category-rail{flex-basis:118px}.category-rail button{font-size:15px;padding:12px 24px 12px 14px}.dish-pane{padding:20px 22px 30px}.menu-item-main{padding:12px 16px 12px 20px}.menu-item h3{font-size:17px}.category-header h2{font-size:23px}.dialog-header h2,.sheet-header h2{font-size:26px}.selected-line-name{font-size:17px}}@media(orientation:landscape)and (max-height:560px){.app-header{padding:8px 18px}.app-header .eyebrow{display:none}.search-bar{margin-top:8px;min-height:40px}.dialog,.sheet{max-height:94dvh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
