/* Vyne Apartments Dashboard Styles */
body { background: #F5F0EB; color: #2D2A26; font-family: 'Inter', system-ui, sans-serif; }
.fade-in { animation: fadeIn 0.5s ease-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.pulse-dot { animation: pulse 2s infinite; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.spinner { border: 2px solid #E2DCD5; border-top-color: #7c6f5b; border-radius: 50%; width: 32px; height: 32px; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #F5F0EB; }
::-webkit-scrollbar-thumb { background: #D4CFC8; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #B8B0A6; }
/* Donut chart animation */
.donut-segment { transition: stroke-dasharray 0.8s cubic-bezier(0.4, 0, 0.2, 1); }
.donut-ring { transition: stroke-dasharray 1s cubic-bezier(0.4, 0, 0.2, 1), stroke-dashoffset 1s cubic-bezier(0.4, 0, 0.2, 1); }
/* Agent chat */
.chat-panel { transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.35s ease; }
.chat-panel.closed { transform: translateX(100%); opacity: 0; pointer-events: none; }
.chat-msg pre { background: #F0EBE5; border: 1px solid #E2DCD5; border-radius: 0.5rem; padding: 0.75rem; overflow-x: auto; margin: 0.5rem 0; font-size: 0.8rem; }
.chat-msg code { background: #EDE8E2; padding: 0.1rem 0.3rem; border-radius: 0.25rem; font-size: 0.85em; }
.chat-msg pre code { background: none; padding: 0; }
.chat-msg p { margin-bottom: 0.5rem; }
.chat-msg p:last-child { margin-bottom: 0; }
.chat-msg ul, .chat-msg ol { margin: 0.5rem 0; padding-left: 1.25rem; }
.chat-msg li { margin-bottom: 0.25rem; }
.chat-msg strong { color: #1F1D1A; }
.typing-dots span { animation: blink 1.4s infinite both; }
.typing-dots span:nth-child(2) { animation-delay: 0.2s; }
.typing-dots span:nth-child(3) { animation-delay: 0.4s; }
@keyframes blink { 0%, 80%, 100% { opacity: 0.2; } 40% { opacity: 1; } }
.todo-filter { color: #8C8279; background: transparent; }
.todo-filter:hover { border-color: #B8B0A6; color: #2D2A26; }
.todo-filter.active { border-color: #7c6f5b; color: #6B5D4F; background: rgba(124,111,91,0.12); }
.receipt-filter { color: #8C8279; background: transparent; }
.receipt-filter:hover { border-color: #B8B0A6; color: #2D2A26; }
.receipt-filter.active { border-color: #c4943a; color: #c4943a; background: rgba(196,148,58,0.12); }
.model-btn { border-color: #E2DCD5; color: #8C8279; background: transparent; }
.model-btn:hover { border-color: #B8B0A6; color: #2D2A26; }
.model-btn.active { border-color: #7c6f5b; color: #6B5D4F; background: rgba(124,111,91,0.12); }
