.chatbot-trigger { position: fixed; right: 24px; bottom: 24px; z-index: 1200; border: none; border-radius: 999px; background: #ff6a00; color: #fff; padding: 14px 20px; font-size: 14px; cursor: pointer; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.22); transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease; } .chatbot-trigger:hover { transform: translateY(-2px); } .chatbot-trigger.is-open { padding: 14px 17px; min-width: 52px; } .chatbot-window { position: fixed; right: 24px; bottom: 88px; width: 380px; max-width: calc(100vw - 32px); height: 620px; max-height: calc(100vh - 120px); z-index: 1199; display: grid; grid-template-rows: auto 1fr auto; background: var(--theme-surface); border: 1px solid var(--theme-border); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.22); overflow: hidden; } .chatbot-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 18px 16px; border-bottom: 1px solid var(--theme-border); background: #1f1f1f; } .chatbot-header-copy h3 { margin: 8px 0 0; font-size: 24px; line-height: 1.02; font-weight: 400; color: #fff; } .chatbot-kicker { display: block; font-size: 10px; letter-spacing: 0.22em; color: rgba(255, 255, 255, 0.62); } .chatbot-close { border: none; background: transparent; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; padding: 0; } .chatbot-body { display: grid; grid-template-rows: 1fr auto; min-height: 0; } .chatbot-messages { padding: 18px; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; background: var(--theme-surface); } .chatbot-message { max-width: 82%; padding: 12px 14px; font-size: 14px; line-height: 1.55; word-break: break-word; } .chatbot-message--bot { align-self: flex-start; background: var(--theme-surface-soft); color: var(--theme-text); border: 1px solid var(--theme-border); } .chatbot-message--user { align-self: flex-end; background: #ff6a00; color: #fff; } .chatbot-message--typing { color: var(--theme-text-muted); } .chatbot-quick-actions { padding: 14px 18px 16px; border-top: 1px solid var(--theme-border); display: flex; flex-wrap: wrap; gap: 10px; background: var(--theme-surface-soft); } .chatbot-chip { border: 1px solid var(--theme-border); background: var(--theme-paper); color: var(--theme-text); padding: 9px 12px; font-size: 13px; cursor: pointer; transition: transform 0.2s ease, border-color 0.2s ease; } .chatbot-chip:hover { transform: translateY(-1px); border-color: var(--theme-border); } .chatbot-footer { padding: 14px 18px 18px; border-top: 1px solid var(--theme-border); background: var(--theme-paper); } .chatbot-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; } .chatbot-input { width: 100%; border: 1px solid var(--theme-border); background: var(--theme-paper); padding: 12px 14px; font-size: 14px; outline: none; } .chatbot-input:focus { border-color: #ff6a00; } .chatbot-send { border: none; background: #1f1f1f; color: #fff; padding: 12px 16px; font-size: 14px; cursor: pointer; } .chatbot-escalation { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 12px; } .chatbot-link { text-decoration: none; font-size: 13px; color: #ff6a00; background: transparent; border: none; padding: 0; cursor: pointer; } .chatbot-link--muted { color: var(--theme-text-muted); cursor: default; } .chatbot-action-area { border-top: 1px solid var(--theme-border); background: var(--theme-surface-soft); } .chatbot-section { padding: 14px 18px 16px; } .chatbot-section + .chatbot-section { border-top: 1px solid var(--theme-border); } .chatbot-section-label { display: block; margin-bottom: 10px; font-size: 10px; letter-spacing: 0.22em; color: var(--theme-text-muted); } .chatbot-feedback-actions { display: flex; flex-wrap: wrap; gap: 10px; } .chatbot-feedback-btn { border: 1px solid var(--theme-border); background: var(--theme-paper); color: var(--theme-text); padding: 10px 14px; font-size: 13px; cursor: pointer; transition: transform 0.2s ease, border-color 0.2s ease; } .chatbot-feedback-btn:hover { transform: translateY(-1px); border-color: var(--theme-border); } .chatbot-feedback-btn--primary { background: #ff6a00; border-color: #ff6a00; color: #fff; } .chatbot-secondary-actions { padding: 0 18px 14px; } .chatbot-text-button { border: none; background: transparent; color: #ff6a00; padding: 0; font-size: 13px; cursor: pointer; } @media (max-width: 700px) { .chatbot-trigger { right: 16px; bottom: 16px; } .chatbot-window { right: 16px; bottom: 76px; width: calc(100vw - 32px); height: 72vh; } .chatbot-header-copy h3 { font-size: 20px; } } /* --- Design System Refinement Start --- */ .chatbot-trigger { min-height: 48px; right: var(--page-x); bottom: var(--page-x); box-shadow: var(--theme-shadow-soft); } .chatbot-trigger:hover, .chatbot-trigger:focus-visible { transform: translateY(-2px); box-shadow: var(--theme-shadow); } .chatbot-window { right: var(--page-x); bottom: calc(var(--page-x) + 4rem); border-radius: var(--radius-lg); box-shadow: var(--theme-shadow); } .chatbot-close, .chatbot-send, .chatbot-chip, .chatbot-feedback-btn { min-height: 44px; } .chatbot-close { min-width: 44px; } .chatbot-message, .chatbot-chip, .chatbot-feedback-btn, .chatbot-input, .chatbot-send { border-radius: var(--radius-lg); } .chatbot-send { border-radius: 999px; } .chatbot-chip, .chatbot-feedback-btn, .chatbot-send { transition: transform var(--duration-med) var(--ease-out), border-color var(--duration-med) var(--ease-out), background-color var(--duration-med) var(--ease-out); } .chatbot-chip:hover, .chatbot-feedback-btn:hover, .chatbot-send:hover { transform: translateY(-1px); border-color: rgba(var(--theme-accent-rgb) / 0.55); } @media (max-width: 700px) { .chatbot-trigger { right: var(--page-x); bottom: var(--page-x); } .chatbot-window { right: var(--page-x); bottom: calc(var(--page-x) + 4.1rem); width: calc(100vw - (var(--page-x) * 2)); height: min(72svh, 620px); max-height: calc(100svh - 6rem); } } /* --- Design System Refinement End --- */