.page { max-width: 800px; margin: 0 auto; padding: 0 1rem 2rem; } .header { padding: 0.75rem 0; border-bottom: 1px solid var(--ifm-color-emphasis-200); } .backLink { color: var(--ifm-color-primary); font-size: 0.875rem; text-decoration: none; } .backLink:hover { text-decoration: underline; } .messages { display: flex; flex-direction: column; gap: 0.75rem; padding: 1rem 0; } .empty { padding: 2rem 0; color: var(--ifm-color-emphasis-500); font-size: 0.95rem; text-align: center; } .messageRow { display: flex; } .messageRowUser { justify-content: flex-end; } .messageRowAssistant { justify-content: flex-start; } .bubble { max-width: 75%; padding: 10px 14px; font-size: 0.9rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; border-radius: var(--ifm-global-radius); } .userBubble { color: var(--ifm-color-primary-contrast-foreground); background: var(--ifm-color-primary); } .assistantBubble { color: var(--ifm-font-color-base); background: var(--ifm-background-surface-color); border: 1px solid var(--ifm-color-emphasis-200); } .bubbleContent { margin-bottom: 0; } .sources { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ifm-color-emphasis-200); } .sourcesLabel { margin-bottom: 4px; color: var(--ifm-color-emphasis-600); font-weight: var(--ifm-font-weight-semibold); font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; } .sourceLink { display: block; overflow: hidden; color: var(--ifm-color-primary); font-size: 0.8rem; white-space: nowrap; text-decoration: none; text-overflow: ellipsis; } .sourceLink:hover { text-decoration: underline; } .loadingBubble { display: flex; gap: 4px; align-items: center; padding: 12px 16px; } .loadingDot { display: inline-block; width: 7px; height: 7px; background: var(--ifm-color-emphasis-400); border-radius: 50%; animation: bounce 1.2s infinite; } .loadingDot:nth-child(2) { animation-delay: 0.2s; } .loadingDot:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-5px); } } .errorRow { display: flex; justify-content: center; } .errorText { padding: 8px 14px; color: var(--ifm-color-danger); font-size: 0.85rem; background: var(--ifm-color-danger-contrast-background); border: 1px solid var(--ifm-color-danger); border-radius: var(--ifm-global-radius); } .inputRow { display: flex; gap: 0.5rem; align-items: flex-end; padding: 0.75rem 0; border-top: 1px solid var(--ifm-color-emphasis-200); } .input { flex: 1; padding: 8px 12px; color: var(--ifm-font-color-base); font-size: var(--ifm-font-size-base); font-family: inherit; background: var(--ifm-background-surface-color); border: 1px solid var(--ifm-color-emphasis-300); border-radius: var(--ifm-global-radius); outline: none; transition: border-color 0.2s ease; resize: none; } .input:focus { border-color: var(--ifm-color-primary); } .input:disabled { cursor: not-allowed; opacity: 0.6; } .sendBtn { padding: 8px 18px; color: var(--ifm-color-primary-contrast-foreground); font-weight: var(--ifm-font-weight-semibold); font-size: 0.875rem; white-space: nowrap; background: var(--ifm-color-primary); border: none; border-radius: var(--ifm-global-radius); cursor: pointer; transition: opacity 0.15s ease; } .sendBtn:hover:not(:disabled) { opacity: 0.85; } .sendBtn:disabled { cursor: not-allowed; opacity: 0.5; }