/* Persistent customer order companion — deliberately compact on mobile. */
.oc { position: fixed; right: 14px; bottom: calc(var(--bar) + 12px); z-index: 80; font-family: var(--sans); }
.oc__toggle { border: 1px solid rgba(255,255,255,.25); background: #173c31; color: #fffaf0; min-height: 48px; border-radius: 999px; box-shadow: 0 10px 28px rgba(12,40,31,.28); display: inline-flex; align-items: center; gap: 8px; padding: 0 15px; font-weight: 800; font-size: .78rem; cursor: pointer; }
.oc__chevron{margin-left:1px;font-size:1.05rem;line-height:.7;transition:transform .2s}.oc.open .oc__chevron{transform:rotate(180deg)}
.oc__pulse { width: 8px; height: 8px; border-radius: 50%; background: #67df9a; box-shadow: 0 0 0 5px rgba(103,223,154,.16); }
.oc__count { display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 99px; background: var(--gold-light); color: var(--ink); font-size: .68rem; }
.oc__panel { position: absolute; right: 0; bottom: 58px; width: min(360px, calc(100vw - 28px)); max-height: min(610px, calc(100svh - 110px)); overflow: auto; background: #123228; color: #fffaf0; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 20px 52px rgba(9,28,21,.38); border-radius: 22px; padding: 18px; }
.oc__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding-bottom:13px; border-bottom:1px solid rgba(255,255,255,.16); }
.oc__head p { margin:0 0 2px; color:#d9b570; letter-spacing:.12em; font-weight:800; font-size:.62rem; text-transform:uppercase; }
.oc__head h2 { margin:0; color:#fffaf0; font-family:var(--display); font-size:1.55rem; }
.oc__close { background:transparent; border:0; color:#fffaf0; font-size:1.65rem; line-height:1; cursor:pointer; }
.oc__statecopy,.oc__empty,.oc__privacy,.oc__hint { color:rgba(255,250,240,.72); font-size:.79rem; line-height:1.5; }
.oc__statecopy,.oc__empty { margin:14px 0 10px; }.oc__hint{margin:11px 0 0;font-size:.69rem}.oc__privacy{margin:8px 2px 0;font-size:.67rem}
.oc__row { display:grid; grid-template-columns:9px 1fr auto; gap:9px; align-items:start; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.11); }
.oc__row strong,.oc__row b { display:block; font-size:.78rem; color:#fffaf0; }.oc__row small{display:block;color:rgba(255,250,240,.67);font-size:.7rem;line-height:1.4;margin-top:2px}.oc__row b{color:#e4c17e;font-size:.68rem;padding-top:4px}
.oc__dot { width:8px;height:8px;border-radius:50%;margin-top:5px;background:#d9b570; }.oc__dot--ready,.oc__dot--delivered{background:#67df9a}.oc__dot--cancelled{background:#ed7777}
.oc__account { margin-top:13px; }.oc__google,.oc__notify { width:100%; border:1px solid rgba(255,255,255,.25); border-radius:12px; background:rgba(255,255,255,.09); color:#fffaf0; padding:10px 12px; font:700 .74rem var(--sans); cursor:pointer; text-align:left; }.oc__google span{float:right;font-size:1.1rem;line-height:.7}.oc__notify{margin-top:9px}.oc__notify.on{color:#84e5aa;border-color:rgba(132,229,170,.45)}
.oc__promo { margin-top:13px; padding:12px; border-radius:13px; background:linear-gradient(135deg,rgba(212,171,99,.28),rgba(212,171,99,.09)); border:1px solid rgba(228,193,126,.35); }.oc__promo p{margin:0 0 4px;color:#e4c17e;text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;font-weight:800}.oc__promo strong{display:block;font-size:.86rem}.oc__promo b{display:block;margin-top:3px;color:#f2d491;font-size:.75rem}.oc__promo span{display:block;margin-top:3px;color:rgba(255,250,240,.75);font-size:.71rem;line-height:1.45}.oc__promo a{display:inline-block;margin-top:8px;color:#fffaf0;font-size:.7rem;font-weight:800}
.oc__notice{margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13)}.oc__notice strong,.oc__notice span{display:block}.oc__notice strong{font-size:.75rem}.oc__notice span{margin-top:3px;color:rgba(255,250,240,.7);font-size:.68rem;line-height:1.4}.oc__notice a{display:inline-block;margin-top:6px;color:#e4c17e;font-size:.68rem;font-weight:800}
.oc__signed { display:flex;gap:7px;align-items:center;flex-wrap:wrap;color:rgba(255,250,240,.72);font-size:.7rem; }.oc__signed span{flex:1 1 100%;}.oc__signed button{border:0;background:transparent;color:#e4c17e;font:700 .7rem var(--sans);padding:0;cursor:pointer}.oc__error{margin:10px 0 0;color:#ffc3c3;font-size:.75rem}

/* Signed-in menu account — a small luxury dropdown, not a bulky profile
   panel. It shows every Google-linked order in a scrollable, touch-friendly
   list and leaves the customer on the menu whenever they close it. */
.maccount{position:relative;z-index:18}.maccount__toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:4px 9px 4px 5px;border:1px solid rgba(227,197,141,.68);border-radius:999px;background:linear-gradient(135deg,rgba(227,197,141,.22),rgba(227,197,141,.08));color:#fffaf0;font:700 .71rem var(--sans);cursor:pointer;box-shadow:0 7px 16px rgba(0,0,0,.12)}.maccount__avatar{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(145deg,#f0cf88,#ba8135);color:#173c31;font:600 1rem var(--display)}.maccount__copy{display:grid;text-align:left;line-height:1.05}.maccount__copy strong{font-size:.7rem}.maccount__copy small{margin-top:2px;color:rgba(255,250,240,.68);font-size:.59rem;font-weight:600}.maccount__chevron{font-size:1.05rem;line-height:.7;transition:transform .2s}.maccount__toggle[aria-expanded="true"] .maccount__chevron{transform:rotate(180deg)}.maccount__panel{position:absolute;top:calc(100% + 9px);left:0;width:min(356px,calc(100vw - 28px));max-height:min(600px,calc(100svh - 104px));overflow:auto;padding:16px;border:1px solid rgba(255,255,255,.19);border-radius:19px;background:linear-gradient(150deg,#184437,#102c23);color:#fffaf0;box-shadow:0 22px 56px rgba(7,24,18,.42)}.maccount__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.16)}.maccount__head p{margin:0 0 2px;color:#e8c983;font-size:.6rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.maccount__head h2{margin:0;font:600 1.48rem var(--display);color:#fffaf0}.maccount__head button{width:29px;height:29px;border:1px solid rgba(255,255,255,.17);border-radius:9px;background:rgba(255,255,255,.07);color:#fffaf0;font-size:1.25rem;line-height:1;cursor:pointer}.maccount__intro{margin:10px 0 7px;color:rgba(255,250,240,.7);font-size:.71rem;line-height:1.45}.maccount__list{display:grid}.maccount__order{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px 2px;border-bottom:1px solid rgba(255,255,255,.11);color:#fffaf0;text-decoration:none}.maccount__order:last-child{border-bottom:0}.maccount__order strong,.maccount__order small{display:block}.maccount__order strong{font-size:.77rem}.maccount__order small{margin-top:2px;color:rgba(255,250,240,.65);font-size:.67rem;line-height:1.35}.maccount__order>b{color:#e7c17b;font-size:1.25rem;font-weight:400}.maccount__dot{width:8px;height:8px;border-radius:50%;background:#d9b570;box-shadow:0 0 0 4px rgba(217,181,112,.11)}.maccount__dot--ready,.maccount__dot--delivered{background:#6ce19d;box-shadow:0 0 0 4px rgba(108,225,157,.11)}.maccount__dot--cancelled{background:#ee8383;box-shadow:0 0 0 4px rgba(238,131,131,.11)}.maccount__empty{display:grid;gap:5px;padding:18px 2px;color:rgba(255,250,240,.68);font-size:.72rem;line-height:1.5}.maccount__empty strong{color:#fffaf0;font:600 1.12rem var(--display)}.maccount__error{margin:10px 0 0;color:#ffc9c9;font-size:.69rem}.maccount__foot{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.16)}.maccount__foot a,.maccount__foot button{border:0;background:transparent;color:#efce8b;font:800 .67rem var(--sans);cursor:pointer;text-decoration:none}.maccount__foot a span{font-size:.92rem}.maccount__foot button{color:rgba(255,250,240,.75)}
/* menu.html adds .has-cart as soon as the customer has items. Lift the order
   companion above the full-width cart bar, never over its Order now target. */
@media (max-width:899px){body.has-cart .oc{bottom:calc(var(--bar) + env(safe-area-inset-bottom, 0px) + 94px)}body.has-cart .oc__panel{max-height:min(610px,calc(100svh - 205px))}}
@media (min-width:900px){.oc{right:22px;bottom:22px}.oc__toggle{min-height:52px;padding-inline:18px}}
@media (min-width:620px){.maccount__panel{left:auto;right:0}}@media (max-width:420px){.maccount__panel{width:calc(100vw - 24px)}.maccount__toggle{padding-right:8px}}
