.chat-dialog{z-index:var(--z-ai-assistant)!important;.p-dialog{background:var(--menu-card-bg, var(--surface-0));color:var(--menu-text, var(--text-color));border:1px solid var(--menu-border, var(--surface-border))}.p-dialog-content{padding:0;height:100%;display:flex;flex-direction:column;background:var(--menu-card-bg, var(--surface-0));color:var(--menu-text, var(--text-color))}.p-dialog-header{padding:1rem;background:var(--menu-card-bg, var(--surface-0));color:var(--menu-text-primary, var(--text-color));border-bottom:1px solid var(--menu-border, var(--surface-border));.p-dialog-header-icon{color:var(--menu-text, var(--text-color));&:hover{background:var(--menu-surface, var(--surface-100));color:var(--menu-text-primary, var(--text-color))}}.chat-header{display:flex;align-items:center;width:100%;gap:var(--spacing-sm);.text-primary{color:var(--primary-color)}}.chat-header__voice-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-left:auto;padding:.2rem .6rem;border-radius:99px;font-size:.72rem;font-weight:600;color:var(--primary-color);background:color-mix(in srgb,var(--primary-color) 12%,transparent);border:1px solid color-mix(in srgb,var(--primary-color) 25%,transparent);animation:voiceBadgeFadeIn .35s ease-out}.chat-header__voice-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--primary-color);animation:voiceDotBlink 1.2s ease-in-out infinite}}}.chat-interface{height:100%;display:flex;flex-direction:column;background:var(--menu-card-bg, var(--surface-ground));color:var(--menu-text, var(--text-color));transition:background .4s ease}.chat-interface--voice-active{background:linear-gradient(180deg,color-mix(in srgb,var(--primary-color) 6%,var(--menu-card-bg, var(--surface-ground))) 0%,var(--menu-card-bg, var(--surface-ground)) 45%)}.chat-loading,.chat-error{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;.p-progressbar{.p-progressbar-value{background:var(--primary-color)}}.text-red-500{color:var(--red-500)}.text-red-600{color:var(--red-600)}.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}.chat-messages{flex:1;min-height:0;overflow-y:auto;background:var(--menu-card-bg, var(--surface-0));scrollbar-width:thin;scrollbar-color:var(--menu-border, var(--surface-300)) transparent;&::-webkit-scrollbar{width:4px}&::-webkit-scrollbar-track{background:transparent}&::-webkit-scrollbar-thumb{background:var(--menu-border, var(--surface-300));border-radius:99px}}.messages-container{padding:1rem;display:flex;flex-direction:column;gap:1rem}.message{display:flex;gap:.75rem;animation:messageAppear .3s ease-in-out;&.user{flex-direction:row-reverse;.message-avatar{background:var(--primary-color);color:var(--menu-text-primary, white)}.message-content{background:var(--primary-color);color:var(--menu-text-primary, white);border-radius:1rem 1rem .25rem}}&.assistant{.message-avatar{background:var(--menu-surface, var(--surface-100));color:var(--menu-text, var(--text-color))}.message-content{background:var(--menu-surface, var(--surface-0));color:var(--menu-text, var(--text-color));border:1px solid var(--menu-border, var(--surface-border));border-radius:1rem 1rem 1rem .25rem}}&.typing{.message-content{background:var(--menu-surface, var(--surface-100));padding:1rem}}}.message-avatar{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1rem}.message-content{max-width:70%;padding:.75rem 1rem;position:relative}.message-text{margin-bottom:.5rem;line-height:1.4;word-wrap:break-word;&:last-child{margin-bottom:0}}.message-time{font-size:.75rem;opacity:.7;display:flex;align-items:center;margin-top:.5rem;.p-badge{font-size:.6rem;padding:.25rem .5rem;&.p-badge-info{background:var(--blue-500)}}}.function-results{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.function-result{padding:.5rem;background:var(--menu-surface, var(--surface-50));border:1px solid var(--menu-border, var(--surface-200));border-radius:var(--border-radius)}.function-chip{font-size:.75rem;margin-bottom:.5rem;&.success{background:var(--green-100);color:var(--green-800)}&.error{background:var(--red-100);color:var(--red-800)}}.function-data{margin-top:.5rem}.cart-action-result,.assistance-result{display:flex;align-items:center;font-size:.875rem;.text-green-500{color:var(--green-500)}.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}.menu-items-result{.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}.menu-items-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;margin-top:.5rem}.menu-item-card{padding:.5rem;background:var(--menu-surface, var(--surface-0));color:var(--menu-text, var(--text-color));border:1px solid var(--menu-border, var(--surface-300));border-radius:var(--border-radius);font-size:.875rem;.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}.cart-contents-result{.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}.function-error{display:flex;align-items:center;margin-top:.5rem;.text-red-500{color:var(--red-500)}.text-red-600{color:var(--red-600)}}.typing-indicator{display:flex;gap:.25rem;padding:.5rem 0;span{width:.5rem;height:.5rem;border-radius:50%;background:var(--menu-text-secondary, var(--text-color-secondary));animation:typing 1.4s infinite ease-in-out both;&:nth-child(1){animation-delay:-.32s}&:nth-child(2){animation-delay:-.16s}}}.chat-input-area{padding:1rem;background:var(--menu-card-bg, var(--surface-0));border-top:1px solid var(--menu-border, var(--surface-border));.p-inputgroup{align-items:stretch;.p-inputtext{border-radius:2rem 0 0 2rem;border-right:none;flex:1;min-width:0;background:var(--menu-surface, var(--surface-0));color:var(--menu-text, var(--text-color));border-color:var(--menu-border, var(--surface-border));&::placeholder{color:var(--menu-text-secondary, var(--text-color-secondary))}&:enabled:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary-color) 25%,transparent)}transition:border-color .28s ease,box-shadow .28s ease,border-radius .28s ease}.p-button,.chat-action-btn{border-radius:0 2rem 2rem 0;flex-shrink:0}.p-button{background:var(--primary-color);border-color:var(--primary-color);color:var(--menu-text-primary, white);&:hover{filter:brightness(1.1)}&:disabled{opacity:.6}}}.chat-input-area__group{&.chat-input-area__group--no-action{.p-inputtext{border-radius:2rem;border-right:1px solid var(--menu-border, var(--surface-border))}}.chat-action-slot{position:relative;width:2.75rem;min-width:2.75rem;align-self:stretch;flex-shrink:0;border-radius:0 2rem 2rem 0;overflow:hidden}.chat-action-slot .chat-voice-btn,.chat-action-slot .chat-send-btn{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;transform:scale(.82) rotate(-12deg);pointer-events:none;transition:opacity .32s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.34,1.2,.64,1),filter .2s ease,box-shadow .32s ease;will-change:opacity,transform}.chat-action-slot .chat-action-btn--visible{opacity:1;transform:scale(1) rotate(0);pointer-events:auto;z-index:2}.chat-action-slot .chat-action-btn--hidden{opacity:0;transform:scale(.82) rotate(12deg);pointer-events:none;z-index:1}.chat-action-slot .chat-send-btn.p-button:disabled{opacity:inherit}.chat-action-slot .chat-action-btn--hidden.p-button:disabled{opacity:0}.chat-voice-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--menu-border, var(--surface-border));border-left:none;border-radius:0 2rem 2rem 0;cursor:pointer;background:var(--primary-color);border-color:var(--primary-color);color:var(--menu-text-primary, white);&:hover:not(:disabled){filter:brightness(1.08)}&:disabled{cursor:not-allowed}}.chat-voice-btn__icon{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;font-size:1.05rem}.chat-voice-btn__ring{position:absolute;inset:0;border-radius:0 2rem 2rem 0;border:2px solid var(--menu-text-primary, white);opacity:0;pointer-events:none}.chat-voice-btn--active{box-shadow:0 0 var(--spacing-md) color-mix(in srgb,var(--primary-color) 45%,transparent);.chat-voice-btn__ring--1{animation:voiceBtnRing 2s ease-out infinite}.chat-voice-btn__ring--2{animation:voiceBtnRing 2s ease-out .6s infinite}}.chat-send-btn{border-radius:0 2rem 2rem 0}}.chat-input-area__group--voice-active{.p-inputtext.chat-input--voice-active{border-color:var(--primary-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary-color) 20%,transparent);animation:voiceInputGlow 2s ease-in-out infinite}.chat-send-btn--voice-ready:not(:disabled){animation:voiceSendPulse 1.6s ease-in-out infinite}}.input-info{margin-top:.5rem;text-align:center;.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}}}.chat-footer{padding:.75rem 1rem;background:var(--menu-surface, var(--surface-50));border-top:1px solid var(--menu-border, var(--surface-border));.text-600{color:var(--menu-text-secondary, var(--text-color-secondary))}.p-button-secondary{background:transparent;color:var(--menu-text, var(--text-color));border:1px solid var(--menu-border, var(--surface-300));&:hover{background:var(--menu-card-bg, var(--surface-100));color:var(--menu-text-primary, var(--text-color))}&.p-button-outlined{background:transparent;&:hover{background:var(--menu-card-bg, var(--surface-50))}}}}@keyframes messageAppear{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes typing{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes voicePulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--red-500) 35%,transparent)}50%{box-shadow:0 0 0 var(--spacing-sm, .5rem) color-mix(in srgb,var(--red-500) 0%,transparent)}}@keyframes voiceBtnRing{0%{transform:scale(1);opacity:.7}to{transform:scale(1.8);opacity:0}}@keyframes voiceInputGlow{0%,to{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary-color) 18%,transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary-color) 28%,transparent)}}@keyframes voiceSendPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.12);box-shadow:0 0 var(--spacing-sm) color-mix(in srgb,var(--primary-color) 40%,transparent)}}@keyframes voiceBadgeFadeIn{0%{opacity:0;transform:translate(.5rem)}to{opacity:1;transform:translate(0)}}@keyframes voiceDotBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.85)}}@keyframes voiceOrbRing{0%{transform:scale(.85);opacity:.65}to{transform:scale(1.45);opacity:0}}@keyframes voiceOrbShimmer{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}@keyframes voiceBarDance{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes voicePanelEnter{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}.voice-assistant-panel{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg) var(--spacing-md) var(--spacing-md);background:linear-gradient(180deg,color-mix(in srgb,var(--primary-color) 8%,var(--menu-card-bg, var(--surface-0))) 0%,var(--menu-card-bg, var(--surface-0)) 100%);border-top:1px solid color-mix(in srgb,var(--primary-color) 15%,var(--menu-border, var(--surface-border)));animation:voicePanelEnter .4s cubic-bezier(.22,1,.36,1)}.voice-assistant-panel__orb{position:relative;width:4.5rem;height:4.5rem;display:flex;align-items:center;justify-content:center}.voice-assistant-panel__ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--primary-color);opacity:0}.voice-assistant-panel__ring--1{animation:voiceOrbRing 2.4s ease-out infinite}.voice-assistant-panel__ring--2{animation:voiceOrbRing 2.4s ease-out .8s infinite}.voice-assistant-panel__ring--3{animation:voiceOrbRing 2.4s ease-out 1.6s infinite}.voice-assistant-panel__core{position:relative;z-index:1;width:3.25rem;height:3.25rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--menu-text-primary, white);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--primary-color) 80%,white) 0%,var(--primary-color) 55%,color-mix(in srgb,var(--primary-color) 85%,black) 100%);box-shadow:0 0 var(--spacing-lg) color-mix(in srgb,var(--primary-color) 50%,transparent),inset 0 -2px 8px color-mix(in srgb,black 15%,transparent);animation:voiceOrbShimmer 2s ease-in-out infinite}.voice-assistant-panel__waves{display:flex;align-items:center;justify-content:center;gap:3px;height:1.75rem}.voice-assistant-panel__bar{width:4px;height:100%;border-radius:99px;background:var(--primary-color);transform-origin:center bottom;animation:voiceBarDance .9s ease-in-out infinite;opacity:.85}.voice-assistant-panel__status{margin:0;font-size:.95rem;font-weight:600;color:var(--menu-text-primary, var(--text-color))}.voice-assistant-panel__hint{margin:0;font-size:.78rem;color:var(--menu-text-secondary, var(--text-color-secondary))}.voice-assistant-panel__transcript{margin:var(--spacing-xs) 0 0;max-width:100%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:.875rem;line-height:1.45;text-align:center;color:var(--menu-text, var(--text-color));background:var(--menu-surface, var(--surface-50));border:1px dashed color-mix(in srgb,var(--primary-color) 30%,var(--menu-border, var(--surface-border)))}.voice-assistant-panel__transcript--placeholder{font-style:italic;opacity:.65;border-style:dotted}.tool-results{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.tool-result-item{padding:.5rem .625rem;background:var(--menu-surface, var(--surface-50));color:var(--menu-text, var(--text-color));border:1px solid var(--menu-border, var(--surface-200));border-radius:var(--border-radius);font-size:.8rem}.tool-chip{font-size:.72rem;height:1.6rem;margin-bottom:.375rem;&.tool-chip--ok{background:var(--green-100);color:var(--green-800);border-color:var(--green-200)}&.tool-chip--err{background:var(--red-100);color:var(--red-700);border-color:var(--red-200)}}.tool-inline-ok{margin:.25rem 0 0;color:var(--green-700);display:flex;align-items:center;gap:.35rem;.pi{font-size:.85rem}}.tool-error{margin:.25rem 0 0;color:var(--red-600);display:flex;align-items:center;gap:.35rem;.pi{font-size:.85rem}}.tool-empty{margin:.25rem 0 0;color:var(--text-color-secondary);font-style:italic}.chat-menu-card{margin-top:.625rem;padding:.5rem .625rem;background:var(--surface-50);border:1px solid var(--surface-200);border-radius:var(--border-radius)}.chat-menu-card__header{display:flex;align-items:center;gap:.35rem;margin-bottom:.4rem;font-size:.72rem;font-weight:600;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.04em;.pi{font-size:.7rem}}.tool-menu-list{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.tool-menu-item{display:flex;justify-content:space-between;align-items:baseline;padding:.25rem 0;border-bottom:1px solid var(--surface-100);gap:.5rem;&:last-child{border-bottom:none}&.sold-out .tool-menu-item__name{opacity:.55;text-decoration:line-through}}.tool-menu-item__name{font-size:.8rem;color:var(--text-color);flex:1;line-height:1.3}.tool-menu-item__soldout{font-weight:400;color:var(--red-500);text-decoration:none}.tool-menu-item__price{font-size:.78rem;font-weight:600;color:var(--primary-color);white-space:nowrap}.tool-menu-more{margin:.25rem 0 0;font-size:.75rem;color:var(--text-color-secondary);font-style:italic}.tool-cart-list{display:flex;flex-direction:column;gap:.2rem;margin-top:.25rem}.tool-cart-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem;padding:.15rem 0;gap:.5rem}.tool-cart-row__name{color:var(--text-color);flex:1}.tool-cart-row__price{color:var(--primary-color);font-weight:600;white-space:nowrap}@media(max-width:480px){.tool-menu-item{flex-wrap:wrap}.chat-dialog{.p-dialog{width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;border-radius:0!important}}.message{.message-content{max-width:85%}}.menu-items-grid{grid-template-columns:1fr}}.token-badge{display:inline-flex;align-items:center;gap:.2rem;margin-left:.5rem;padding:.1rem .4rem;background:var(--yellow-100);color:var(--yellow-800);border:1px solid var(--yellow-300);border-radius:99px;font-size:.65rem;font-weight:600;cursor:default;white-space:nowrap;.pi{font-size:.65rem}}.token-badge__detail{display:none;margin-left:.15rem;font-weight:400;opacity:.8}.token-badge:hover .token-badge__detail{display:inline}.streaming-cursor{display:inline-block;animation:blink .8s step-end infinite;margin-left:1px;font-size:.95em;opacity:.8}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}
