:root{--color-primary: #0ea5e9;--color-primary-dark: #0284c7;--color-primary-light: #e0f2fe;--color-secondary: #6366f1;--color-background: #f8fafc;--color-surface: #ffffff;--color-text: #0f172a;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-success: #10b981;--color-warning: #f59e0b;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--border-radius-sm: 8px;--border-radius: 16px;--border-radius-lg: 24px;--border-radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--transition: all .2s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body,#root{height:100%}body{font-family:var(--font-family);background:linear-gradient(135deg,#667eea,#764ba2);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}.chat-container{max-width:480px;width:100%;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--color-surface);position:relative;overflow-x:hidden}@media (max-width: 639px){body{background:var(--color-surface);min-height:100dvh;overflow:hidden}}@media (min-width: 640px){body{padding:20px;display:flex;align-items:center;justify-content:center}.chat-container{height:calc(100vh - 40px);max-height:800px;border-radius:var(--border-radius-lg);box-shadow:var(--shadow-xl)}}.chat-header{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;padding:16px 20px;display:flex;align-items:center;gap:14px;flex-shrink:0}.chat-header-logo{width:44px;height:44px;border-radius:12px;object-fit:contain;background:#fff;padding:6px;box-shadow:var(--shadow)}.chat-header-text h1{font-size:15px;font-weight:600;margin-bottom:2px;letter-spacing:-.01em}.chat-header-text p{font-size:12px;opacity:.85;font-weight:400}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:var(--color-background)}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.message{max-width:85%;animation:messageSlide .3s cubic-bezier(.4,0,.2,1)}@keyframes messageSlide{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.message-user{align-self:flex-end}.message-assistant{align-self:flex-start}.message-bubble{padding:14px 18px;border-radius:var(--border-radius);font-size:14px;line-height:1.6;box-shadow:var(--shadow-sm);overflow-wrap:break-word;word-break:break-word;min-width:0}.message-user .message-bubble{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border-bottom-right-radius:6px}.message-assistant .message-bubble{background:var(--color-surface);color:var(--color-text);border-bottom-left-radius:6px;border:1px solid var(--color-border)}.message-bubble p{margin-bottom:10px}.message-bubble p:last-child{margin-bottom:0}.message-bubble strong{font-weight:600;color:var(--color-primary-dark)}.message-user .message-bubble strong{color:#fff}.message-bubble code{background:#0000000f;padding:3px 8px;border-radius:6px;font-size:13px;font-family:SF Mono,Monaco,monospace}.message-bubble em{font-style:italic;opacity:.85}.message-bubble hr{border:none;border-top:1px solid var(--color-border);margin:12px 0}.message-bubble a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.message-user .message-bubble a{color:#fff;opacity:.9}.message-bubble ul,.message-bubble ol{margin:8px 0;padding-left:20px}.message-bubble li{margin-bottom:4px}.message-bubble li:last-child{margin-bottom:0}.message-bubble pre{background:var(--color-background);padding:14px;border-radius:12px;overflow-x:auto;font-size:12px;margin:14px 0;border:1px solid var(--color-border)}.button-group{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.chat-button{padding:10px 18px;border:1.5px solid var(--color-border);border-radius:var(--border-radius-full);background:var(--color-surface);color:var(--color-text);font-size:13px;font-weight:500;font-family:var(--font-family);cursor:pointer;transition:var(--transition);white-space:normal;text-align:center}.chat-button:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-1px)}.chat-button:active{transform:translateY(0)}.chat-button-primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border-color:transparent;color:#fff;box-shadow:0 4px 14px #0ea5e959}.chat-button-primary:hover{background:linear-gradient(135deg,var(--color-primary-dark) 0%,#4f46e5 100%);border-color:transparent;color:#fff;box-shadow:0 6px 20px #0ea5e973}.chat-input-area{padding:16px 20px;padding-bottom:max(16px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);flex-shrink:0;position:relative;overflow:visible}.chat-input-form{display:flex;gap:12px;align-items:center}.chat-input{flex:1;padding:14px 20px;border:1.5px solid var(--color-border);border-radius:var(--border-radius-full);font-size:14px;font-family:var(--font-family);outline:none;transition:var(--transition);background:var(--color-background)}.chat-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px var(--color-primary-light)}.chat-input:disabled{background:var(--color-background);cursor:not-allowed;opacity:.7}.chat-input::placeholder{color:var(--color-text-secondary)}.chat-submit{width:48px;height:48px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:50%;font-size:18px;font-weight:500;font-family:var(--font-family);cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 14px #0ea5e959}.chat-submit:after{content:"→";font-size:20px}.chat-submit:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 20px #0ea5e973}.chat-submit:active:not(:disabled){transform:scale(.98)}.chat-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.chat-input-area-compact{padding:8px 20px;padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--color-surface);flex-shrink:0;position:relative}.chat-input-question{padding:10px 16px!important;font-size:13px!important;background:var(--color-background)!important;border-color:transparent!important}.chat-input-question:focus{border-color:var(--color-primary)!important;background:var(--color-surface)!important}.chat-input-question::placeholder{color:var(--color-text-secondary);opacity:.6}.chat-submit-small{width:36px!important;height:36px!important;box-shadow:none!important;opacity:.7}.chat-submit-small:after{font-size:16px!important}.chat-submit-small:hover:not(:disabled){opacity:1}@media (max-width: 640px){.chat-input-area-compact{padding:6px 16px;padding-bottom:max(6px,env(safe-area-inset-bottom))}}@media (max-width: 380px){.chat-input-area-compact{padding:6px 12px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.chat-input-question{padding:8px 12px!important;font-size:16px!important}.chat-submit-small{width:32px!important;height:32px!important}.chat-submit-small:after{font-size:14px!important}}.typing-indicator{display:flex;gap:5px;padding:16px 20px;background:var(--color-surface);border-radius:var(--border-radius);width:fit-content;border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.typing-dot{width:8px;height:8px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}@keyframes typingBounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1);opacity:1}}.start-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 30px;text-align:center;background:linear-gradient(180deg,var(--color-background) 0%,var(--color-surface) 100%)}.start-screen h2{font-size:26px;font-weight:700;margin-bottom:14px;color:var(--color-text);letter-spacing:-.02em}.start-screen p{color:var(--color-text-secondary);margin-bottom:32px;max-width:320px;font-size:15px;line-height:1.7}.start-button{padding:16px 40px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:#fff;border:none;border-radius:var(--border-radius-full);font-size:16px;font-weight:600;font-family:var(--font-family);cursor:pointer;transition:var(--transition);box-shadow:0 4px 20px #0ea5e966}.start-button:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0ea5e980}.start-button:active{transform:translateY(0)}.start-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.start-checklist{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:8px;max-width:320px;color:var(--color-text-secondary);font-size:14px;text-align:left}.start-checklist li{display:flex;align-items:center;gap:10px}.start-checklist li:before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--color-primary);color:#fff;font-size:12px;font-weight:700;flex-shrink:0}.start-disclaimer{margin-top:16px!important;font-size:12px!important;color:var(--color-text-secondary);opacity:.8;max-width:320px;line-height:1.5!important}.start-disclaimer a{color:var(--color-primary);text-decoration:underline}.start-screen .start-error{margin-bottom:16px;padding:10px 14px;border-radius:var(--border-radius-sm);background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:14px;line-height:1.5}@media (max-width: 640px){.chat-header{padding:14px 16px}.chat-messages{padding:16px}.message{max-width:90%}.message-bubble{padding:12px 16px}.chat-input-area{padding:14px 16px;padding-bottom:max(14px,env(safe-area-inset-bottom))}.chat-input{padding:12px 18px}.chat-submit{width:44px;height:44px}.start-screen{padding:30px 24px}.start-screen h2{font-size:22px}}@media (max-width: 380px){.chat-header{padding:10px 12px;gap:10px}.chat-header-logo{width:36px;height:36px;padding:4px;border-radius:8px}.chat-header-text h1{font-size:13px}.chat-header-text p{font-size:11px}.chat-messages{padding:12px;gap:10px}.message{max-width:95%}.message-bubble{padding:10px 12px;font-size:13px}.button-group{gap:6px}.chat-button{padding:8px 12px;font-size:12px}.chat-input-area{padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.chat-input-form{gap:8px}.chat-input{padding:10px 14px;font-size:16px}.chat-submit{width:40px;height:40px}.chat-submit:after{font-size:16px}.start-screen{padding:24px 16px}.start-screen h2{font-size:20px}.start-screen p{font-size:14px;max-width:100%}.start-button{padding:14px 32px;font-size:15px}}@media (max-width: 360px){.button-group{flex-direction:column}.chat-button{width:100%}}.address-autocomplete{position:relative;flex:1}.autocomplete-loading{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;gap:4px}.autocomplete-loading .loading-dot{width:6px;height:6px;background:var(--color-primary);border-radius:50%;animation:typingBounce 1.4s infinite ease-in-out}.autocomplete-loading .loading-dot:nth-child(2){animation-delay:.16s}.autocomplete-loading .loading-dot:nth-child(3){animation-delay:.32s}.autocomplete-suggestions{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-height:240px;max-width:100%;overflow-y:auto;z-index:1000}.autocomplete-item{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;border:none;background:transparent;text-align:left;cursor:pointer;font-family:var(--font-family);font-size:14px;color:var(--color-text);transition:var(--transition);border-bottom:1px solid var(--color-border)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.selected{background:var(--color-primary-light)}.autocomplete-icon{font-size:16px;flex-shrink:0}.autocomplete-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.autocomplete-hint{position:absolute;bottom:calc(100% + 8px);left:0;right:0;padding:10px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);box-shadow:var(--shadow);font-size:13px;line-height:1.5;color:var(--color-text-secondary);z-index:1000}.tester-banner{background:#fef3c7;color:#92400e;text-align:center;padding:8px 16px;font-size:13px;font-weight:600;flex-shrink:0;border-bottom:1px solid #fbbf24}.tester-banner-error{display:block;margin-top:4px;color:#b91c1c;font-weight:500}.tester-pen{background:none;border:1px solid var(--color-border);border-radius:var(--border-radius-full);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;margin-top:6px;transition:var(--transition);opacity:.6}.tester-pen:hover{opacity:1;border-color:var(--color-primary);background:var(--color-primary-light)}.tester-form{display:flex;gap:8px;align-items:center;margin-top:8px}.tester-input{flex:1;padding:8px 12px;border:1.5px solid #fbbf24;border-radius:var(--border-radius-sm);font-size:13px;font-family:var(--font-family);outline:none;background:#fffbeb;resize:none;overflow:hidden;min-height:36px;line-height:1.4}.tester-input:focus{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b33}.tester-save{padding:6px 14px;background:#f59e0b;color:#fff;border:none;border-radius:var(--border-radius-sm);font-size:12px;font-weight:600;font-family:var(--font-family);cursor:pointer;white-space:nowrap}.tester-save:hover{background:#d97706}.tester-cancel{padding:6px 14px;background:none;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);font-size:12px;font-family:var(--font-family);cursor:pointer;white-space:nowrap}.tester-cancel:hover{background:var(--color-background)}.tester-note{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 12px;background:#fffbeb;border:1px solid #fde68a;border-radius:var(--border-radius-sm);font-size:13px}.tester-note-icon{flex-shrink:0}.tester-note-text{flex:1;color:#92400e}.tester-note-edit{background:none;border:none;cursor:pointer;font-size:14px;opacity:.6;padding:2px}.tester-note-edit:hover{opacity:1}
