:root { color-scheme: light; --paper:#fffdf8; --canvas:#f3efe5; --ink:#17231e; --muted:#68736d; --line:#d8d8cf; --green:#246b50; --dark:#173f31; --wash:#e6f0ea; --danger:#a63d3d; --amber:#9a6500; }
* { box-sizing:border-box; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
button,input,select,textarea { font:inherit; }
.hero { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:30px max(22px,calc((100vw - 1180px)/2)); background:var(--dark); color:#fff; }
.hero h1 { margin:5px 0 8px; font-size:clamp(32px,6vw,52px); letter-spacing:-.04em; }
.hero p { margin:0; max-width:640px; color:#d6e4dd; }
.eyebrow { font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.availability { padding:10px 13px; border:1px solid #ffffff42; border-radius:8px; white-space:nowrap; }
.availability.closed { background:#6e2f2f; }
.notice,.status-panel { width:min(760px,calc(100% - 32px)); margin:20px auto; padding:15px 18px; border:1px solid var(--line); border-radius:10px; background:var(--paper); text-align:center; }
.notice.error { color:var(--danger); border-color:#dcb3ad; background:#fbe9e7; }
.layout { width:min(1180px,calc(100% - 32px)); margin:20px auto 50px; display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:20px; align-items:start; }
.menu-panel,.checkout-panel,.status-panel { border:1px solid var(--line); border-radius:12px; background:var(--paper); }
.menu-panel { padding:20px; min-width:0; }
.menu-heading,.checkout-panel>header,.item-dialog header,.item-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:14px; }
h2 { margin:4px 0; }
input,select,textarea { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:8px; background:#f5f2ea; color:var(--ink); }
#menuSearch { width:min(280px,42vw); }
.categories { display:flex; gap:8px; margin:18px 0; overflow:auto; padding-bottom:4px; }
button { min-height:42px; padding:9px 14px; border:1px solid transparent; border-radius:8px; cursor:pointer; font-weight:750; }
.primary { background:var(--green); color:#fff; }
.secondary { border-color:var(--line); background:var(--paper); color:var(--ink); }
button:disabled { cursor:not-allowed; opacity:.48; }
.categories button { white-space:nowrap; }
.categories button.active { border-color:var(--green); background:var(--wash); color:var(--dark); }
.menu-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.menu-card { min-height:106px; display:grid; grid-template-columns:1fr auto; gap:10px; padding:15px; border-color:var(--line); background:#fff; text-align:left; }
.menu-card small { grid-column:1/-1; color:var(--muted); }
.checkout-panel { position:sticky; top:14px; padding:18px; }
.count { min-width:30px; height:30px; display:grid; place-items:center; border-radius:16px; background:var(--wash); color:var(--dark); font-weight:800; }
.cart-list { display:grid; gap:8px; margin:16px 0; }
.empty { padding:20px 6px; color:var(--muted); text-align:center; }
.cart-line { display:grid; grid-template-columns:1fr auto; gap:5px 10px; padding:10px 0; border-bottom:1px dashed var(--line); }
.cart-line small { color:var(--muted); }
.cart-line button { min-height:auto; padding:2px 0; border:0; background:none; color:var(--danger); justify-self:start; }
.totals { display:grid; gap:8px; padding:12px 0; border-top:1px solid var(--line); }
.totals div { display:flex; justify-content:space-between; }
.totals dd { margin:0; font-variant-numeric:tabular-nums; }
.totals .grand { padding-top:9px; border-top:1px solid var(--line); font-weight:800; }
#checkoutForm { display:grid; gap:11px; }
#checkoutForm label,.item-dialog label { display:grid; gap:5px; font-size:13px; font-weight:750; }
#checkoutButton { width:100%; margin-top:4px; }
.fine-print { margin:0; color:var(--muted); font-size:11px; line-height:1.45; text-align:center; }
.status-panel { margin:28px auto; padding:28px; }
.status-panel h2 { font-size:28px; }
#statusDetails { margin:18px auto; max-width:520px; text-align:left; }
.item-dialog { width:min(580px,calc(100% - 24px)); max-height:calc(100vh - 24px); padding:0; border:1px solid var(--line); border-radius:12px; background:var(--paper); color:var(--ink); }
.item-dialog form { padding:20px; display:grid; gap:16px; }
.item-dialog .icon { border:0; background:transparent; font-size:28px; }
.item-options { display:grid; gap:12px; max-height:42vh; overflow:auto; }
.choice-group { margin:0; padding:12px; border:1px solid var(--line); border-radius:9px; }
.choice-group legend { font-weight:800; }
.choice { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:7px 0; font-weight:500!important; }
.choice input { width:auto; }
.error { color:var(--danger); margin:0; }
@media (max-width:800px) { .hero { align-items:flex-start; flex-direction:column; } .layout { grid-template-columns:1fr; } .checkout-panel { position:static; } }
@media (max-width:540px) { .menu-grid { grid-template-columns:1fr; } .menu-heading { align-items:stretch; flex-direction:column; } #menuSearch { width:100%; } }
