/* Aura Concierge – printed-menu look: ivory paper, espresso ink, bottle green, brushed-gold hairlines.
   Every rule is scoped to .aq (floating button, toast, assistant sheet, #cartUpsell content). */
.aq{
  --aq-paper:#F6F0E6;--aq-card:#FCF9F3;--aq-ink:#2A1F17;--aq-muted:#6E6257;
  --aq-green:#1C3B33;--aq-gold:#A9834F;--aq-sage:#9BAA95;--aq-terra:#B4533A;
  --aq-line:rgba(42,31,23,.12);--aq-gline:rgba(169,131,79,.35);
  --aq-serif:"Zodiak","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --aq-sans:"Switzer","Segoe UI",system-ui,sans-serif;
  --aq-sab:env(safe-area-inset-bottom,0px);
  font-family:var(--aq-sans);font-size:15px;line-height:1.45;color:var(--aq-ink);
  -webkit-font-smoothing:antialiased;text-align:left;box-sizing:border-box
}
.aq *,.aq *::before,.aq *::after{box-sizing:border-box}
.aq p,.aq h2,.aq ul,.aq ol,.aq li{margin:0;padding:0;list-style:none}
.aq button{font-family:inherit;border:0;margin:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.aq :focus-visible,.aq:focus-visible{outline:2px solid var(--aq-gold);outline-offset:2px;border-radius:8px}
.aq-ic{display:block;flex:none}
.aq-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.aq-label{font-family:var(--aq-sans);font-size:11.5px;font-weight:600;line-height:1.2;letter-spacing:.16em;text-transform:uppercase;color:var(--aq-gold)}

/* ---------------------------------------------------------------- floating button */
.aq-fab{position:absolute;right:16px;bottom:calc(64px + var(--aq-sab) + 74px);z-index:34;width:48px;height:48px;padding:0;
  display:grid;place-items:center;border-radius:50%;background:var(--aq-green);color:var(--aq-card);
  box-shadow:0 8px 18px -8px rgba(42,31,23,.55);transition:opacity .2s ease-out,transform .2s ease-out}
.aq-fab:active{transform:scale(.95)}
.aq-fab.is-away{opacity:0;transform:translateY(6px);pointer-events:none}
.aq--fixed.aq-fab,.aq--fixed.aq-toast,.aq--fixed.aq-sheet{position:fixed}

/* ---------------------------------------------------------------- shared menu line: name ..... price */
.aq-line{display:flex;align-items:baseline;gap:6px;min-width:0}
.aq-name{font-family:var(--aq-serif);font-size:18px;line-height:1.25;font-weight:400;color:var(--aq-ink);min-width:0}
.aq-dots{flex:1 1 12px;min-width:12px;height:0;border-bottom:1px dotted rgba(169,131,79,.7);transform:translateY(-4px)}
.aq-price{flex:none;font-family:var(--aq-serif);font-size:17px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--aq-ink)}
.aq-desc{margin-top:2px;font-size:13.5px;line-height:1.4;color:var(--aq-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aq-tag{margin-right:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--aq-gold);white-space:nowrap}
.aq-out{flex:none;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--aq-terra)}

/* photo / typographic tile */
.aq-ph{position:relative;flex:none;width:60px;height:60px;border-radius:6px;overflow:hidden;background:var(--aq-sage)}
.aq-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.aq-tile{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--aq-serif);font-style:italic;font-size:28px;line-height:1;color:var(--aq-green);background:rgba(155,170,149,.38)}
.aq-ph:has(.aq-tile:only-child){background:var(--aq-paper);box-shadow:inset 0 0 0 1px var(--aq-gline)}

/* add button */
.aq-add{flex:none;width:44px;height:44px;padding:0;display:grid;place-items:center;border-radius:8px;background:var(--aq-green);color:var(--aq-card);transition:transform .18s ease-out,opacity .18s ease-out}
.aq-add:active{transform:scale(.94)}
.aq-add.is-added{opacity:.55}
.aq-add--ghost{background:transparent;color:var(--aq-ink);box-shadow:inset 0 0 0 1px rgba(42,31,23,.3)}
.aq-add--none{background:transparent;visibility:hidden}

/* dish rows */
.aq-dishes{border-top:1px solid var(--aq-line)}
.aq-dish{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--aq-line)}
.aq-dish__main{flex:1 1 auto;min-width:0}
.aq-dishes--mini .aq-ph{width:48px;height:48px}
.aq-dishes--mini .aq-tile{font-size:22px}
.aq-dishes--mini .aq-name{font-size:17px}
.aq-dishes--mini .aq-dish{padding:10px 0}

/* buttons */
.aq .aq-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;margin-top:14px;border-radius:8px;
  background:var(--aq-green);color:var(--aq-card);font-size:15px;font-weight:500;letter-spacing:.01em;transition:opacity .18s ease-out}
.aq-btn:disabled{opacity:.5;cursor:default}
.aq .aq-btn--sm{min-height:44px;padding:0 14px;margin-top:0;font-size:14px;flex:none}
.aq-link{background:none;padding:10px 0;min-height:44px;font-size:14px;font-weight:500;color:var(--aq-green);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;white-space:nowrap}
.aq-note{margin-top:12px;font-size:13px;line-height:1.5;color:var(--aq-muted)}

/* deal */
.aq-deal{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 0;border-top:1px solid var(--aq-gline);border-bottom:1px solid var(--aq-gline);color:var(--aq-gold)}
.aq-deal__t{flex:1 1 auto;min-width:0;font-size:13.5px;line-height:1.45;color:var(--aq-muted)}
.aq-deal__t strong{display:block;font-family:var(--aq-serif);font-style:italic;font-weight:400;font-size:17px;line-height:1.3;color:var(--aq-ink)}

/* ---------------------------------------------------------------- toast */
.aq-toast{position:absolute;left:12px;right:12px;bottom:calc(64px + var(--aq-sab) + 74px);z-index:36;display:flex;align-items:center;gap:10px;
  padding:8px 4px 8px 8px;background:var(--aq-card);border:1px solid var(--aq-gline);border-radius:10px;
  box-shadow:0 12px 26px -16px rgba(42,31,23,.6);opacity:0;transform:translateY(8px);transition:opacity .22s ease-out,transform .22s ease-out}
.aq-toast.is-in{opacity:1;transform:none}
.aq-toast .aq-ph{width:44px;height:44px}
.aq-toast .aq-tile{font-size:20px}
.aq-toast__txt{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.aq-toast__name{font-family:var(--aq-serif);font-size:16.5px;line-height:1.25;color:var(--aq-ink)}
.aq-toast__name .aq-price{font-size:16px}
.aq-sep{color:var(--aq-gold)}
.aq-x{flex:none;width:40px;height:44px;padding:0;display:grid;place-items:center;background:none;color:var(--aq-muted)}

/* ---------------------------------------------------------------- assistant sheet */
.aq-sheet{position:absolute;inset:0;z-index:70}
.aq-scrim{position:absolute;inset:0;background:rgba(42,31,23,.44);opacity:0;transition:opacity .24s ease-out}
.aq-panel{position:absolute;left:0;right:0;bottom:0;height:86%;display:flex;flex-direction:column;background:var(--aq-card);
  border-radius:10px 10px 0 0;box-shadow:0 -14px 40px -20px rgba(42,31,23,.55);opacity:0;transform:translateY(28px);
  transition:transform .26s ease-out,opacity .22s ease-out}
.aq--fixed .aq-panel{height:86vh;height:86dvh}
.aq-sheet.is-open .aq-scrim{opacity:1}
.aq-sheet.is-open .aq-panel{opacity:1;transform:none}

.aq-head{position:relative;flex:none;padding:22px 64px 18px 20px;border-bottom:1px solid var(--aq-gline)}
.aq-head::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--aq-gline)}
.aq-title{margin-top:10px;font-family:var(--aq-serif);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:-.005em;color:var(--aq-ink)}
.aq-sub{margin-top:6px;font-family:var(--aq-serif);font-style:italic;font-size:17px;line-height:1.35;color:var(--aq-muted)}
.aq-close{position:absolute;right:10px;top:12px;width:44px;height:44px;padding:0;display:grid;place-items:center;background:none;color:var(--aq-ink)}

.aq-body{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 20px 24px;scrollbar-width:none}
.aq-body::-webkit-scrollbar{display:none}
.aq-today,.aq-ask,.aq-pop{padding-top:22px}
.aq-today__list{margin-top:8px}
.aq-today__list li{padding:9px 0;border-bottom:1px solid var(--aq-line)}
.aq-today__list li:last-child{border-bottom:0;padding-bottom:0}

.aq-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.aq-chip{min-height:44px;padding:8px 14px;border-radius:8px;background:transparent;box-shadow:inset 0 0 0 1px rgba(42,31,23,.2);
  font-size:14.5px;line-height:1.3;color:var(--aq-ink);text-align:left;transition:background-color .18s ease-out}
.aq-chip:active{background:rgba(155,170,149,.3)}
@media (hover:hover){.aq-chip:hover{background:rgba(155,170,149,.22)}}

.aq-thread:empty{display:none}
.aq-panel:focus{outline:none}
.aq-sheet.is-chat .aq-today{display:none}
.aq-sheet.is-chat .aq-ex:first-child{padding-top:22px}
.aq-ex{padding:20px 0 4px}
.aq-ex + .aq-ex{margin-top:14px;border-top:1px solid var(--aq-gline)}
.aq-q{display:flex;flex-direction:column;gap:5px;font-size:14.5px;color:var(--aq-muted)}
.aq-say{margin:14px 0 14px;font-family:var(--aq-serif);font-style:italic;font-size:19px;line-height:1.38;color:var(--aq-ink)}
.aq-typing{display:inline-flex;gap:6px;padding:16px 0 10px}
.aq-typing i{width:6px;height:6px;border-radius:50%;background:var(--aq-gold);opacity:.25;animation:aq-dot .9s ease-out infinite}
.aq-typing i:nth-child(2){animation-delay:.15s}
.aq-typing i:nth-child(3){animation-delay:.3s}
@keyframes aq-dot{0%,70%,100%{opacity:.25}35%{opacity:1}}

.aq-rank{margin-top:6px}
.aq-rank__row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--aq-line)}
.aq-rank__row:last-child{border-bottom:0}
.aq-rank__row .aq-line{flex:1 1 auto}
.aq-rank__n{flex:none;width:16px;font-family:var(--aq-serif);font-style:italic;font-size:17px;font-variant-numeric:tabular-nums;color:var(--aq-gold)}
.aq-rank__row.is-soldout .aq-name{color:var(--aq-muted)}

.aq-foot{flex:none;padding:10px 20px calc(12px + var(--aq-sab));border-top:1px solid var(--aq-line);background:var(--aq-card)}
.aq-foot .aq-chips{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px 10px;padding:0 20px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.aq-foot .aq-chips::-webkit-scrollbar{display:none}
.aq-foot .aq-chip{flex:none;white-space:nowrap}
.aq-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13.5px;color:var(--aq-muted)}
.aq-status span{min-width:0}
.aq-form{display:flex;gap:8px}
.aq-input{flex:1 1 auto;min-width:0;height:48px;padding:0 14px;border:1px solid rgba(42,31,23,.24);border-radius:8px;background:var(--aq-paper);
  font-family:var(--aq-sans);font-size:16px;color:var(--aq-ink);outline:0;-webkit-appearance:none;appearance:none}
.aq-input::placeholder{color:var(--aq-muted);opacity:.85}
.aq-input:focus{border-color:var(--aq-green);box-shadow:0 0 0 1px var(--aq-green)}
.aq-send{flex:none;width:48px;height:48px;padding:0;display:grid;place-items:center;border-radius:8px;background:var(--aq-green);color:var(--aq-card)}

/* ---------------------------------------------------------------- #cartUpsell (inside the order sheet) */
.aq-upsell{padding:18px 0 4px}
.aq-upsell .aq-dishes{margin-top:10px}

@media (max-width:359px){
  .aq-name{font-size:17px}
  .aq-ph{width:52px;height:52px}
  .aq-title{font-size:27px}
}
@media (prefers-reduced-motion:reduce){
  .aq,.aq *,.aq *::before,.aq *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .aq-typing i{opacity:.7}
}

/* ---------------------------------------------------------------- integration: Karte + cart dock */
/* the Karte has its own "Empfehlung" button in the header – keep the price / "+" column free */
#app:has(#v-karte.is-active) .aq-fab{opacity:0;transform:translateY(6px);pointer-events:none}
/* order pill + cart bar stacked: lift button and pairing toast above both */
#app:has(.ao-dock > :not([hidden]) ~ :not([hidden])) .aq-fab,#app:has(.ao-dock > :not([hidden]) ~ :not([hidden])) .aq-toast{bottom:calc(64px + var(--aq-sab) + 126px)}
