/* v25: livelier Anna chat and voice section (motion, faces, chips, in-chat booking). Brand: deep green + lime. */
:root{--tv-green:#143c32;--tv-green-2:#0f2f27;--tv-lime:#d9f36e;--tv-paper:#f6f8f1;--tv-line:#dfe7dc;--tv-text:#17302a;--tv-muted:#5a6f64}

/* Launcher: breathing halo and a lift on hover */
.chat-launcher{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.chat-launcher:hover{transform:translateY(-2px);box-shadow:0 14px 40px #0b241d55}
.chat-launcher .chat-orb-face{position:relative;overflow:visible!important}
.chat-launcher .chat-orb-face::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--tv-lime);animation:tv-halo 2.6s ease-out infinite;pointer-events:none}
.chat-launcher .chat-orb-face::before{content:"";position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;background:#3fd17a;border:2px solid var(--tv-green-2);z-index:1}
@keyframes tv-halo{0%{transform:scale(.92);opacity:.9}70%{transform:scale(1.25);opacity:0}100%{opacity:0}}

/* Panel opens with a soft rise */
#floating-chat-panel:not([hidden]){animation:tv-panel-in .32s cubic-bezier(.2,.8,.2,1)}
@keyframes tv-panel-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
#floating-chat-panel{background:var(--tv-paper)!important;border-radius:22px!important}

/* Header: face with online dot, call button */
#floating-chat-panel .chat-heading{background:linear-gradient(135deg,var(--tv-green) 0%,var(--tv-green-2) 100%)!important;padding:14px 14px 14px 16px!important;gap:12px!important}
#floating-chat-panel .chat-heading strong{font-size:17px!important;letter-spacing:-.01em}
#floating-chat-panel .chat-heading span{display:block;color:#cfe3d8!important;line-height:1.4}
#floating-chat-panel .chat-heading .online-more{display:inline}
#floating-chat-panel .online-dot{display:inline-block;vertical-align:1px;margin-right:6px;width:8px;height:8px;border-radius:50%;background:#3fd17a;box-shadow:0 0 0 3px #3fd17a33;flex-shrink:0}
#floating-chat-panel .chat-face{border-color:var(--tv-lime)!important}
#floating-chat-panel .chat-call{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid #ffffff40;background:#ffffff14;color:#fff;font-size:13px;font-weight:600;cursor:pointer;order:1;margin-left:auto;transition:background .2s}
#floating-chat-panel .chat-call:hover{background:#ffffff26}
#floating-chat-panel #chat-clear{order:1;margin-left:4px!important;color:#cfe3d8!important}
#floating-chat-panel #chat-close{order:3}

/* The old bottom shortcut bar is replaced by chips inside the conversation */
#floating-chat-panel .chat-quick{display:none!important}

/* Messages: face beside every Anna message, entrance motion */
#floating-chat-panel .chat-messages{background:var(--tv-paper);padding:18px 14px!important;gap:12px!important}
#floating-chat-panel .chat-message{display:flex;align-items:flex-end;gap:8px;max-width:100%!important;padding:0!important;border:0!important;background:none!important;border-radius:0!important}
#floating-chat-panel .chat-message.user{justify-content:flex-end;align-self:stretch!important}
#floating-chat-panel .chat-msg-face{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #fff;box-shadow:0 2px 8px #0b241d22}
#floating-chat-panel .chat-bubble{max-width:calc(100% - 44px);background:#fff;border:1px solid var(--tv-line);border-radius:18px 18px 18px 6px;padding:11px 14px;box-shadow:0 1px 2px #0b241d0d}
#floating-chat-panel .chat-message.user .chat-bubble{background:var(--tv-green);border-color:var(--tv-green);color:#f3f8f1;border-radius:18px 18px 6px 18px;max-width:86%}
#floating-chat-panel .chat-message.user .chat-speaker{color:#bcd5c7!important}
#floating-chat-panel .chat-message.user p{color:#f3f8f1}
#floating-chat-panel .chat-message.assistant .chat-speaker::before{display:none!important}
#floating-chat-panel .chat-speaker{display:block;font-size:11px!important;font-weight:700;letter-spacing:.03em;color:var(--tv-muted);margin:0 0 2px!important}
#floating-chat-panel .chat-bubble p{margin:0!important;font-size:15.5px!important;line-height:1.6!important;color:var(--tv-text)}
.chat-enter{animation:tv-msg-in .34s cubic-bezier(.2,.8,.2,1) both}
@keyframes tv-msg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Typing indicator */
#floating-chat-panel .chat-typing .chat-bubble{padding:14px 16px}
.chat-typing .dots{display:inline-flex;gap:5px}
.chat-typing .dots i{width:7px;height:7px;border-radius:50%;background:#7f9a8c;animation:tv-dot 1.1s infinite ease-in-out}
.chat-typing .dots i:nth-child(2){animation-delay:.15s}.chat-typing .dots i:nth-child(3){animation-delay:.3s}
@keyframes tv-dot{0%,80%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-4px);opacity:1}}

/* Quick-reply chips */
.chat-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.chat-chip{border:1px solid #cfdcc8;background:#f3f8ec;color:var(--tv-green);border-radius:999px;padding:8px 13px;font-size:13.5px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .18s,transform .18s,border-color .18s}
.chat-chip:hover{background:var(--tv-lime);border-color:var(--tv-lime);transform:translateY(-1px)}
.chat-chip:last-child{background:var(--tv-green);border-color:var(--tv-green);color:#fff}

/* In-chat booking card */
.chat-card{margin-top:10px;border:1px solid var(--tv-line);border-radius:14px;background:var(--tv-paper);padding:12px}
.chat-card-title{display:block;font-size:14px;color:var(--tv-green);margin-bottom:4px}
.chat-card p{font-size:14px!important;line-height:1.5!important;margin:2px 0!important}
.chat-card-note{color:var(--tv-muted)!important;font-size:13px!important}
.chat-card-status{color:#8a3b12!important;font-size:13px!important;min-height:0}
.booking-days,.booking-slots{display:flex;gap:6px;overflow-x:auto;padding:8px 0 4px;scrollbar-width:thin}
.booking-slots{flex-wrap:wrap;overflow:visible}
.booking-days{scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent);mask-image:linear-gradient(90deg,#000 82%,transparent)}
.booking-days::after{content:"";flex:0 0 44px}
.booking-days .day-chip{scroll-snap-align:start}
.day-chip,.slot-chip{flex-shrink:0;border:1px solid #cfdcc8;background:#fff;color:var(--tv-text);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.day-chip[aria-pressed="true"],.slot-chip[aria-pressed="true"]{background:var(--tv-green);border-color:var(--tv-green);color:#fff}
.booking-mini{display:grid;gap:8px;margin-top:8px}
.booking-mini[hidden],.booking-summary[hidden]{display:none}
.booking-mini label{display:grid;gap:3px;font-size:12.5px;font-weight:600;color:var(--tv-muted)}
.booking-mini textarea{min-height:76px;resize:vertical}
.booking-mini input,.booking-mini textarea{font:inherit;font-size:16px;font-weight:400;color:var(--tv-text);border:1px solid #cfdcc8;border-radius:10px;padding:9px 10px;background:#fff;width:100%;box-sizing:border-box}
.booking-mini .booking-privacy{display:flex;gap:8px;align-items:flex-start;font-weight:400;font-size:13px}
.booking-mini .booking-privacy input{width:18px;height:18px;margin-top:1px;flex-shrink:0}
.chat-card-primary{width:100%;min-height:44px;font-size:14px!important;background:var(--tv-green)!important;color:#fff!important;border-radius:10px!important}
.chat-card-actions{display:flex;align-items:center;gap:12px;margin-top:8px}
.chat-card-actions .chat-card-primary{width:auto;flex:1}

/* Composer */
#floating-chat-panel .chat-composer{background:#fff;border-top:1px solid var(--tv-line)!important;padding:10px 12px 6px!important;align-items:flex-end!important}
#floating-chat-panel #chat-input{min-height:46px!important;max-height:132px!important;resize:none!important;border-radius:14px!important;border:1px solid #cfdcc8!important;padding:11px 13px!important;transition:border-color .2s,box-shadow .2s}
#floating-chat-panel #chat-input:focus{outline:none;border-color:var(--tv-green)!important;box-shadow:0 0 0 3px #d9f36e88}
#floating-chat-panel #chat-send{min-height:46px!important;border-radius:14px!important}
#floating-chat-panel .chat-footer{background:#fff;padding:4px 14px 10px!important}
#floating-chat-panel .chat-footer p{font-size:11.5px!important;line-height:1.45!important;color:var(--tv-muted)}
#floating-chat-panel #chat-status:empty{display:none}

/* Phone: full-height sheet with safe areas, input above the keyboard */
@media(max-width:600px){
  .site-v3 #floating-chat-panel,#floating-chat-panel{left:0!important;right:0!important;bottom:0!important;top:var(--chat-viewport-top,0)!important;width:100vw!important;max-width:none!important;height:var(--chat-viewport-height,100dvh)!important;max-height:var(--chat-viewport-height,100dvh)!important;border-radius:0!important;border:0!important;z-index:2147483000!important}
  #floating-chat-panel .chat-heading{padding-top:calc(12px + env(safe-area-inset-top))!important}
  #floating-chat-panel .chat-call span,#floating-chat-panel .chat-heading .online-more{display:none!important}
  #floating-chat-panel .chat-heading strong{white-space:nowrap}
  .chat-chip{padding:7px 12px;font-size:13.5px}
  #floating-chat-panel .chat-call{padding:0 10px}
  #floating-chat-panel .chat-footer{padding-bottom:calc(8px + env(safe-area-inset-bottom))!important}
  #floating-chat-panel .chat-bubble p{font-size:15px!important}
}

/* Voice section: alive portrait with state ring, one primary button, visible transcript */
.assistant-v5 .avatar-stage{position:relative;isolation:isolate}
.assistant-v5 .avatar-stage::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 0 transparent;transition:box-shadow .25s}
.assistant-v5 .avatar-stage[data-state="connecting"]::after{box-shadow:inset 0 0 0 3px #d9f36e99;animation:tv-connect 1.2s ease-in-out infinite}
.assistant-v5 .avatar-stage[data-state="live"]::after{box-shadow:inset 0 0 0 calc(3px + var(--level,0) * 14px) #d9f36ecc}
.assistant-v5 .avatar-stage[data-speaking="true"]::after{box-shadow:inset 0 0 0 calc(4px + var(--level,0) * 18px) #d9f36e,0 0 calc(20px + var(--level,0) * 40px) #d9f36e66}
@keyframes tv-connect{50%{box-shadow:inset 0 0 0 7px #d9f36e44}}
.assistant-v5 .anna-portrait{position:relative}
.assistant-v5 .anna-portrait::before{content:"Készenlétben";position:absolute;z-index:2;left:14px;top:14px;padding:6px 12px 6px 26px;border-radius:999px;background:#0f2f27d9;color:#eaf3ee;font-size:13px;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(6px);pointer-events:none}
.assistant-v5 .anna-portrait::after{content:"";position:absolute;z-index:3;left:26px;top:27px;width:8px;height:8px;border-radius:50%;background:#9fb5a8;pointer-events:none}
.assistant-v5:has([data-state="connecting"]) .anna-portrait::before{content:"Kapcsolódás…"}
.assistant-v5:has([data-state="live"]) .anna-portrait::before{content:"Hallgatom"}
.assistant-v5:has([data-speaking="true"]) .anna-portrait::before{content:"Anna beszél"}
.assistant-v5:has([data-state="live"]) .anna-portrait::after,.assistant-v5:has([data-speaking="true"]) .anna-portrait::after{background:#3fd17a;box-shadow:0 0 0 0 #3fd17a88;animation:tv-live 1.4s infinite}
.assistant-v5:has([data-state="connecting"]) .anna-portrait::after{background:var(--tv-lime)}
@keyframes tv-live{70%{box-shadow:0 0 0 8px #3fd17a00}100%{box-shadow:0 0 0 0 #3fd17a00}}
.assistant-v5 #voice-stop{display:none!important}
.assistant-v5 #voice-start{width:100%;min-height:56px;font-size:17px;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:background .2s,transform .2s}
.assistant-v5 #voice-start::before{content:"";width:12px;height:12px;border-radius:50%;background:currentColor;opacity:.85}
.assistant-v5 #voice-start[data-mode="stop"]{background:#f1f5ee!important;color:#8a2a12!important;border-color:#f1f5ee!important}
.assistant-v5 #voice-start[data-mode="stop"]::before{border-radius:3px;background:#c2410c}
.assistant-v5 #voice-start:hover{transform:translateY(-1px)}
.assistant-v5 .voice-console[data-state="live"] .voice-meter i{animation:none}
.assistant-v5 .voice-caption{margin-top:14px;border:1px solid #ffffff22;border-radius:14px;padding:4px 14px;background:#ffffff08}
.assistant-v5 .voice-caption[open]{padding-bottom:12px}
.assistant-v5 #voice-transcript{max-height:220px;overflow-y:auto}
.assistant-v5 #voice-transcript:empty::before{content:"A beszélgetés szövege itt jelenik meg, amint elindul.";opacity:.7;font-size:14px}
.assistant-v5 #voice-transcript p{margin:8px 0;line-height:1.5;animation:tv-msg-in .3s ease both}
.assistant-consent.consent-attention{outline:2px solid var(--tv-lime);outline-offset:6px;border-radius:12px;animation:tv-attn 1s ease 2}
@keyframes tv-attn{50%{outline-color:transparent}}
@media (prefers-reduced-motion:reduce){.chat-enter,#floating-chat-panel:not([hidden]),.chat-launcher .chat-orb-face::after,.chat-typing .dots i{animation:none!important}}
