/* ========================= RESET & BASE STYLES ========================= */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Arial, sans-serif; background: #f4f7fa; color: #333; line-height: 1.5; } /* ========================= DASHBOARD LAYOUT ========================= */ .dashboard-layout { display: flex; min-height: 100vh; } /* ========================= SIDEBAR ========================= */ .sidebar { width: 260px; background: linear-gradient(180deg, #0f172a, #1e293b); color: white; padding: 25px 18px; position: fixed; top: 0; left: 0; bottom: 0; overflow-y: auto; } .sidebar h2 { text-align: center; font-size: 24px; margin-bottom: 25px; letter-spacing: 1px; } .sidebar ul { list-style: none; } .sidebar ul li { padding: 12px 14px; margin-bottom: 10px; border-radius: 10px; cursor: pointer; transition: 0.25s ease; position: relative; } .sidebar ul li:hover { background: rgba(255, 255, 255, 0.12); transform: translateX(4px); } /* active indicator */ .sidebar ul li::before { content: ""; position: absolute; left: 0; top: 0; width: 4px; height: 100%; background: #00c6ff; transform: scaleY(0); transition: 0.3s; } .sidebar ul li:hover::before { transform: scaleY(1); } /* ========================= MAIN CONTENT ========================= */ .main-content { margin-left: 260px; flex: 1; padding: 30px; } /* HEADER */ header { margin-bottom: 25px; } header h1 { font-size: 32px; color: #0f172a; font-weight: 700; } /* ========================= UPLOAD SECTION ========================= */ .upload-section { background: white; padding: 20px; border-radius: 16px; box-shadow: 0 6px 18px rgba(0,0,0,0.08); margin-bottom: 25px; } .upload-section form { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; } .upload-section input[type="file"] { padding: 10px; border: 1px solid #ddd; border-radius: 10px; background: #f9fafb; } .upload-section button { padding: 12px 20px; background: linear-gradient(135deg, #007bff, #00c6ff); color: white; border: none; border-radius: 10px; cursor: pointer; font-weight: 600; transition: 0.25s ease; } .upload-section button:hover { transform: scale(1.05); } /* ========================= KPI CARDS ========================= */ .kpi-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-bottom: 30px; } .card { background: white; padding: 22px; border-radius: 16px; box-shadow: 0 6px 18px rgba(0,0,0,0.08); text-align: center; font-size: 16px; font-weight: 600; transition: 0.25s ease; } .card:hover { transform: translateY(-5px); } /* ========================= CHART SECTION ========================= */ .chart-section { background: white; padding: 25px; border-radius: 16px; box-shadow: 0 6px 18px rgba(0,0,0,0.08); min-height: 420px; } /* ========================= CHATBOT TOGGLE BUTTON (BOTTOM RIGHT) ========================= */ #chatbot-toggle { position: fixed; bottom: 20px; right: 20px; width: 62px; height: 62px; border-radius: 50%; border: none; background: linear-gradient(135deg, #007bff, #00c6ff); color: white; font-size: 26px; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,0.3); z-index: 9999; transition: all 0.25s ease; } #chatbot-toggle:hover { transform: scale(1.1); } /* ========================= CHATBOT WINDOW (BOTTOM RIGHT) ========================= */ #chatbot-widget { position: fixed; bottom: 95px; right: 20px; width: 360px; height: 520px; background: white; display: none; flex-direction: column; border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,0.25); overflow: hidden; z-index: 9999; transition: all 0.25s ease; } /* CHAT HEADER */ #chat-header { background: linear-gradient(135deg, #007bff, #00c6ff); color: white; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; font-weight: 600; } #chat-header button { background: transparent; border: none; color: white; font-size: 20px; cursor: pointer; } /* CHAT MESSAGES */ #chat-messages { flex: 1; padding: 12px; overflow-y: auto; background: #f4f7fa; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; } /* USER MESSAGE */ .user-message { align-self: flex-end; background: #007bff; color: white; padding: 10px 12px; border-radius: 14px 14px 0 14px; max-width: 80%; font-size: 14px; word-break: break-word; } /* BOT MESSAGE */ .bot-message { align-self: flex-start; background: white; color: #333; padding: 10px 12px; border-radius: 14px 14px 14px 0; max-width: 80%; font-size: 14px; box-shadow: 0 2px 8px rgba(0,0,0,0.08); } /* CHAT INPUT AREA */ #chat-input-area { display: flex; padding: 10px; border-top: 1px solid #ddd; background: white; position: sticky; bottom: 0; } #chat-input { flex: 1; padding: 10px; border: 1px solid #ccc; border-radius: 10px; outline: none; } #chat-input:focus { border-color: #007bff; } #chat-input-area button { margin-left: 8px; padding: 10px 14px; border: none; background: #007bff; color: white; border-radius: 10px; cursor: pointer; transition: 0.2s; } #chat-input-area button:hover { background: #0056b3; } /* ========================= RESPONSIVE DESIGN ========================= */ @media (max-width: 768px) { .sidebar { width: 200px; } .main-content { margin-left: 200px; padding: 20px; } #chatbot-widget { width: 90%; right: 5%; height: 70%; } } /* ========================= SMOOTH BUTTON ANIMATION ========================= */ button { transition: all 0.2s ease; } button:active { transform: scale(0.95); }