
        body { font-family: 'Noto Sans KR', sans-serif; }
        
        /* Chat Bubbles */
        .chat-bubble {
            max-width: 85%;
            position: relative;
            line-height: 1.6;
            font-size: 0.95rem;
        }
        .chat-user {
            background: linear-gradient(135deg, #7C3AED 0%, #6D28D9 100%);
            color: white;
            border-radius: 1.25rem 1.25rem 0 1.25rem;
            box-shadow: 0 4px 6px -1px rgba(124, 58, 237, 0.2);
        }
        .chat-ai {
            background-color: white;
            color: #334155;
            border-radius: 1.25rem 1.25rem 1.25rem 0;
            border: 1px solid #E2E8F0;
            box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.05);
        }

        /* Sidebar & Layout */
        .sidebar-item {
            position: relative;
            overflow: hidden;
            transition: all 0.2s ease;
        }
        .sidebar-item.active {
            background: #F3F4F6;
            color: #7C3AED;
            font-weight: 600;
        }
        .sidebar-item.active::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 4px;
            background: #7C3AED;
        }

        /* Animations */
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        .message-enter {
            animation: fadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
        }

        @keyframes pulse-ring {
            0% { transform: scale(0.8); opacity: 0.5; }
            100% { transform: scale(2); opacity: 0; }
        }
        .recording-pulse::before {
            content: '';
            position: absolute;
            left: 50%; top: 50%;
            width: 100%; height: 100%;
            background-color: rgba(239, 68, 68, 0.5);
            border-radius: 50%;
            transform: translate(-50%, -50%);
            animation: pulse-ring 1.5s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
            z-index: -1;
        }

        /* Thinking Animation */
        .dot-flashing {
            position: relative;
            width: 6px; height: 6px;
            border-radius: 5px;
            background-color: #9333ea;
            color: #9333ea;
            animation: dot-flashing 1s infinite linear alternate;
            animation-delay: 0.5s;
        }
        .dot-flashing::before, .dot-flashing::after {
            content: '';
            display: inline-block;
            position: absolute;
            top: 0;
            width: 6px; height: 6px;
            border-radius: 5px;
            background-color: #9333ea;
            color: #9333ea;
            animation: dot-flashing 1s infinite alternate;
        }
        .dot-flashing::before { left: -10px; animation-delay: 0s; }
        .dot-flashing::after { left: 10px; animation-delay: 1s; }
        @keyframes dot-flashing {
            0% { background-color: #9333ea; }
            50%, 100% { background-color: #e9d5ff; }
        }

        /* Custom Scrollbar */
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: transparent; }
        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
    