diff --git a/assets/pasted-20260103-085152-d00111a6.png b/assets/pasted-20260103-085152-d00111a6.png new file mode 100644 index 0000000..f924661 Binary files /dev/null and b/assets/pasted-20260103-085152-d00111a6.png differ diff --git a/assets/vm-shot-2026-01-03T08-49-54-364Z.jpg b/assets/vm-shot-2026-01-03T08-49-54-364Z.jpg new file mode 100644 index 0000000..2cb97c1 Binary files /dev/null and b/assets/vm-shot-2026-01-03T08-49-54-364Z.jpg differ diff --git a/dashboard/assets/css/style.css b/dashboard/assets/css/style.css index c69e4f7..15c4d4e 100644 --- a/dashboard/assets/css/style.css +++ b/dashboard/assets/css/style.css @@ -1,79 +1,318 @@ +:root { + --primary-color: #4F46E5; + --sidebar-bg: #111827; + --sidebar-text: #9CA3AF; + --sidebar-active-bg: #374151; + --sidebar-active-text: #FFFFFF; + --main-bg: #F9FAFB; + --text-primary: #1F2937; + --text-secondary: #6B7280; + --card-bg: #FFFFFF; + --border-color: #E5E7EB; + --green-light: #ECFDF5; + --green-dark: #065F46; + --red-light: #FEF2F2; + --red-dark: #991B1B; + --blue-light: #EFF6FF; + --blue-dark: #1E40AF; + --yellow-light: #FFFBEB; + --yellow-dark: #92400E; + +} body { - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-family: 'Inter', sans-serif; + background-color: var(--main-bg); + color: var(--text-primary); margin: 0; - background-color: #f4f7fa; - color: #333; + display: flex; } #root { display: flex; - flex-direction: column; + width: 100%; min-height: 100vh; } .dashboard { display: flex; - flex: 1; + width: 100%; } .sidebar { - width: 240px; - background-color: #fff; - border-right: 1px solid #e0e0e0; - padding: 20px; + width: 260px; + background-color: var(--sidebar-bg); + color: var(--sidebar-text); + padding: 24px; + display: flex; + flex-direction: column; + flex-shrink: 0; } -.sidebar h2 { - font-size: 1.5rem; - margin-bottom: 20px; +.sidebar-header { + display: flex; + align-items: center; + gap: 12px; + margin-bottom: 32px; } -.sidebar ul { - list-style: none; - padding: 0; - margin: 0; +.sidebar-logo { + background-color: var(--primary-color); + border-radius: 8px; + padding: 8px; + color: white; } -.sidebar li a { - display: block; - padding: 10px 15px; +.sidebar-school-name { + display: flex; + flex-direction: column; +} + +.sidebar-school-name span:first-child { + font-weight: 600; + color: var(--sidebar-active-text); +} + +.sidebar-school-name span:last-child { + font-size: 0.875rem; +} + +.nav-section { + margin-bottom: 24px; +} + +.nav-section-title { + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + margin-bottom: 8px; +} + +.nav-item { + display: flex; + align-items: center; + padding: 10px 12px; + border-radius: 6px; text-decoration: none; - color: #555; - border-radius: 4px; - margin-bottom: 5px; + color: var(--sidebar-text); + font-weight: 500; + margin-bottom: 4px; + gap: 12px; } -.sidebar li a:hover, .sidebar li a.active { - background-color: #eef2f5; - color: #007bff; +.nav-item:hover { + background-color: #1F2937; + color: var(--sidebar-active-text); +} + +.nav-item.active { + background-color: var(--sidebar-active-bg); + color: var(--sidebar-active-text); } .main-content { - flex: 1; - padding: 20px; + flex-grow: 1; + display: flex; + flex-direction: column; } .header { - background-color: #fff; - border-bottom: 1px solid #e0e0e0; - padding: 20px; - margin-bottom: 20px; + padding: 24px 32px; + background-color: var(--card-bg); + border-bottom: 1px solid var(--border-color); + display: flex; + justify-content: space-between; + align-items: center; } -.header h1 { +.search-bar { + display: flex; + align-items: center; + gap: 8px; + width: 400px; +} + +.search-bar input { + width: 100%; + border: 1px solid var(--border-color); + border-radius: 6px; + padding: 10px 14px; + font-size: 1rem; +} + +.header-actions { + display: flex; + align-items: center; + gap: 16px; +} + +.user-profile { + display: flex; + align-items: center; + gap: 12px; +} + +.user-avatar { + width: 40px; + height: 40px; + border-radius: 50%; + background-color: var(--primary-color); + color: white; + display: flex; + align-items: center; + justify-content: center; + font-weight: 600; +} + +.user-info span { + display: block; +} + +.user-info span:first-child { + font-weight: 600; +} + +.user-info span:last-child { + font-size: 0.875rem; + color: var(--text-secondary); +} + +.page-content { + padding: 32px; + flex-grow: 1; +} + +.welcome-header { + margin-bottom: 32px; +} + +.welcome-header h1 { + font-size: 1.875rem; + font-weight: 700; + margin: 0 0 4px 0; +} + +.welcome-header p { + font-size: 1rem; + color: var(--text-secondary); margin: 0; - font-size: 1.8rem; } -.card { - background-color: #fff; - border-radius: 8px; - box-shadow: 0 2px 4px rgba(0,0,0,0.05); - padding: 20px; - margin-bottom: 20px; +.stats-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); + gap: 24px; + margin-bottom: 32px; } -.card h3 { - margin-top: 0; +.stat-card { + background-color: var(--card-bg); + border-radius: 12px; + padding: 24px; + border: 1px solid var(--border-color); + box-shadow: 0 1px 3px 0 rgba(0,0,0,0.05); } + +.stat-card-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; +} + +.stat-card-title { + font-weight: 500; + color: var(--text-secondary); +} + +.stat-card-icon { + width: 40px; + height: 40px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; +} + +.stat-card-icon.blue { background-color: var(--blue-light); color: var(--blue-dark); } +.stat-card-icon.green { background-color: var(--green-light); color: var(--green-dark); } +.stat-card-icon.red { background-color: var(--red-light); color: var(--red-dark); } + +.stat-card-value { + font-size: 2.25rem; + font-weight: 700; + margin-bottom: 8px; +} + +.stat-card-footer { + font-size: 0.875rem; +} + +.stat-card-footer .increase { color: var(--green-dark); } +.stat-card-footer .decrease { color: var(--red-dark); } + +.charts-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 24px; + margin-bottom: 32px; +} + +.chart-card { + background-color: var(--card-bg); + border-radius: 12px; + padding: 24px; + border: 1px solid var(--border-color); + box-shadow: 0 1px 3px 0 rgba(0,0,0,0.05); +} + +.chart-card-header h3 { + margin: 0 0 4px 0; + font-size: 1.125rem; + font-weight: 600; +} + +.chart-card-header p { + margin: 0; + color: var(--text-secondary); + font-size: 0.875rem; +} + +.chart-placeholder { + height: 250px; + display: flex; + align-items: center; + justify-content: center; +} + +.table-card { + background-color: var(--card-bg); + border-radius: 12px; + padding: 24px; + border: 1px solid var(--border-color); + box-shadow: 0 1px 3px 0 rgba(0,0,0,0.05); +} + +.table-card h3 { + margin: 0 0 16px 0; + font-size: 1.125rem; + font-weight: 600; +} + +table { + width: 100%; + border-collapse: collapse; +} + +th, td { + padding: 12px 16px; + text-align: left; + border-bottom: 1px solid var(--border-color); +} + +thead th { + font-weight: 600; + color: var(--text-secondary); + font-size: 0.875rem; +} \ No newline at end of file diff --git a/dashboard/index.html b/dashboard/index.html index 0232232..33ba90d 100644 --- a/dashboard/index.html +++ b/dashboard/index.html @@ -3,18 +3,23 @@
-