﻿* { font-family: "Noto Sans JP", sans-serif; }
.chat-scroll::-webkit-scrollbar { width: 6px; }
.chat-scroll::-webkit-scrollbar-track { background: transparent; }
.chat-scroll::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
.voice-wave { display: flex; align-items: center; gap: 3px; height: 32px; }
.voice-wave .bar { width: 4px; border-radius: 999px; background: #3b82f6; animation: voice-wave 1s ease-in-out infinite; }
.voice-wave .bar:nth-child(1) { animation-delay: 0s; height: 8px; }
.voice-wave .bar:nth-child(2) { animation-delay: 0.1s; height: 16px; }
.voice-wave .bar:nth-child(3) { animation-delay: 0.2s; height: 24px; }
.voice-wave .bar:nth-child(4) { animation-delay: 0.3s; height: 16px; }
.voice-wave .bar:nth-child(5) { animation-delay: 0.4s; height: 8px; }
.voice-wave .bar:nth-child(6) { animation-delay: 0.15s; height: 20px; }
.voice-wave .bar:nth-child(7) { animation-delay: 0.35s; height: 12px; }
.voice-wave-red .bar { background: #ef4444; }
.pulse-ring { animation: pulse-ring 1.5s ease-out infinite; }
.fade-in { animation: fade-in 0.3s ease-out; }
.slide-in { animation: slide-in 0.45s ease-out; }
.btn-primary { background: linear-gradient(135deg, #3b82f6, #2563eb); transition: all 0.2s ease; }
.btn-primary:hover { background: linear-gradient(135deg, #2563eb, #1d4ed8); transform: translateY(-1px); box-shadow: 0 10px 24px rgba(37, 99, 235, 0.28); }
.btn-primary:disabled { opacity: 0.55; transform: none; box-shadow: none; }
.chat-bubble-user { background: linear-gradient(135deg, #3b82f6, #2563eb); color: #fff; border-radius: 18px 18px 4px 18px; }
.chat-bubble-ai { background: #f8fafc; color: #1e293b; border-radius: 18px 18px 18px 4px; }
@keyframes voice-wave { 0%, 100% { transform: scaleY(0.4); } 50% { transform: scaleY(1); } }
@keyframes pulse-ring { 0% { transform: scale(1); opacity: 0.6; } 100% { transform: scale(1.8); opacity: 0; } }
@keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slide-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }