@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700;900&display=swap";:root{font-family:DM Sans,Noto Sans TC,sans-serif;color:#201f1b;background:#fcf8f1;font-synthesis:none;--ink:#201f1b;--paper:#fcf8f1;--lime:#dfff43;--orange:#ff6b35;--line:#d9d1c4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.brand{font-weight:900;letter-spacing:-.03em;font-size:1.05rem}.brand.light{color:#fff}.button{display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:.7rem 1.2rem;border:1px solid var(--ink);border-radius:100px;text-decoration:none;font-weight:700;cursor:pointer;background:transparent}.button.primary{background:var(--ink);color:#fff;box-shadow:4px 4px 0 var(--orange)}.button.ghost{background:transparent}.button.full{width:100%;border-radius:14px}.button:disabled{opacity:.45;cursor:not-allowed}.eyebrow{text-transform:uppercase;font-size:.72rem;font-weight:900;letter-spacing:.16em}.error{color:#aa251b;background:#ffe7df;padding:.7rem;border-radius:8px;font-size:.85rem}.notice{color:#3f5200;background:#eefbc1;padding:.7rem;border-radius:8px;font-size:.85rem}.muted{color:#716d65}.landing{min-height:100vh;padding:2rem clamp(1.25rem,5vw,5rem);background:radial-gradient(circle at 78% 15%,#f8cfc2 0,transparent 23%),var(--paper)}.landing nav{display:flex;justify-content:space-between;align-items:center}.hero{min-height:65vh;display:flex;flex-direction:column;justify-content:center;max-width:900px}.hero h1{font-size:clamp(3.6rem,10vw,9rem);line-height:.88;letter-spacing:-.075em;margin:.18em 0}.hero h1 em{color:var(--orange);font-style:normal}.hero>p:not(.eyebrow){max-width:560px;font-size:1.15rem;line-height:1.7}.hero .button{align-self:flex-start;margin-top:1rem}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.feature-grid article{padding:2rem;border-right:1px solid var(--ink)}.feature-grid article:last-child{border:0}.feature-grid b{color:var(--orange)}.feature-grid h2{margin:.7rem 0 .2rem}.menu-shell{max-width:720px;margin:auto;min-height:100vh;padding-bottom:100px;background:var(--paper);box-shadow:0 0 80px #493b2220}.menu-header{background:var(--ink);color:#fff;padding:1.1rem 1.25rem;display:flex;justify-content:space-between}.menu-header p{margin:0;font-size:.68rem;letter-spacing:.17em}.merchant-title{padding:3rem 1.25rem 2rem;background:var(--lime);border-bottom:1px solid var(--ink)}.merchant-title p{font-size:.72rem;font-weight:800}.merchant-title h1{font-size:clamp(2.5rem,9vw,4.5rem);line-height:.95;letter-spacing:-.06em;margin:.35rem 0}.merchant-title h2{margin:0;font-weight:500;font-size:1rem}.category-tabs{position:sticky;top:0;z-index:4;display:flex;gap:.5rem;overflow:auto;padding:.8rem 1.25rem;background:#fcf8f1ee;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.category-tabs a{white-space:nowrap;text-decoration:none;padding:.45rem .8rem;border:1px solid var(--ink);border-radius:100px;font-weight:600;font-size:.85rem}.menu-list{padding:1rem 1.25rem}.menu-list section{scroll-margin-top:70px;padding-top:1.3rem}.section-heading{display:flex;align-items:baseline;gap:.7rem;border-bottom:2px solid var(--ink)}.section-heading h2{font-size:1.7rem;margin:0 0 .5rem}.section-heading span{color:#777168;font-size:.8rem}.product-row{width:100%;display:flex;justify-content:space-between;gap:1rem;text-align:left;padding:1.2rem 0;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer}.product-row img{width:78px;height:78px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}.product-row>span:nth-last-child(2){flex:1}.product-row strong,.product-row small{display:block}.product-row strong{font-size:1.1rem}.product-row small,.product-row p{color:#716d65}.product-row p{margin:.4rem 0 0;font-size:.84rem}.product-price{white-space:nowrap;font-weight:700}.product-row:disabled{opacity:.45}.cart-bar{position:fixed;z-index:6;bottom:18px;left:50%;transform:translate(-50%);width:min(680px,calc(100% - 28px));display:flex;justify-content:space-between;padding:1rem 1.25rem;border:0;border-radius:15px;background:var(--ink);color:#fff;box-shadow:0 10px 35px #0005;cursor:pointer}.overlay{position:fixed;z-index:20;inset:0;background:#0008;display:flex;justify-content:center;align-items:flex-end}.sheet{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--paper);padding:2rem 1.3rem calc(1.3rem + env(safe-area-inset-bottom));border-radius:25px 25px 0 0;position:relative;animation:rise .24s ease-out}@keyframes rise{0%{transform:translateY(30px);opacity:0}}.sheet .close{position:absolute;right:1rem;top:1rem;width:38px;height:38px;border:1px solid var(--ink);border-radius:50%;background:transparent;font-size:1.5rem}.sheet h2{font-size:2rem;margin:.25rem 0}.sheet fieldset{border:0;padding:1rem 0;border-top:1px solid var(--line)}.sheet legend{font-weight:800;padding-top:1rem}.sheet legend em{font-style:normal;color:var(--orange);font-size:.7rem}.sheet fieldset label{display:flex;padding:.65rem 0;align-items:center;gap:.5rem}.sheet fieldset label span{flex:1}.quantity{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem 0}.quantity button{width:40px;height:40px;border:1px solid var(--ink);border-radius:50%;background:#fff}.segmented{display:grid;grid-template-columns:repeat(2,1fr);padding:4px;gap:4px;background:#e9e3d9;border-radius:12px;margin:1rem 0}.segmented button{border:0;padding:.7rem;background:transparent;border-radius:9px}.segmented button.active{background:#fff;box-shadow:0 2px 8px #0001;font-weight:700}.field{display:flex;flex-direction:column;gap:.4rem;margin:1rem 0;font-weight:600}.field input,.field select{min-height:48px;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:#fff}.field small{font-weight:400;color:#716d65}.payment-note{padding:1rem;background:#ece6db;border-radius:12px;margin:1rem 0}.payment-note p{margin:.3rem 0}.status-page{max-width:600px;margin:auto;min-height:100vh;padding:2rem 1.25rem;text-align:center}.status-page .eyebrow{margin-top:4rem}.status-orb{width:170px;height:170px;margin:2rem auto;border:2px solid var(--ink);border-radius:50%;display:grid;place-items:center;background:#ffd9cd;box-shadow:10px 10px 0 var(--ink)}.status-orb.accepted,.status-orb.preparing{background:#fff5a8}.status-orb.ready,.status-orb.completed{background:var(--lime)}.status-orb span{font-weight:900}.status-page h1{font-size:2.6rem;letter-spacing:-.05em}.receipt{margin-top:2rem;border-top:2px solid var(--ink);text-align:left}.receipt>div{display:flex;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid var(--line)}.receipt-total{font-size:1.2rem}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1.25rem;background:var(--lime)}.auth-page>.brand{position:absolute;left:2rem;top:2rem}.auth-card{width:min(430px,100%);padding:2rem;background:var(--paper);border:2px solid var(--ink);box-shadow:9px 9px 0 var(--ink)}.auth-card h1{font-size:2.5rem;letter-spacing:-.05em}.dashboard{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#f3efe8}.dashboard aside{background:var(--ink);color:#fff;padding:1.5rem;display:flex;flex-direction:column;gap:2.5rem}.dashboard aside div strong,.dashboard aside div small{display:block}.dashboard aside div small{opacity:.6;margin-top:.4rem;overflow-wrap:anywhere}.dashboard aside nav{display:grid;gap:.5rem}.dashboard aside nav button,.logout{text-align:left;border:0;border-radius:8px;padding:.75rem;color:#fff;background:transparent;cursor:pointer}.dashboard aside nav button.active{background:var(--lime);color:var(--ink);font-weight:800}.logout{margin-top:auto;opacity:.7}.dashboard>main{padding:2rem clamp(1.2rem,4vw,3.5rem);overflow:hidden}.dashboard>main>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard h1{margin:.2rem 0;font-size:2.5rem;letter-spacing:-.05em}.order-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.order-card{background:#fff;padding:1.1rem;border:1px solid var(--line);border-top:7px solid var(--orange);border-radius:8px}.order-card.accepted,.order-card.preparing{border-top-color:#e9cb00}.order-card.ready,.order-card.completed{border-top-color:#94bd00}.order-meta{display:flex;justify-content:space-between}.order-card h2{margin:.8rem 0}.order-card p{margin:.3rem 0}.order-card>strong{display:block;margin-top:1rem}.order-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.order-actions button{padding:.4rem .6rem;border:1px solid var(--ink);background:#fff;border-radius:6px;cursor:pointer}.admin-columns{display:grid;grid-template-columns:1fr 2fr;gap:1rem}.panel{background:#fff;padding:1.25rem;border:1px solid var(--line)}.panel.narrow{max-width:750px}.admin-row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.admin-row code{color:#716d65;overflow-wrap:anywhere}.inline-form{display:flex;gap:.5rem;margin-top:1rem}.inline-form input{min-width:0;flex:1;padding:.6rem;border:1px solid var(--line)}.inline-form button{border:0;background:var(--ink);color:#fff;padding:.6rem 1rem}.product-form{flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:1rem}.metric-grid article{background:#fff;padding:1.5rem;border:1px solid var(--line)}.metric-grid small,.metric-grid b{display:block}.metric-grid b{font-size:2.1rem;margin-top:.5rem}.empty{min-height:100vh;display:grid;place-content:center;text-align:center;gap:1rem}@media(max-width:720px){.feature-grid{grid-template-columns:1fr}.feature-grid article{border-right:0;border-bottom:1px solid var(--ink)}.dashboard{display:block}.dashboard aside{position:sticky;top:0;z-index:10;padding:.8rem 1rem;display:block}.dashboard aside>div,.dashboard .logout{display:none}.dashboard aside nav{display:flex;overflow:auto;margin-top:.6rem}.dashboard aside nav button{white-space:nowrap}.dashboard>main{padding:1.2rem}.dashboard>main>header{align-items:flex-start;gap:1rem}.dashboard h1{font-size:2rem}.admin-columns{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}}
