.flora-assistant { --fa-green: #20563f; --fa-ink: #203c2e; --fa-size: 15px; position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 1200; font-family: 'Montserrat', sans-serif; font-size: var(--fa-size); color: var(--fa-ink); }
.flora-assistant *, .flora-assistant *::before, .flora-assistant *::after { box-sizing: border-box; }
.flora-assistant [hidden] { display: none !important; }
.flora-assistant .fa-panel { padding: 0; margin: 0; }
.flora-assistant form { margin: 0; padding: 0; }
.fa-transcript { overflow-anchor: none; }
.fa-composer { transition: border-color .18s ease, background-color .18s ease; }
.fa-composer .fa-field { resize: none; }
.fa-send { transition: background-color .18s ease, opacity .18s ease; }
.fa-controls .fa-error:empty { display: none; }
.flora-assistant button, .flora-assistant input, .flora-assistant textarea { font: inherit; }
.flora-assistant button { cursor: pointer; }
.flora-assistant button:disabled { cursor: wait; opacity: .6; }
.flora-assistant :focus-visible { outline: 3px solid #258858; outline-offset: 3px; }
.flora-assistant ::selection { background: #c9e7d1; color: #173c2a; }
.fa-launcher { position: relative; display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: var(--fa-green); box-shadow: 0 5px 20px #173c2a26; }
.fa-launcher::before { content: ''; position: absolute; inset: -2px; border: 1px solid var(--fa-green); border-radius: inherit; pointer-events: none; animation: fa-launcher-pulse 3.4s ease-out infinite; }
.fa-launcher svg { width: 25px; height: 25px; }
.fa-launcher:hover { background: #163f2d; }
.fa-launcher:hover::before, .fa-launcher:focus-visible::before { animation: none; opacity: 0; }
@keyframes fa-launcher-pulse { 0%, 15% { transform: scale(1); opacity: 0; } 25% { transform: scale(1.04); opacity: .45; } 75%, 100% { transform: scale(1.3); opacity: 0; } }
.fa-backdrop { position: fixed; inset: 0; background: #10201938; z-index: 1; }
.fa-panel { position: absolute; right: 0; bottom: 0; z-index: 2; width: min(440px, calc(100vw - 40px)); height: min(720px, calc(100vh - 40px)); height: min(720px, calc(100dvh - 40px)); display: flex; flex-direction: column; overflow: hidden; border-radius: 18px; background: #f4f6f2; box-shadow: 0 18px 60px #10201933; }
.fa-header { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: #fff; flex-shrink: 0; border-bottom: 1px solid #dfe6dd; }
.fa-avatar { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: #e4efdf; color: #20563f; font-family: 'Oswald', sans-serif; font-size: 25px; }
.fa-identity { flex: 1; min-width: 0; }
.fa-header h2 { margin: 0; font-family: 'Montserrat', sans-serif; font-size: 19px; font-weight: 600; line-height: 1.4; }
.fa-header p { margin: 1px 0 0; font-size: 12px; line-height: 1.5; color: #536455; }
.fa-icon-button { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #365340; font-size: 28px !important; }
.fa-icon-button:hover { background: #eaf0e8; }
.fa-font { display: flex; justify-content: center; font-size: 15px !important; font-weight: 600 !important; }
.fa-font span { font-size: 13px; }
.fa-transcript { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 24px 20px; scrollbar-width: thin; scrollbar-color: #a9bba8 transparent; }
.fa-message { max-width: 92%; margin: 0 0 18px; animation: fa-arrive .18s ease-out; }
.fa-message-label { display: block; margin: 0 0 6px 2px; color: #52644f; font-size: 11px; font-weight: 600; }
.fa-bubble { padding: 14px 16px; background: #fff; border-radius: 3px 14px 14px 14px; font-size: var(--fa-size); line-height: 1.65; overflow-wrap: anywhere; white-space: pre-wrap; }
.fa-message--visitor { margin-left: auto; max-width: 86%; }
.fa-message--visitor .fa-bubble { background: var(--fa-green); color: white; border-radius: 14px 3px 14px 14px; }
.fa-message--visitor .fa-message-label { text-align: right; }
.fa-controls { flex: 0 0 auto; padding: 16px 20px; background: #fff; border-top: 1px solid #dfe6dd; max-height: 55%; overflow-y: auto; overscroll-behavior: contain; }
.fa-controls p { color: #52644f; font-size: 12px; line-height: 1.6; margin: 0 0 12px; }
.fa-controls a, .fa-footer a { color: #20563f; text-decoration: underline; text-underline-offset: 3px; }
.fa-button { display: block; width: 100%; min-height: 46px; padding: 11px 16px; border: 1px solid #bccfbd; border-radius: 8px; font-size: 14px !important; font-weight: 600 !important; line-height: 1.45; text-align: center; background: #fff; color: #20563f; }
.fa-button:hover { background: #edf4e9; }
.fa-button--primary { background: var(--fa-green); border-color: var(--fa-green); color: #fff; }
.fa-button--primary:hover { background: #163f2d; }
.fa-button + .fa-button { margin-top: 8px; }
.fa-field { display: block; width: 100%; min-height: 48px; resize: vertical; max-height: 125px; padding: 12px; border: 1px solid #879e8d; border-radius: 8px; color: var(--fa-ink); background: #fff; font-size: max(16px, var(--fa-size)) !important; line-height: 1.5; caret-color: var(--fa-green); }
.fa-field::placeholder { color: #627166; }
.fa-composer { display: flex; align-items: flex-end; gap: 8px; padding: 6px; border: 1px solid #9aaf9c; border-radius: 24px; }
.fa-composer:focus-within { border-color: #258858; outline: 2px solid #258858; outline-offset: 2px; }
.fa-composer .fa-field { border: 0; border-radius: 18px; min-height: 44px; max-height: 110px; padding: 9px 10px; background: transparent; }
.flora-assistant .fa-composer .fa-field:focus { outline: none; box-shadow: none; }
.fa-send { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 50%; font-size: 24px !important; }
.fa-send svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; vertical-align: middle; }
.fa-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fa-choices .fa-button { margin: 0; font-size: 12px !important; padding: 10px; border-radius: 20px; }
.fa-controls .fa-intro-note { margin: 12px 0 0; font-size: 11px; }
.fa-controls > .fa-button + p { margin-top: 12px; }
.fa-typing { display: flex; align-items: center; gap: 5px; min-width: 68px; width: fit-content; height: 48px; }
.fa-typing span { width: 6px; height: 6px; border-radius: 50%; background: #739378; animation: fa-typing-dot 1s ease-in-out infinite; }
.fa-typing span:nth-child(2) { animation-delay: .12s; }
.fa-typing span:nth-child(3) { animation-delay: .24s; }
@keyframes fa-typing-dot { 0%, 70%, 100% { transform: translateY(0); opacity: .45; } 35% { transform: translateY(-4px); opacity: 1; } }
.fa-composer-label { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.fa-composer-label span { color: #627166; font-size: 11px; font-weight: 400; }
.fa-composer-actions { display: flex; gap: 10px; margin-top: 10px; }
.fa-composer-actions .fa-button { margin: 0; }
.fa-composer-actions .fa-back { flex: 0 0 auto; width: auto; }
.fa-error { color: #a12828 !important; margin: 8px 0 0 !important; }
.fa-summary { width: 100%; margin: 0; }
.fa-summary-row { padding: 12px 0; border-bottom: 1px solid #dce5d7; }
.fa-summary-row:last-child { border: 0; }
.fa-summary dt { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 600; }
.fa-summary dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--fa-size); line-height: 1.6; }
.fa-edit { min-height: 44px; min-width: 44px; padding: 6px; border: 0; background: transparent; text-decoration: underline; text-underline-offset: 3px; color: #20563f; font-size: 12px !important; }
.fa-footer { display: flex; flex-shrink: 0; justify-content: space-between; gap: 12px; padding: 0 20px; background: #fff; font-size: 10px; color: #566650; align-items: center; }
.fa-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.fa-invitation { position: absolute; right: 0; bottom: 72px; width: min(310px, calc(100vw - 32px)); min-height: 112px; display: flex; align-items: flex-start; padding: 8px; background: #fff; border-radius: 14px; box-shadow: 0 8px 28px #10201926; }
.fa-invitation::after { content: ''; position: absolute; right: 21px; bottom: -6px; width: 14px; height: 14px; background: #fff; transform: rotate(45deg); pointer-events: none; }
.fa-invitation > button:first-child { flex: 1; min-width: 0; min-height: 88px; border: 0; background: transparent; padding: 8px; text-align: left; color: var(--fa-ink); }
.fa-invitation strong { display: block; font-size: 14px; }
.fa-invitation span { display: block; font-size: 12px; line-height: 1.5; margin-top: 5px; }
.fa-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
body.cookie-settings-open .flora-assistant { visibility: hidden; }
@keyframes fa-arrive { from { opacity: .4; transform: translateY(5px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) {
  .flora-assistant { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); }
  .fa-panel { position: fixed; inset: 8px; width: auto; height: calc(100vh - 16px); height: calc(100dvh - 16px); border-radius: 14px; }
  .fa-header { padding: 12px; gap: 8px; }
  .fa-transcript { padding: 18px 14px; }
  .fa-controls { padding: 12px 14px; }
  .fa-footer { padding: 0 14px env(safe-area-inset-bottom); }
}
@media (max-height: 500px) { .fa-header { padding: 6px 12px; } .fa-footer { display: none; } .fa-controls { padding: 8px 14px; max-height: 65%; } .fa-transcript { padding: 12px; } }
@media (prefers-reduced-motion: reduce) { .fa-message, .fa-typing span { animation: none; } .fa-launcher::before { animation: none; opacity: 0; } .fa-composer, .fa-send { transition: none; } }
