Smart_Dashboard / static /css /style.css
Muthuraja18's picture
Upload 33 files (#2)
7263c0e
/* =========================
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);
}