:root {
    --primary-orange: #d35400; /* Burnt Orange sesuai dasbor */
    --bg-gray: #f8f9fa;
    --border-color: #e0e0e0;
    --text-dark: #333333;
    --ai-bubble-bg: #ffffff;
    --user-bubble-bg: #fff0e6; /* Oranye sangat muda */
}

body {
    margin: 0; background-color: var(--bg-gray);
    font-family: 'Plus Jakarta Sans', sans-serif; color: var(--text-dark);
}

.chat-app {
    max-width: 800px; margin: 0 auto; height: 100vh;
    display: flex; flex-direction: column; background: #ffffff;
    box-shadow: 0 0 20px rgba(0,0,0,0.05);
}

.app-header {
    padding: 15px 25px; display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid var(--border-color); background: #fff;
}

.brand-icon {
    background: var(--primary-orange); color: white; padding: 8px;
    border-radius: 8px; font-weight: bold; margin-right: 12px;
}

.brand-text h1 { font-size: 16px; margin: 0; color: var(--primary-orange); letter-spacing: 1px; }
.brand-text span { font-size: 12px; color: #888; }

.new-chat-btn {
    border: 1px solid var(--primary-orange); color: var(--primary-orange);
    background: transparent; padding: 8px 15px; border-radius: 6px; cursor: pointer;
}

#chat-window { flex: 1; overflow-y: auto; padding: 25px; display: flex; flex-direction: column; gap: 20px; }

/* Message Bubbles */
.bubble {
    max-width: 85%; padding: 14px 18px; border-radius: 12px; font-size: 15px;
    line-height: 1.6; border: 1px solid var(--border-color);
}

.user { align-self: flex-end; }
.user .bubble { background: var(--user-bubble-bg); border-color: #ffd8c2; color: #853300; }

.ai { align-self: flex-start; }
.ai .bubble { background: var(--ai-bubble-bg); box-shadow: 0 2px 5px rgba(0,0,0,0.02); }

/* Input Section */
.input-section { padding: 20px 25px; background: #fff; border-top: 1px solid var(--border-color); }
.input-group { display: flex; background: #f1f3f5; border-radius: 8px; padding: 6px; }
input { flex: 1; border: none; background: transparent; padding: 10px 15px; outline: none; font-size: 15px; }

#send-trigger {
    background: var(--primary-orange); color: white; border: none;
    padding: 0 25px; border-radius: 6px; font-weight: 600; cursor: pointer;
}

/* Typing Effect Dots */
.hidden { display: none; }
.typing .dot { display: inline-block; width: 6px; height: 6px; background: #ccc; border-radius: 50%; margin: 0 2px; animation: wave 1.3s infinite; }
@keyframes wave { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }