404 - Страница не найдена
Запрошенная страница не существует.
diff --git a/assets/css/custom.css b/assets/css/custom.css
new file mode 100644
index 0000000..f2a97fe
--- /dev/null
+++ b/assets/css/custom.css
@@ -0,0 +1,78 @@
+
+:root {
+ --bs-body-bg: #111827;
+ --bs-body-color: #f9fafb;
+ --primary-color: #9333ea;
+ --surface-color: #1f2937;
+ --border-color: #374151;
+}
+
+body {
+ font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
+}
+
+.sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 250px;
+ padding: 20px;
+ background-color: var(--surface-color);
+ border-right: 1px solid var(--border-color);
+}
+
+.sidebar .nav-link {
+ color: #9ca3af;
+ padding: 10px 15px;
+ border-radius: 0.375rem;
+ margin-bottom: 5px;
+ display: flex;
+ align-items: center;
+}
+
+.sidebar .nav-link i {
+ margin-right: 10px;
+ width: 20px;
+ text-align: center;
+}
+
+
+.sidebar .nav-link:hover, .sidebar .nav-link.active {
+ background-color: var(--primary-color);
+ color: #fff;
+}
+
+.sidebar .logo {
+ display: block;
+ color: #fff;
+ font-size: 1.5rem;
+ font-weight: bold;
+ text-align: center;
+ margin-bottom: 2rem;
+ text-decoration: none;
+}
+
+.main-content {
+ margin-left: 250px;
+ padding: 30px;
+}
+
+.card {
+ background-color: var(--surface-color);
+ border: 1px solid var(--border-color);
+ border-radius: 0.5rem;
+}
+
+.card-header {
+ background-color: transparent;
+ border-bottom: 1px solid var(--border-color);
+}
+
+.stat-card h5 {
+ color: #9ca3af;
+}
+
+.stat-card .display-4 {
+ color: var(--primary-color);
+}
diff --git a/assets/js/main.js b/assets/js/main.js
new file mode 100644
index 0000000..9fad1d2
--- /dev/null
+++ b/assets/js/main.js
@@ -0,0 +1,46 @@
+document.addEventListener('DOMContentLoaded', function () {
+ const ctx = document.getElementById('viewsChart');
+ if (!ctx) return;
+
+ new Chart(ctx, {
+ type: 'line',
+ data: {
+ labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
+ datasets: [{
+ label: 'Average Views',
+ data: [1200, 1900, 3000, 5000, 2300, 3100, 4200, 3800, 6000, 7200, 5500, 8000],
+ borderColor: '#9333ea',
+ backgroundColor: 'rgba(147, 51, 234, 0.1)',
+ fill: true,
+ tension: 0.4
+ }]
+ },
+ options: {
+ responsive: true,
+ maintainAspectRatio: false,
+ plugins: {
+ legend: {
+ display: false
+ }
+ },
+ scales: {
+ x: {
+ grid: {
+ color: 'rgba(255, 255, 255, 0.1)'
+ },
+ ticks: {
+ color: '#9ca3af'
+ }
+ },
+ y: {
+ grid: {
+ color: 'rgba(255, 255, 255, 0.1)'
+ },
+ ticks: {
+ color: '#9ca3af'
+ }
+ }
+ }
+ }
+ });
+});
diff --git a/config.php b/config.php
new file mode 100644
index 0000000..3b56a73
--- /dev/null
+++ b/config.php
@@ -0,0 +1,2 @@
+query("SELECT COUNT(*) as total_publics FROM publics");
+ $total_publics = $stmt_publics->fetchColumn();
+
+ // Fetch total subscribers
+ $stmt_subscribers = $pdo->query("SELECT SUM(subscribers) as total_subscribers FROM publics");
+ $total_subscribers = $stmt_subscribers->fetchColumn();
+
+} catch (PDOException $e) {
+ // For a real app, you'd want to log this error, not die.
+ die("Database error: " . $e->getMessage());
+}
+
+// Function to format large numbers
+function format_number($num) {
+ if ($num >= 1000000) {
+ return round($num / 1000000, 1) . 'M';
+ } elseif ($num >= 1000) {
+ return round($num / 1000, 1) . 'K';
+ }
+ return $num;
+}
+
+?>
+
+Dashboard
+
-
+-
+= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.
-This page will update automatically as the plan is implemented.
-Runtime: PHP = htmlspecialchars($phpVersion) ?> — UTC = htmlspecialchars($now) ?>
Запрошенная страница не существует.