/**
 * Verdanta Chat - Styling
 *
 * This styles only the chat content (panel, messages, input).
 * The container (offcanvas, modal, sidebar) is handled by Bricks.
 *
 * CSS Custom Properties can be overridden in Bricks/Advanced Themer:
 *
 *   --vd-chat-primary: #22c55e;
 *   --vd-chat-bg: #ffffff;
 *   --vd-chat-text: #1f2937;
 *   etc.
 */

/* ==========================================================================
   CSS Custom Properties
   ========================================================================== */

.vd-chat {
    /* Colors */
    --vd-chat-primary: #22c55e;
    --vd-chat-primary-hover: #16a34a;
    --vd-chat-bg: #ffffff;
    --vd-chat-bg-secondary: #f9fafb;
    --vd-chat-text: #1f2937;
    --vd-chat-text-secondary: #6b7280;
    --vd-chat-border: #e5e7eb;

    /* Message colors */
    --vd-chat-user-bg: var(--vd-chat-primary);
    --vd-chat-user-text: #ffffff;
    --vd-chat-assistant-bg: #f3f4f6;
    --vd-chat-assistant-text: var(--vd-chat-text);

    /* Spacing */
    --vd-chat-spacing-xs: 0.25rem;
    --vd-chat-spacing-sm: 0.5rem;
    --vd-chat-spacing-md: 1rem;
    --vd-chat-spacing-lg: 1.5rem;

    /* Typography */
    --vd-chat-font-family: system-ui, -apple-system, sans-serif;
    --vd-chat-font-size: 0.9375rem;
    --vd-chat-line-height: 1.5;

    /* Border radius */
    --vd-chat-radius-sm: 0.375rem;
    --vd-chat-radius-md: 0.75rem;
    --vd-chat-radius-lg: 1rem;

    /* Transitions */
    --vd-chat-transition: 150ms ease;
}

/* ==========================================================================
   Base Layout
   ========================================================================== */

.vd-chat {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 300px;
    background: var(--vd-chat-bg);
    font-family: var(--vd-chat-font-family);
    font-size: var(--vd-chat-font-size);
    line-height: var(--vd-chat-line-height);
    color: var(--vd-chat-text);
}

/* ==========================================================================
   Header
   ========================================================================== */

.vd-chat__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--vd-chat-spacing-md);
    background: var(--vd-chat-primary);
    color: #ffffff;
    flex-shrink: 0;
}

.vd-chat__header-title {
    display: flex;
    align-items: center;
    gap: var(--vd-chat-spacing-sm);
    font-weight: 600;
}

.vd-chat__header-icon {
    font-size: 1.25em;
}

.vd-chat__header-actions {
    display: flex;
    gap: var(--vd-chat-spacing-xs);
}

.vd-chat__header-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    padding: 0;
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: var(--vd-chat-radius-sm);
    color: inherit;
    cursor: pointer;
    transition: background var(--vd-chat-transition);
}

.vd-chat__header-btn:hover {
    background: rgba(255, 255, 255, 0.25);
}

.vd-chat__header-btn:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
}

/* ==========================================================================
   Messages Container
   ========================================================================== */

.vd-chat__messages {
    flex: 1;
    overflow-y: auto;
    padding: var(--vd-chat-spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--vd-chat-spacing-md);
    scroll-behavior: smooth;
}

/* Scrollbar styling */
.vd-chat__messages::-webkit-scrollbar {
    width: 6px;
}

.vd-chat__messages::-webkit-scrollbar-track {
    background: transparent;
}

.vd-chat__messages::-webkit-scrollbar-thumb {
    background: var(--vd-chat-border);
    border-radius: 3px;
}

.vd-chat__messages::-webkit-scrollbar-thumb:hover {
    background: var(--vd-chat-text-secondary);
}

/* ==========================================================================
   Welcome Message
   ========================================================================== */

.vd-chat__welcome {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    text-align: center;
    color: var(--vd-chat-text-secondary);
    padding: var(--vd-chat-spacing-lg);
}

.vd-chat__welcome p {
    margin: 0;
    font-size: 1.0625rem;
}

/* ==========================================================================
   Message Bubbles
   ========================================================================== */

.vd-chat__message {
    max-width: 85%;
    animation: vd-chat-fade-in 200ms ease;
}

@keyframes vd-chat-fade-in {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.vd-chat__message--user {
    align-self: flex-end;
}

.vd-chat__message--assistant {
    align-self: flex-start;
}

.vd-chat__message-content {
    padding: var(--vd-chat-spacing-sm) var(--vd-chat-spacing-md);
    border-radius: var(--vd-chat-radius-lg);
    word-wrap: break-word;
    white-space: pre-wrap;
}

.vd-chat__message--user .vd-chat__message-content {
    background: var(--vd-chat-user-bg);
    color: var(--vd-chat-user-text);
    border-bottom-right-radius: var(--vd-chat-radius-sm);
}

.vd-chat__message--assistant .vd-chat__message-content {
    background: var(--vd-chat-assistant-bg);
    color: var(--vd-chat-assistant-text);
    border-bottom-left-radius: var(--vd-chat-radius-sm);
}

/* ==========================================================================
   Typing Indicator
   ========================================================================== */

.vd-chat__typing {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: var(--vd-chat-spacing-sm) var(--vd-chat-spacing-md);
    background: var(--vd-chat-assistant-bg);
    border-radius: var(--vd-chat-radius-lg);
    border-bottom-left-radius: var(--vd-chat-radius-sm);
    align-self: flex-start;
    width: fit-content;
}

.vd-chat__typing span {
    width: 8px;
    height: 8px;
    background: var(--vd-chat-text-secondary);
    border-radius: 50%;
    animation: vd-chat-typing 1.4s infinite ease-in-out;
}

.vd-chat__typing span:nth-child(1) {
    animation-delay: 0s;
}

.vd-chat__typing span:nth-child(2) {
    animation-delay: 0.2s;
}

.vd-chat__typing span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes vd-chat-typing {
    0%, 60%, 100% {
        transform: translateY(0);
        opacity: 0.6;
    }
    30% {
        transform: translateY(-4px);
        opacity: 1;
    }
}

/* ==========================================================================
   Input Form
   ========================================================================== */

.vd-chat__form {
    padding: var(--vd-chat-spacing-md);
    border-top: 1px solid var(--vd-chat-border);
    background: var(--vd-chat-bg);
    flex-shrink: 0;
}

.vd-chat__input-wrapper {
    display: flex;
    gap: var(--vd-chat-spacing-sm);
    align-items: center;
}

.vd-chat__input {
    flex: 1;
    padding: var(--vd-chat-spacing-sm) var(--vd-chat-spacing-md);
    border: 1px solid var(--vd-chat-border);
    border-radius: var(--vd-chat-radius-md);
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: var(--vd-chat-text);
    background: var(--vd-chat-bg);
    transition: border-color var(--vd-chat-transition), box-shadow var(--vd-chat-transition);
}

.vd-chat__input::placeholder {
    color: var(--vd-chat-text-secondary);
}

.vd-chat__input:focus {
    outline: none;
    border-color: var(--vd-chat-primary);
    box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.15);
}

.vd-chat__input:disabled {
    background: var(--vd-chat-bg-secondary);
    cursor: not-allowed;
}

/* ==========================================================================
   Send Button
   ========================================================================== */

.vd-chat__send {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--vd-chat-spacing-xs);
    padding: var(--vd-chat-spacing-sm) var(--vd-chat-spacing-md);
    background: var(--vd-chat-primary);
    color: #ffffff;
    border: none;
    border-radius: var(--vd-chat-radius-md);
    font-family: inherit;
    font-size: inherit;
    font-weight: 500;
    cursor: pointer;
    transition: background var(--vd-chat-transition);
    white-space: nowrap;
}

.vd-chat__send:hover:not(:disabled) {
    background: var(--vd-chat-primary-hover);
}

.vd-chat__send:focus-visible {
    outline: 2px solid var(--vd-chat-primary);
    outline-offset: 2px;
}

.vd-chat__send:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Hide text on small screens, show only icon */
@media (max-width: 360px) {
    .vd-chat__send-text {
        display: none;
    }
}

/* ==========================================================================
   Error Message
   ========================================================================== */

.vd-chat__error {
    padding: var(--vd-chat-spacing-sm) var(--vd-chat-spacing-md);
    margin: 0 var(--vd-chat-spacing-md) var(--vd-chat-spacing-md);
    background: #fef2f2;
    color: #dc2626;
    border-radius: var(--vd-chat-radius-sm);
    font-size: 0.875rem;
    text-align: center;
}

/* ==========================================================================
   Icons
   ========================================================================== */

.vd-chat__icon {
    flex-shrink: 0;
}

/* ==========================================================================
   Utility Classes
   ========================================================================== */

[x-cloak] {
    display: none !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 480px) {
    .vd-chat__message {
        max-width: 90%;
    }

    .vd-chat__header,
    .vd-chat__form,
    .vd-chat__messages {
        padding: var(--vd-chat-spacing-sm);
    }
}
