*{box-sizing:border-box}body{margin:0;background:#f4f6f2;color:#18392d;font:16px system-ui,sans-serif}header{background:white;border-bottom:1px solid #dde5dd;padding:16px max(18px,calc((100% - 1050px)/2));display:flex;align-items:center;gap:16px}header strong{font-size:30px;letter-spacing:-1.5px}header strong span{color:#86a76a}small,.muted{color:#567064}main{max-width:1050px;margin:auto;padding:24px 16px 80px}h1,h2,h3,p{margin:0 0 12px}h1{font-size:clamp(26px,5vw,40px);letter-spacing:-1px}.panel,details{background:white;border:1px solid #dce6dc;border-radius:14px;padding:18px;margin-bottom:14px}.narrow{max-width:460px;margin:24px auto}.hero{background:#e6eedf;padding:24px;border-radius:16px;margin-bottom:18px}.stack{display:grid;gap:12px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr));gap:14px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.line{border-top:1px solid #edf0eb;padding:12px 0}.chip{display:inline-block;padding:6px 10px;background:#e9f1e6;border-radius:20px;font-size:13px}button,.button{border:1px solid #275b43;border-radius:9px;background:#275b43;color:white;font:inherit;padding:10px 14px;text-decoration:none;cursor:pointer}button.secondary,.secondary{background:white;color:#275b43}button:disabled{opacity:.5;cursor:default}input,select{font:inherit;display:block;width:100%;border:1px solid #cbd9cc;border-radius:8px;padding:10px;background:white;color:inherit;margin-top:5px}label{font-size:14px}input[type=checkbox]{display:inline;width:auto}summary{cursor:pointer;font-weight:650}details[open] summary{margin-bottom:14px}.qty{display:flex;align-items:center;gap:8px}.qty button{padding:5px 10px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.steps span{border-radius:7px;padding:6px 8px;background:#f0f2ee;color:#607264;font-size:13px}.steps .done{background:#daeacb;color:#234c2e}.timer{font-size:26px;font-variant-numeric:tabular-nums;font-weight:700}.bar{position:sticky;bottom:0;padding:14px;background:#f4f6f2ee;border-top:1px solid #dce6dc}.qr{max-width:230px;display:block;margin:12px auto}#notice:not(:empty){position:fixed;left:16px;right:16px;bottom:12px;background:#fff5dd;color:#65441d;padding:14px;border:1px solid #dfc799;border-radius:8px;z-index:2}.bill{background:#f7f4e9;border-color:#e2d9b8}.inline{display:flex;gap:8px;align-items:end}.inline input{max-width:100px}dialog{border:1px solid #dce6dc;border-radius:14px;color:inherit;max-width:95vw}dialog::backdrop{background:#18392d66}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #8bb877;outline-offset:2px}
/* Guest app shell. Manager pages retain the desktop workspace styles. */
.guest-app{background:#eef2ee;color:#142a23}
.guest-app>header{position:sticky;top:0;z-index:3;padding:12px 20px;background:#10372b;color:#fff;justify-content:space-between;border:0}
.guest-app>header small{color:#c2dacd;font-size:12px}
.guest-app>main{max-width:560px;min-height:calc(100dvh - 58px);padding:20px 16px calc(160px + env(safe-area-inset-bottom));background:#f7f9f6}
.guest-app .narrow{margin:20px auto;border:0;padding:24px;box-shadow:0 12px 36px #163a2510}
.guest-app .narrow h1{font-size:30px;line-height:1.08;margin-bottom:12px}
.guest-app .narrow p{color:#60766a;line-height:1.5}
.guest-app .narrow form{margin-top:22px;gap:16px}
.guest-app .narrow input,.guest-app .narrow select{min-height:50px}
.guest-title{display:flex;align-items:center;gap:12px;margin:4px 0 20px}
.guest-title h1{font-size:32px;line-height:1.05;margin:0;letter-spacing:-1px}
.guest-kicker{font-size:12px;line-height:1.4;color:#5f7469;margin:0 0 5px}
.back-button{background:white;color:#163a2d;border:1px solid #e2e9e1;border-radius:14px;padding:0;width:42px;height:42px;flex:none;font-size:30px;line-height:1}
.guest-card{border:1px solid #e3eae2;border-radius:18px;background:white;padding:16px;margin:0 0 12px;box-shadow:0 4px 16px #193b2310}
.guest-card h2{font-size:18px;margin:0}
.category-tabs{display:flex;gap:8px;overflow:auto;padding:0 0 14px;margin-bottom:4px;scrollbar-width:thin}
.category-tabs button{background:white;color:#305348;border:1px solid #dfe8dd;white-space:nowrap;border-radius:30px;font-size:14px}
.category-tabs button[aria-pressed=true]{background:#163e30;color:white;border-color:#163e30}
.dish-row{display:flex;align-items:center;gap:12px}
.dish-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#e8f0e2;color:#315c43;flex:none;font-size:23px}
.dish-info{min-width:0;flex:1;overflow-wrap:anywhere}
.dish-info h2{font-size:16px}
.dish-info p,.cart-line p{margin:4px 0 0;color:#567064;font-size:13px}
.guest-app .qty{gap:6px;flex:none;font-size:14px}
.guest-app .qty button{min-width:34px;min-height:36px;padding:3px;border-radius:10px}
.cart-line{padding:13px 0;border-bottom:1px solid #edf2ec}
.cart-line:last-child{border-bottom:0}
.empty-state{text-align:center;padding:30px 16px}
.empty-state button{margin-top:16px}
.guest-nav,.guest-action{position:fixed;left:50%;transform:translateX(-50%);width:min(100%,560px);z-index:4}
.guest-nav{bottom:0;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #dfe8df;padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px #183b260a}
.guest-nav button{position:relative;display:grid;justify-items:center;gap:2px;border:0;background:none;color:#516b5f;padding:5px;font-size:12px;min-height:49px}
.guest-nav button[aria-current=page]{background:#e7f0e4;color:#184b33;font-weight:700}
.guest-nav button>span{font-size:19px;line-height:1.1}
.guest-nav b{position:absolute;top:2px;left:calc(50% + 10px);background:#174632;color:white;border-radius:20px;padding:1px 5px;font-size:10px}
.guest-action{bottom:calc(63px + env(safe-area-inset-bottom));padding:10px 16px;background:linear-gradient(transparent,#f7f9f6 25%)}
.guest-action button,.guest-primary{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:50px;background:#174632;color:white;border:0;border-radius:14px;padding:12px 16px;font-weight:700;text-decoration:none;box-shadow:0 6px 16px #17463222}
.tracking-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#153e30;color:white;padding:19px;border-radius:18px;margin-bottom:14px}
.tracking-summary h2{font-size:21px;line-height:1.2;margin:3px 0 7px}
.tracking-summary p{margin:0;color:#d8e8de;font-size:13px}
.tracking-summary .eta{display:grid;text-align:center;flex:none;background:#ffffff1a;padding:10px;border-radius:12px;min-width:74px;font-weight:750;font-variant-numeric:tabular-nums}
.tracking-summary .eta small{color:#e2efe6;font-size:11px;font-weight:400}
.order-timeline{padding:0;margin:18px 0 0;list-style:none}
.order-timeline li{position:relative;display:grid;grid-template-columns:25px 1fr;gap:12px;min-height:50px;padding-bottom:16px;color:#65796f}
.order-timeline li:not(:last-child)::after{content:'';position:absolute;left:11px;top:23px;bottom:0;width:2px;background:#dce6dc}
.order-timeline li.complete::after{background:#50885f}
.timeline-marker{display:grid;place-items:center;border:2px solid #dae5db;width:24px;height:24px;border-radius:50%;font-size:13px}
.complete .timeline-marker{background:#31734a;color:white;border-color:#31734a}
.current .timeline-marker{background:#e6f4e7;color:#2f734a;border-color:#45845a}
.order-timeline li.current,.order-timeline li.complete{color:#163b2c}
.order-timeline li strong{display:block;line-height:24px}
.order-timeline li p{margin:1px 0;color:#537064;font-size:13px}
.text-button{background:none;border:0;color:#205a42;padding:4px;font-size:13px}
.order-selector{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;color:#18392d;width:100%}
.order-selector small{display:block;margin-top:4px}
.order-selector>span:last-child{font-size:13px;color:#2e654d;text-align:right}
.bill-summary h2{font-size:38px;margin:12px 0}
.status-pill{display:inline-block;border-radius:20px;background:#e6f0e2;color:#2f5c43;padding:5px 9px;font-size:13px}
.bill-summary>p,.bill-summary>.guest-primary,.bill-summary>button{margin-top:18px}
.guest-app #notice:not(:empty){bottom:calc(128px + env(safe-area-inset-bottom));z-index:5}
@media(max-width:360px){.dish-icon{display:none}.guest-title h1{font-size:28px}.guest-card{padding:12px}}
.guest-app>main{padding-bottom:calc(190px + env(safe-area-inset-bottom))}
.guest-bill-total{position:fixed;z-index:4;left:50%;transform:translateX(-50%);bottom:calc(62px + env(safe-area-inset-bottom));width:min(100%,560px);min-height:37px;display:flex;align-items:center;justify-content:space-between;padding:7px 18px;background:#e6efe4;border-top:1px solid #d7e4d7;color:#174632;font-size:14px}
.guest-action{bottom:calc(99px + env(safe-area-inset-bottom))}
.all-orders-button{min-height:44px;padding:10px 16px;font-weight:650}
.guest-app #notice:not(:empty){bottom:calc(164px + env(safe-area-inset-bottom))}
