/* Maya Therapist - small refinements on top of Tailwind */

html, body { font-feature-settings: "kern" 1, "calt" 1; }
body { -webkit-font-smoothing: antialiased; }

/* Full-viewport app shell that handles mobile address-bar correctly */
.maya-app {
    height: 100vh;        /* fallback */
    height: 100dvh;       /* dynamic viewport: shrinks when keyboard opens */
    max-height: 100dvh;
    overflow: hidden;
}

/* Prevent iOS zoom-in on focus by keeping inputs >=16px on small screens */
@media (max-width: 640px) {
    #msgInput, #redeemCode, #fbComment { font-size: 16px; }
}

textarea, input { font-family: inherit; }

/* nicer scrollbar */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(45,42,38,0.18); border-radius: 8px; }
::-webkit-scrollbar-thumb:hover { background: rgba(45,42,38,0.32); }

/* typing dots */
.typing-dots span {
    display: inline-block;
    width: 6px; height: 6px;
    margin: 0 2px;
    background: #7a9a8a;
    border-radius: 50%;
    opacity: 0.4;
    animation: typing 1.2s infinite ease-in-out;
}
.typing-dots span:nth-child(2) { animation-delay: 0.15s; }
.typing-dots span:nth-child(3) { animation-delay: 0.3s; }

@keyframes typing {
    0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
    40% { transform: translateY(-4px); opacity: 1; }
}

/* fade-in for new bubbles */
.bubble-in {
    animation: bubbleIn 0.25s ease-out both;
}
@keyframes bubbleIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* selected rating */
.rating-btn.selected {
    background: #5d8073;
    color: white;
    border-color: #5d8073;
}

/* preserve newlines from AI replies */
.msg-content { white-space: pre-wrap; word-wrap: break-word; }
