/*
 * Claude/Rex AI Chatbox Styling
 * Uses VM Design System tokens for consistency
 * Author: Claude Code
 * Created: 2025-11-13
 */

/* Outer chatbox container - must not interfere with positioning */
#claude-chatbox-container {
    position: static !important;
    display: contents !important;
}

/* Floating button container */
#claude-chat-button-container {
    position: fixed !important;
    bottom: 5rem !important;
    right: var(--vm-spacing-lg) !important;
    z-index: 1000 !important;
}

/* Floating button */
.claude-chat-toggle {
    background-color: var(--vm-color-brand-red-500) !important;
    border-color: var(--vm-color-brand-red-500) !important;
    color: #FFFFFF !important;
    border-radius: 50px !important;
    padding: var(--vm-spacing-md) var(--vm-spacing-lg) !important;
    box-shadow: var(--vm-box-shadow-md) !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    transition: var(--transition-base) !important;
    font-family: var(--vm-font-body) !important;
}

.claude-chat-toggle:hover {
    background-color: var(--vm-color-brand-red-600) !important;
    border-color: var(--vm-color-brand-red-600) !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(200, 16, 46, 0.4) !important;
}

/* Modal customization - PROPER CENTERED DIALOG */
.claude-chat-modal .modal-dialog {
    max-width: 1092px !important;
    margin: 0rem auto !important;
}

.claude-chat-modal .modal-content {
    border-radius: 12px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3) !important;
    max-height: 85vh !important;
}

.claude-chat-modal .modal-header {
    background: linear-gradient(135deg, var(--vm-color-brand-red-500) 0%, var(--vm-color-brand-red-600) 100%);
    color: var(--vm-white);
    border-bottom: none;
    padding: var(--vm-spacing-md);
    border-radius: 12px 12px 0 0 !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
}

/* Modal header close button - white X on right side (NO BOX) */
.claude-chat-modal .modal-header .btn-close {
    background: transparent !important;
    opacity: 1 !important;
    padding: 0 !important;
    margin: 0 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    background-image: none !important;
    order: 2 !important;
    position: relative !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.claude-chat-modal .modal-header .btn-close::before {
    content: "×" !important;
    color: #FFFFFF !important;
    font-size: 2rem !important;
    font-weight: 300 !important;
    line-height: 1 !important;
    display: block !important;
}

.claude-chat-modal .modal-header .btn-close:hover {
    opacity: 0.7 !important;
    background: transparent !important;
}

.claude-chat-modal .modal-header .btn-close:focus {
    outline: none !important;
    box-shadow: none !important;
}

.claude-chat-modal .modal-title {
    order: 1 !important;
    margin: 0 !important;
}

.claude-chat-modal .modal-title {
    font-family: var(--vm-font-body);
    font-weight: 600;
    font-size: 1.1rem;
}

.claude-chat-modal .modal-body {
    padding: var(--vm-spacing-md);
    background: #111c34;
    max-height: calc(85vh - 200px);
    overflow-y: auto;
}

.claude-chat-modal .modal-footer {
    background: var(--vm-surface-muted-bg);
    border-top: 1px solid var(--vm-surface-card-border);
    padding: var(--vm-spacing-sm) var(--vm-spacing-md);
    border-radius: 0 0 12px 12px !important;
}

/* Info banner */
.claude-info-banner {
    background: #111c34;
    border: 1px solid #333333;
    border-left: 4px solid var(--vm-color-brand-red-500);
    border-radius: 8px;
    padding: var(--vm-spacing-md);
    margin-bottom: var(--vm-spacing-lg);
    font-family: var(--vm-font-body);
}

.claude-info-banner-title {
    color: #FFFFFF;
    font-weight: 600;
    margin-bottom: var(--vm-spacing-sm);
}

.claude-info-banner-examples {
    font-size: 0.875rem;
    color: #FFFFFF;
    margin-left: var(--vm-spacing-lg);
}

.claude-info-banner-examples div {
    margin-bottom: var(--vm-spacing-xs);
}

/* Chat history container */
.claude-chat-history {
    height: 250px;
    overflow-y: auto;
    margin-bottom: var(--vm-spacing-md);
    padding: var(--vm-spacing-sm);
    background: #111c34;
    border-radius: 8px;
    border: 1px solid #333333;
    box-shadow: inset 0 1px 3px rgba(255, 255, 255, 0.05);
    scroll-behavior: smooth;
}

.claude-chat-history::-webkit-scrollbar {
    width: 8px;
}

.claude-chat-history::-webkit-scrollbar-track {
    background: #1a1a1a;
    border-radius: 4px;
}

.claude-chat-history::-webkit-scrollbar-thumb {
    background: #666666;
    border-radius: 4px;
}

.claude-chat-history::-webkit-scrollbar-thumb:hover {
    background: #999999;
}

/* User message */
.claude-user-message {
    background: #111c34;
    padding: var(--vm-spacing-md);
    border-radius: 8px;
    margin-bottom: var(--vm-spacing-md);
    border-left: 4px solid var(--vm-color-brand-red-500);
    word-wrap: break-word;
    box-shadow: 0 1px 3px rgba(255, 255, 255, 0.08);
    font-family: var(--vm-font-body);
}

.claude-user-message-label {
    color: var(--vm-color-brand-red-500);
    font-size: 14px;
    font-weight: 600;
}

.claude-user-message-text {
    margin-left: var(--vm-spacing-sm);
    color: #FFFFFF;
}

/* Claude response */
.claude-response {
    background: #111c34;
    padding: var(--vm-spacing-md);
    border-radius: 8px;
    margin-bottom: var(--vm-spacing-md);
    border-left: 4px solid #4CAF50;
    box-shadow: 0 1px 3px rgba(255, 255, 255, 0.08);
    font-family: var(--vm-font-body);
    overflow-x: auto;
    max-width: 100%;
}

.claude-response-results-header {
    margin-bottom: var(--vm-spacing-sm);
    padding: var(--vm-spacing-xs) 0;
}

.claude-response-results-header strong {
    color: #FFFFFF;
}

.claude-response-results-header span {
    color: #FFFFFF;
    font-size: 0.9em;
}

/* SQL disclosure */
.claude-sql-disclosure summary {
    cursor: pointer;
    font-weight: 600;
    padding: var(--vm-spacing-sm);
    background: #1a1a1a;
    border-radius: 5px;
    margin-bottom: var(--vm-spacing-sm);
    color: #FFFFFF;
    transition: var(--transition-base);
}

.claude-sql-disclosure summary:hover {
    background: #333333;
}

.claude-sql-code {
    background: #263238;
    color: #aed581;
    padding: var(--vm-spacing-md);
    border-radius: 5px;
    font-size: 0.85em;
    overflow-x: auto;
    margin-top: var(--vm-spacing-sm);
    line-height: 1.5;
    font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
}

/* Error message */
.claude-error-message {
    background: #111c34;
    padding: var(--vm-spacing-md);
    border-radius: 8px;
    margin-bottom: var(--vm-spacing-md);
    border-left: 4px solid #DC2626;
    box-shadow: 0 1px 3px rgba(255, 255, 255, 0.08);
    font-family: var(--vm-font-body);
}

.claude-error-header {
    margin-bottom: var(--vm-spacing-sm);
}

.claude-error-header strong {
    color: #FFFFFF;
    font-weight: 600;
}

.claude-error-header i {
    color: #DC2626;
}

.claude-error-text {
    background: #1a1a1a;
    padding: var(--vm-spacing-md);
    border-radius: 5px;
    margin-top: var(--vm-spacing-sm);
    font-size: 0.85em;
    white-space: pre-wrap;
    word-wrap: break-word;
    color: #FF6B6B;
    border: 1px solid #333333;
    font-family: 'Monaco', 'Menlo', 'Consolas', monospace;
}

/* Input area */
.claude-question-input {
    height: 45px !important;
    width: 95% !important;
    font-size: 14px;
    border-radius: 8px;
    font-family: var(--vm-font-body);
    border: 1px solid #333333;
    padding: var(--vm-spacing-sm) var(--vm-spacing-md);
    background: #111c34;
    color: #FFFFFF;
}

.claude-question-input:focus {
    border-color: var(--vm-color-brand-red-500);
    box-shadow: 0 0 0 3px rgba(200, 16, 46, 0.3);
    background: #111c34;
    color: #FFFFFF;
}

.claude-send-btn {
    height: 40px !important;
    width: 99%;
    border-radius: 8px;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--vm-color-brand-red-500) !important;
    border-color: var(--vm-color-brand-red-500) !important;
    margin-top: var(--vm-spacing-sm);
}

.claude-send-btn:hover {
    background-color: var(--vm-color-brand-red-600) !important;
    border-color: var(--vm-color-brand-red-600) !important;
}

/* Character counter */
.claude-char-counter {
    font-size: 0.8em;
    color: #FFFFFF;
    margin-top: var(--vm-spacing-xs);
    text-align: right;
    font-family: var(--vm-font-body);
}

.claude-char-counter-warning {
    color: #FFA500;
}

.claude-char-counter-danger {
    color: #FF6B6B;
}

/* Checkbox styling */
#claude-show-sql-toggle {
    margin-right: var(--vm-spacing-sm);
}

#claude-show-sql-toggle + label {
    color: #FFFFFF !important;
    font-family: var(--vm-font-body);
}

/* Tables in results */
.claude-response table {
    font-size: 0.85em;
    margin-top: var(--vm-spacing-sm);
    font-family: var(--vm-font-body);
    width: 100%;
    table-layout: auto;
    word-wrap: break-word;
}

.claude-response table th {
    background: #1a1a1a;
    color: #FFFFFF;
    font-weight: 600;
    white-space: normal;
    word-wrap: break-word;
    text-align: center !important;
}

.claude-response table td {
    white-space: normal;
    word-wrap: break-word;
    max-width: 200px;
    color: #FFFFFF;
    text-align: center !important;
}

/* Force center alignment for Bootstrap table cells */
.claude-response .table th,
.claude-response .table td {
    text-align: center !important;
    vertical-align: middle !important;
}

.claude-response .table-striped tbody tr td,
.claude-response .table-bordered td,
.claude-response .table-hover tbody tr td {
    text-align: center !important;
}

/* Loading spinner */
.claude-loading {
    background: #FEF3C7;
    padding: var(--vm-spacing-md);
    border-radius: 8px;
    margin-bottom: var(--vm-spacing-md);
    border-left: 4px solid #F59E0B;
    font-family: var(--vm-font-body);
}

/* Empty state */
.claude-empty-state {
    text-align: center;
    color: #FFFFFF;
    padding: var(--vm-spacing-xl) var(--vm-spacing-lg);
    font-style: italic;
    font-family: var(--vm-font-body);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .claude-chat-toggle {
        bottom: var(--vm-spacing-md);
        right: var(--vm-spacing-md);
        font-size: 14px !important;
        padding: var(--vm-spacing-sm) var(--vm-spacing-md) !important;
    }

    .claude-chat-history {
        height: 300px;
    }
}
