diff --git a/package.json b/package.json
index b44fc94..cbb8c1c 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"preview": "vite preview"
},
"dependencies": {
+ "@radix-ui/react-avatar": "^1.1.11",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-tabs": "^1.1.13",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f6f71fd..1589690 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,6 +8,9 @@ importers:
.:
dependencies:
+ '@radix-ui/react-avatar':
+ specifier: ^1.1.11
+ version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
'@radix-ui/react-dropdown-menu':
specifier: ^2.1.16
version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
@@ -49,7 +52,7 @@ importers:
version: 4.1.18
zustand:
specifier: ^5.0.9
- version: 5.0.9(@types/react@19.2.7)(react@19.2.3)
+ version: 5.0.9(@types/react@19.2.7)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3))
devDependencies:
'@eslint/js':
specifier: ^9.39.1
@@ -433,6 +436,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-avatar@1.1.11':
+ resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-collection@1.1.7':
resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==}
peerDependencies:
@@ -464,6 +480,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-context@1.1.3':
+ resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-direction@1.1.1':
resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==}
peerDependencies:
@@ -595,6 +620,19 @@ packages:
'@types/react-dom':
optional: true
+ '@radix-ui/react-primitive@2.1.4':
+ resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==}
+ peerDependencies:
+ '@types/react': '*'
+ '@types/react-dom': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+ '@types/react-dom':
+ optional: true
+
'@radix-ui/react-roving-focus@1.1.11':
resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==}
peerDependencies:
@@ -675,6 +713,15 @@ packages:
'@types/react':
optional: true
+ '@radix-ui/react-use-is-hydrated@0.1.0':
+ resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==}
+ peerDependencies:
+ '@types/react': '*'
+ react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@radix-ui/react-use-layout-effect@1.1.1':
resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==}
peerDependencies:
@@ -1669,6 +1716,11 @@ packages:
'@types/react':
optional: true
+ use-sync-external-store@1.6.0:
+ resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
vite@7.3.0:
resolution: {integrity: sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -2048,6 +2100,19 @@ snapshots:
'@types/react': 19.2.7
'@types/react-dom': 19.2.3(@types/react@19.2.7)
+ '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+ dependencies:
+ '@radix-ui/react-context': 1.1.3(@types/react@19.2.7)(react@19.2.3)
+ '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)
+ '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.7)(react@19.2.3)
+ '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.7)(react@19.2.3)
+ '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.3)
@@ -2072,6 +2137,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.7
+ '@radix-ui/react-context@1.1.3(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ react: 19.2.3
+ optionalDependencies:
+ '@types/react': 19.2.7
+
'@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.3)':
dependencies:
react: 19.2.3
@@ -2203,6 +2274,15 @@ snapshots:
'@types/react': 19.2.7
'@types/react-dom': 19.2.3(@types/react@19.2.7)
+ '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
+ dependencies:
+ '@radix-ui/react-slot': 1.2.4(@types/react@19.2.7)(react@19.2.3)
+ react: 19.2.3
+ react-dom: 19.2.3(react@19.2.3)
+ optionalDependencies:
+ '@types/react': 19.2.7
+ '@types/react-dom': 19.2.3(@types/react@19.2.7)
+
'@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)':
dependencies:
'@radix-ui/primitive': 1.1.3
@@ -2278,6 +2358,13 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.7
+ '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.7)(react@19.2.3)':
+ dependencies:
+ react: 19.2.3
+ use-sync-external-store: 1.6.0(react@19.2.3)
+ optionalDependencies:
+ '@types/react': 19.2.7
+
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.3)':
dependencies:
react: 19.2.3
@@ -3192,6 +3279,10 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.7
+ use-sync-external-store@1.6.0(react@19.2.3):
+ dependencies:
+ react: 19.2.3
+
vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(lightningcss@1.30.2):
dependencies:
esbuild: 0.27.2
@@ -3222,7 +3313,8 @@ snapshots:
zod@4.3.5: {}
- zustand@5.0.9(@types/react@19.2.7)(react@19.2.3):
+ zustand@5.0.9(@types/react@19.2.7)(react@19.2.3)(use-sync-external-store@1.6.0(react@19.2.3)):
optionalDependencies:
'@types/react': 19.2.7
react: 19.2.3
+ use-sync-external-store: 1.6.0(react@19.2.3)
diff --git a/src/assets/auth.css b/src/assets/auth.css
deleted file mode 100644
index 2c3d7c8..0000000
--- a/src/assets/auth.css
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
-* Prefixed by https://autoprefixer.github.io
-* PostCSS: v8.4.14,
-* Autoprefixer: v10.4.7
-* Browsers: last 4 version
-*/
-
-/*
-* Prefixed by https://autoprefixer.github.io
-* PostCSS: v8.4.14,
-* Autoprefixer: v10.4.7
-* Browsers: last 4 version
-*/
-
-/* Auth Pages Styling */
-.login-container {
- min-height: 100vh;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- background-color: var(--secondary-bg);
- background-image: -o-linear-gradient(315deg, #f5f5f5 0%, #ffffff 100%);
- background-image: linear-gradient(135deg, #f5f5f5 0%, #ffffff 100%);
- padding: 1rem;
-}
-
-.auth-container {
- max-width: 420px;
- width: 100%;
- padding: 2.5rem;
- border-radius: 12px;
- -webkit-box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
- box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
- background-color: var(--tertiary-bg);
- border: 1px solid var(--secondary-border);
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.auth-container:hover {
- -webkit-box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
- box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
- -webkit-transform: translateY(-5px);
- -ms-transform: translateY(-5px);
- transform: translateY(-5px);
-}
-
-.auth-title {
- text-align: center;
- margin-bottom: 1.5rem;
- color: var(--intensive-text);
- font-weight: 700;
- font-size: 1.75rem;
-}
-
-.auth-footer {
- text-align: center;
- margin-top: 1.5rem;
- font-size: 0.9rem;
- color: var(--neutral);
-}
-
-.auth-footer a {
- color: var(--primary-text);
- font-weight: 500;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.auth-footer a:hover {
- text-decoration: underline;
-}
-
-/* Form Styling */
-.auth-container .field {
- margin-bottom: 1.25rem;
-}
-
-.auth-container .label {
- color: var(--intensive-text) !important;
- font-weight: 600;
- font-size: 0.9rem;
- margin-bottom: 0.5rem;
-}
-
-.auth-container .input {
- color: var(--intensive-text) !important;
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- padding: 0.75rem 1rem;
- height: auto;
- font-size: 1rem;
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.auth-container .input:focus {
- border-color: var(--primary-bg);
- -webkit-box-shadow: 0 0 0 2px rgba(110, 68, 255, 0.1);
- box-shadow: 0 0 0 2px rgba(110, 68, 255, 0.1);
-}
-
-.auth-container .input.is-danger {
- border-color: var(--error-bg);
-}
-
-.auth-container .button {
- height: auto;
- padding: 0.75rem 1.5rem;
- font-weight: 600;
- font-size: 1rem;
- border-radius: 8px;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.auth-container .button.is-primary {
- background-color: var(--primary-bg);
- border: none;
-}
-
-.auth-container .button.is-primary:hover {
- background-color: var(--primary-dark);
- -webkit-box-shadow: 0 4px 12px rgba(110, 68, 255, 0.3);
- box-shadow: 0 4px 12px rgba(110, 68, 255, 0.3);
- -webkit-transform: translateY(-2px);
- -ms-transform: translateY(-2px);
- transform: translateY(-2px);
-}
-
-.auth-container .checkbox {
- font-size: 0.9rem;
- color: var(--neutral-dark);
-}
-
-.auth-container .help.is-danger {
- font-size: 0.8rem;
- margin-top: 0.25rem;
-}
-
-.auth-container .notification {
- border-radius: 8px;
- padding: 1rem;
- margin-bottom: 1.5rem;
-}
-
-.auth-container .notification .delete {
- position: absolute;
- right: 0.75rem;
- top: 0.75rem;
-}
-
-/* Responsive Adjustments */
-@media screen and (max-width: 768px) {
- .auth-container {
- padding: 2rem;
- max-width: 100%;
- margin: 0 1rem;
- }
-}
diff --git a/src/assets/custom.css b/src/assets/custom.css
deleted file mode 100644
index 7c6687a..0000000
--- a/src/assets/custom.css
+++ /dev/null
@@ -1,2087 +0,0 @@
-/*
-* Prefixed by https://autoprefixer.github.io
-* PostCSS: v8.4.14,
-* Autoprefixer: v10.4.7
-* Browsers: last 4 version
-*/
-
-/* Custom Bulma Variables */
-:root {
- /* Primary Colors */
- --primary: #6e44ff;
- --primary-light: #9f84ff;
- --primary-dark: #1f0954;
-
- /* Neutral Colors */
- --black: #000000;
- --white: #ffffff;
- --neutral-lightest: #f7f7f7;
- --neutral-lighter: #ececec;
- --neutral-light: #aaaaaa;
- --neutral: #666666;
- --neutral-dark: #444444;
- --neutral-darker: #222222;
- --neutral-darkest: #111111;
-
- /* Color Neutral */
- --neutral-lightest: #eeeeee;
- --neutral-lighter: #cccccc;
- --neutral-light: #aaaaaa;
- --neutral: #666666;
- --neutral-dark: #444444;
- --neutral-darker: #222222;
- --neutral-darkest: #111111;
-
- /* Success Colors */
- --success-green: #00c7a4;
- --success-green-light: #7cfff3;
-
- /* Error Colors */
- --error-red: #ff2c73;
- --error-red-light: #fff2f2;
-
- /* Semantic Colors */
- --primary-bg: #6e44ff;
- --secondary-bg: #eeeeee;
- --tertiary-bg: #ffffff;
- --intensive-bg: #000000;
- --success-bg: #00c7a4;
- --error-bg: #ff2c73;
-
- /* Border Colors */
- --primary-border: #000000;
- --secondary-border: #cccccc;
- --tertiary-border: #1f0954;
- --intensive-border: #000000;
- --success-border: #00c7a4;
- --error-border: #ff2c73;
-
- /* Text Colors */
- --primary-text: #6e44ff;
- --secondary-text: #9f84ff;
- --intensive-text: #000000;
- --success-text: #00c7a4;
- --error-text: #ff2c73;
- --link-text: #6e44ff;
-}
-
-/* Bulma Customization */
-body {
- font-family: "Satoshi", sans-serif;
- background-color: var(--tertiary-bg);
- color: var(--intensive-text);
-}
-
-/* Navbar Styling */
-.navbar {
- background-color: var(--tertiary-bg);
- color: var(--intensive-text);
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
- height: 4rem;
- border-bottom: 1px solid var(--secondary-border);
- position: sticky;
- top: 0;
- z-index: 30;
-}
-
-.navbar-item,
-.navbar-link {
- color: var(--intensive-text);
- font-weight: 500;
-}
-
-.navbar-item:hover,
-.navbar-link:hover {
- background-color: var(--secondary-bg) !important;
- color: var(--primary-text) !important;
-}
-
-.navbar-brand .navbar-item {
- font-weight: 700;
- font-size: 1.25rem;
- color: var(--primary-text);
-}
-
-.navbar-item img {
- max-height: 2.5rem;
-}
-
-.navbar-burger {
- color: var(--intensive-text);
-}
-
-.navbar-menu.is-active {
- background-color: var(--tertiary-bg);
- -webkit-box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
-}
-
-/* Button Styling */
-.button {
- font-family: "Satoshi", sans-serif;
- font-weight: 500;
- border-radius: 4px;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.button.is-primary {
- background-color: var(--primary-bg);
- border: none;
- color: white;
-}
-
-.button.is-primary:hover {
- background-color: var(--primary-dark);
- -webkit-box-shadow: 0 4px 8px rgba(110, 68, 255, 0.2);
- box-shadow: 0 4px 8px rgba(110, 68, 255, 0.2);
- color: white;
-}
-
-.button.is-success {
- background-color: var(--success-bg);
- color: white;
-}
-
-.button.is-success:hover {
- background-color: var(--success-green-light);
- -webkit-box-shadow: 0 4px 8px rgba(0, 199, 164, 0.2);
- box-shadow: 0 4px 8px rgba(0, 199, 164, 0.2);
- color: white;
-}
-
-.button.is-danger {
- background-color: var(--error-bg);
- color: white;
-}
-
-.button.is-danger:hover {
- background-color: var(--error-red-light);
- color: var(--error-red);
- -webkit-box-shadow: 0 4px 8px rgba(255, 44, 115, 0.2);
- box-shadow: 0 4px 8px rgba(255, 44, 115, 0.2);
-}
-
-.button.is-outlined {
- border: 1px solid var(--primary-border);
- color: var(--primary-text);
- background: transparent;
-}
-
-.button.is-outlined:hover {
- background-color: var(--secondary-bg);
-}
-
-.button.is-info {
- background-color: #3e8ed0;
- color: white;
-}
-
-.button.is-info:hover {
- background-color: #3082c5;
- color: white;
-}
-
-.button.is-warning {
- background-color: #ffe08a;
- color: rgba(0, 0, 0, 0.7);
-}
-
-.button.is-warning:hover {
- background-color: #ffda6a;
- color: rgba(0, 0, 0, 0.7);
-}
-
-/* Sidebar Styling */
-.sidebar {
- background-color: var(--tertiary-bg);
- height: calc(100vh - 4rem);
- width: 260px;
- position: fixed;
- z-index: 20;
- top: 4rem;
- left: 0;
- overflow-y: auto;
- padding: 0;
- border-right: 1px solid var(--secondary-border);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-shadow: 1px 0 5px rgba(0, 0, 0, 0.05);
- box-shadow: 1px 0 5px rgba(0, 0, 0, 0.05);
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.sidebar-header {
- padding: 1.5rem 1.5rem 0.5rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- border-bottom: 1px solid var(--secondary-border);
- margin-bottom: 1rem;
-}
-
-.sidebar-header h3 {
- font-size: 0.85rem;
- text-transform: uppercase;
- letter-spacing: 1.5px;
- color: var(--neutral);
- font-weight: 600;
-}
-
-.sidebar-menu {
- list-style: none;
- margin: 0;
- padding: 0.75rem 0;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-.sidebar-item {
- margin: 0.25rem 0.75rem;
-}
-
-.sidebar-link {
- padding: 0.75rem 1rem;
- text-decoration: none;
- font-size: 0.9rem;
- color: var(--neutral-darker);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- border-radius: 6px;
- font-weight: 500;
- position: relative;
- overflow: hidden;
-}
-
-.sidebar-link:hover {
- background-color: var(--secondary-bg);
- color: var(--primary-text);
- -webkit-transform: translateX(2px);
- -ms-transform: translateX(2px);
- transform: translateX(2px);
-}
-
-.sidebar-link.is-active {
- background-color: rgba(110, 68, 255, 0.1);
- color: var(--primary-text);
- font-weight: 600;
- position: relative;
-}
-
-.sidebar-link.is-active::before {
- content: "";
- position: absolute;
- left: 0;
- top: 0;
- height: 100%;
- width: 4px;
- background-color: var(--primary-bg);
- border-radius: 0 2px 2px 0;
-}
-
-.sidebar-link i {
- margin-right: 0.75rem;
- font-size: 1rem;
- width: 20px;
- text-align: center;
- color: var(--neutral);
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.sidebar-link:hover i,
-.sidebar-link.is-active i {
- color: var(--primary-text);
-}
-
-.sidebar-section-title {
- font-size: 0.7rem;
- text-transform: uppercase;
- letter-spacing: 1.5px;
- color: var(--neutral);
- font-weight: 600;
- padding: 0.75rem 1.75rem 0.5rem;
- margin-top: 0.5rem;
-}
-
-.sidebar-footer {
- padding: 1rem;
- border-top: 1px solid var(--secondary-border);
- text-align: center;
- font-size: 0.75rem;
- color: var(--neutral);
-}
-
-.main-content {
- margin-left: 260px;
- padding: 2rem;
- min-height: calc(100vh - 4rem);
- background-color: var(--tertiary-bg);
-}
-
-/* Mobile Responsiveness */
-@media screen and (max-width: 768px) {
- .sidebar {
- width: 100%;
- height: auto;
- position: relative;
- top: 0;
- display: none;
- }
-
- .sidebar.is-active {
- display: block;
- }
-
- .main-content {
- margin-left: 0;
- }
-}
-
-/* Card Styling */
-.card {
- border-radius: 8px;
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- -webkit-transition: -webkit-box-shadow 0.3s ease, -webkit-transform 0.2s ease;
- transition: -webkit-box-shadow 0.3s ease, -webkit-transform 0.2s ease;
- -o-transition: box-shadow 0.3s ease, transform 0.2s ease;
- transition: box-shadow 0.3s ease, transform 0.2s ease;
- transition: box-shadow 0.3s ease, transform 0.2s ease,
- -webkit-box-shadow 0.3s ease, -webkit-transform 0.2s ease;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
- background-color: var(--tertiary-bg);
- margin-bottom: 1.5rem;
-}
-
-.card:hover {
- -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- -webkit-transform: translateY(-2px);
- -ms-transform: translateY(-2px);
- transform: translateY(-2px);
-}
-
-/* Student Home Page Styling */
-.continue-learning-card {
- border-radius: 8px;
- overflow: hidden;
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- border: 1px solid var(--secondary-border);
- height: 100%;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.continue-learning-card .card-content {
- padding: 0;
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-
-.learning-card-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 0.5rem 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.learning-card-header .tag {
- margin-right: 0.5rem;
- background-color: #e8f4ff;
- color: #0086ff;
- border-radius: 4px;
- font-weight: 500;
- font-size: 0.7rem;
-}
-
-.learning-card-body {
- padding: 0.75rem 1rem 1rem;
-}
-
-.learning-card-title {
- font-size: 1rem;
- font-weight: 600;
- margin-bottom: 0.75rem;
- color: var(--intensive-text);
- line-height: 1.3;
- height: 2.6rem;
- overflow: hidden;
- display: -webkit-box;
- -webkit-line-clamp: 2;
- -webkit-box-orient: vertical;
-}
-
-.learning-card-progress {
- margin-bottom: 0.75rem;
-}
-
-.learning-card-progress-text {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- margin-bottom: 0.25rem;
- font-size: 0.75rem;
- color: var(--neutral);
-}
-
-.learning-card-progress .progress {
- height: 0.4rem;
- border-radius: 4px;
-}
-
-.learning-card-progress .progress::-webkit-progress-bar {
- background-color: #f0f0f0;
-}
-
-.learning-card-progress .progress::-webkit-progress-value {
- background-color: #00c48c;
-}
-
-.continue-button {
- background-color: white;
- color: var(--primary-bg);
- border: 1px solid var(--primary-bg);
- border-radius: 6px;
- padding: 0.4rem 1rem;
- font-weight: 500;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- font-size: 0.8rem;
-}
-
-.continue-button:hover {
- background-color: var(--primary-bg);
- color: white;
-}
-
-/* SAT Dates Section Styling */
-.sat-dates-container {
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
- margin-bottom: 1.5rem;
-}
-
-.sat-dates-header {
- background-color: #f9f9f9;
- padding: 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.sat-dates-body {
- padding: 0;
-}
-
-.sat-dates-table {
- width: 100%;
- border-collapse: collapse;
-}
-
-.sat-dates-table th {
- background-color: #f9f9f9;
- padding: 0.75rem 1rem;
- font-weight: 600;
- font-size: 0.9rem;
- color: var(--neutral-dark);
- text-align: left;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.sat-dates-table td {
- padding: 0.75rem 1rem;
- border-bottom: 1px solid var(--secondary-border);
- font-size: 0.9rem;
-}
-
-.sat-dates-table tr:last-child td {
- border-bottom: none;
-}
-
-.sat-dates-footer {
- background-color: #f9f9f9;
- padding: 0.75rem 1rem;
- border-top: 1px solid var(--secondary-border);
- text-align: center;
-}
-
-.sat-dates-footer a {
- color: var(--primary-bg);
- text-decoration: none;
- font-weight: 500;
- font-size: 0.9rem;
-}
-
-.sat-dates-footer a:hover {
- text-decoration: underline;
-}
-
-.register-button {
- background-color: var(--primary-bg);
- color: white;
- border: none;
- border-radius: 4px;
- padding: 0.4rem 0.75rem;
- font-size: 0.8rem;
- font-weight: 500;
- cursor: pointer;
- -webkit-transition: background-color 0.2s ease;
- -o-transition: background-color 0.2s ease;
- transition: background-color 0.2s ease;
-}
-
-.register-button:hover {
- background-color: #5a38d9;
-}
-
-.sat-tips-container {
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
- height: 100%;
-}
-
-.sat-tips-header {
- background-color: #f9f9f9;
- padding: 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.sat-tips-body {
- padding: 1rem;
-}
-
-.sat-tips-list {
- list-style-type: none;
- padding: 0;
- margin: 0;
-}
-
-.sat-tips-list li {
- padding: 0.5rem 0;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
-}
-
-.sat-tips-list li:before {
- content: "•";
- color: var(--primary-bg);
- font-weight: bold;
- display: inline-block;
- width: 1em;
- margin-right: 0.5em;
-}
-
-/* Settings Page Styling */
-.settings-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- gap: 1.5rem;
-}
-
-.settings-sidebar {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 250px;
- flex: 0 0 250px;
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
-}
-
-.settings-sidebar-header {
- background-color: #f9f9f9;
- padding: 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.settings-sidebar-body {
- padding: 1rem 0;
-}
-
-.menu-list a {
- border-radius: 0;
- padding: 0.75rem 1.25rem;
- margin-bottom: 0;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- border-left: 3px solid transparent;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.menu-list a:hover {
- background-color: var(--secondary-bg);
- color: var(--primary-bg);
- border-left-color: var(--secondary-border);
-}
-
-.menu-list a.is-active {
- background-color: #f0f0ff;
- color: var(--primary-bg);
- font-weight: 500;
- border-left-color: var(--primary-bg);
-}
-
-.menu-list a .icon {
- margin-right: 0.75rem;
- font-size: 0.9rem;
- width: 20px;
- text-align: center;
-}
-
-.menu-label {
- color: var(--neutral-dark);
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.5px;
- font-size: 0.75rem;
- margin-top: 1.5rem;
- margin-bottom: 0.75rem;
- padding: 0 1.25rem;
-}
-
-.settings-content {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-
-.settings-panel {
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
- margin-bottom: 1.5rem;
-}
-
-.settings-panel-header {
- background-color: #f9f9f9;
- padding: 1rem 1.5rem;
- border-bottom: 1px solid var(--secondary-border);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.settings-panel-header .icon {
- margin-right: 0.75rem;
- color: var(--primary-bg);
-}
-
-.settings-panel-body {
- padding: 1.5rem;
-}
-
-.settings-panel-footer {
- background-color: #f9f9f9;
- padding: 1rem 1.5rem;
- border-top: 1px solid var(--secondary-border);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
-}
-
-/* Progress Page Styling */
-.metric-card {
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- padding: 1.25rem;
- position: relative;
- overflow: hidden;
- height: 100%;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- -webkit-box-pack: start;
- -ms-flex-pack: start;
- justify-content: flex-start;
- background-color: white;
-}
-
-.metric-value {
- font-size: 2.5rem;
- font-weight: 700;
- color: var(--primary-bg);
- margin-bottom: 0.5rem;
- line-height: 1;
-}
-
-.metric-label {
- font-size: 0.75rem;
- color: var(--neutral);
- font-weight: 500;
- text-transform: uppercase;
- letter-spacing: 0.5px;
-}
-
-.metric-icon {
- position: absolute;
- bottom: 1rem;
- right: 1rem;
- color: rgba(110, 68, 255, 0.1);
- font-size: 2rem;
- opacity: 0.5;
-}
-
-.progress-panel {
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- overflow: hidden;
- margin-bottom: 1.5rem;
-}
-
-.progress-panel-header {
- background-color: #f9f9f9;
- padding: 1rem 1.5rem;
- border-bottom: 1px solid var(--secondary-border);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.progress-panel-header .icon {
- margin-right: 0.75rem;
- color: var(--primary-bg);
-}
-
-.progress-panel-body {
- padding: 1.5rem;
-}
-
-.subject-performance {
- margin-bottom: 1.5rem;
-}
-
-.subject-label {
- font-weight: 500;
- color: var(--neutral-dark);
-}
-
-.subject-score {
- font-weight: 600;
- color: var(--primary-bg);
-}
-
-.progress-table {
- width: 100%;
- border-collapse: collapse;
-}
-
-.progress-table th {
- background-color: #f9f9f9;
- padding: 0.75rem 1rem;
- font-weight: 600;
- font-size: 0.9rem;
- color: var(--neutral-dark);
- text-align: left;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.progress-table td {
- padding: 0.75rem 1rem;
- border-bottom: 1px solid var(--secondary-border);
- font-size: 0.9rem;
-}
-
-.progress-table tr:last-child td {
- border-bottom: none;
-}
-
-.practice-sheet-card {
- position: relative;
- overflow: hidden;
-}
-
-.practice-sheet-card-icon {
- position: absolute;
- top: 1rem;
- right: 1rem;
- opacity: 0.8;
-}
-
-.option-item {
- padding: 1rem;
- border: 1px solid var(--secondary-border);
- border-radius: 8px;
- margin-bottom: 1rem;
- cursor: pointer;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.option-item:hover {
- background-color: var(--secondary-bg);
-}
-
-.option-item.selected {
- border-color: var(--primary-bg);
- background-color: rgba(110, 68, 255, 0.05);
-}
-
-.option-marker {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- width: 30px;
- height: 30px;
- border-radius: 50%;
- background-color: var(--secondary-bg);
- color: var(--neutral-dark);
- font-weight: 600;
-}
-
-.option-item.selected .option-marker {
- background-color: var(--primary-bg);
- color: white;
-}
-
-.score-display {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin: 1rem 0;
-}
-
-.score-circle {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- width: 180px;
- height: 180px;
- border-radius: 50%;
- background-color: var(--primary-bg);
- color: white;
- -webkit-box-shadow: 0 4px 12px rgba(110, 68, 255, 0.2);
- box-shadow: 0 4px 12px rgba(110, 68, 255, 0.2);
-}
-
-.score-value {
- font-size: 3rem;
- font-weight: 700;
- line-height: 1;
- margin-bottom: 0.5rem;
-}
-
-.score-label {
- font-size: 0.9rem;
- font-weight: 500;
- text-align: center;
- max-width: 80%;
-}
-
-.section-score {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 1.5rem;
- background-color: #f9f9f9;
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- height: 100%;
-}
-
-.section-score-value {
- font-size: 2.5rem;
- font-weight: 700;
- color: var(--primary-bg);
- margin-bottom: 0.5rem;
- line-height: 1;
-}
-
-.section-score-label {
- font-size: 0.9rem;
- font-weight: 500;
- color: var(--neutral);
-}
-
-.module-score-item {
- border: 1px solid var(--secondary-border);
- border-radius: 8px;
- padding: 1rem;
- background-color: white;
-}
-
-.answer-sheet {
- border-radius: 6px;
- font-size: 0.9rem;
- max-height: 300px;
- overflow-y: auto;
-}
-
-.answer-item {
- padding-bottom: 0.5rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.answer-item:last-child {
- border-bottom: none;
- padding-bottom: 0;
-}
-
-.subject-performance {
- margin-bottom: 1.5rem;
-}
-
-.subject-label {
- font-weight: 600;
- color: var(--neutral-dark);
-}
-
-.subject-score {
- font-weight: 700;
- color: var(--primary-bg);
-}
-
-.card-header {
- border-bottom: 1px solid var(--secondary-border);
- background-color: var(--tertiary-bg);
- -webkit-box-shadow: none;
- box-shadow: none;
-}
-
-.card-header-title {
- font-weight: 600;
- font-size: 1.1rem;
- color: var(--primary-text);
-}
-
-.card-content {
- padding: 1.5rem;
-}
-
-.card-footer {
- border-top: 1px solid var(--secondary-border);
- background-color: var(--tertiary-bg);
-}
-
-/* Table Styling */
-.table {
- width: 100%;
- border-collapse: separate;
- border-spacing: 0;
- border-radius: 8px;
- overflow: hidden;
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- margin-bottom: 2rem;
-}
-
-.table thead th {
- background-color: var(--secondary-bg);
- font-weight: 600;
- color: var(--intensive-text);
- text-transform: uppercase;
- font-size: 0.8rem;
- letter-spacing: 0.5px;
- padding: 1rem;
-}
-
-.table td {
- padding: 1rem;
- border-bottom: 1px solid var(--secondary-border);
- vertical-align: middle;
-}
-
-.table tr:last-child td {
- border-bottom: none;
-}
-
-.table tr:hover {
- background-color: var(--secondary-bg);
-}
-
-/* Form Styling */
-.field-label {
- font-weight: 500;
- color: var(--intensive-text);
- font-size: 0.9rem;
-}
-
-.input,
-.textarea,
-.select select {
- border-radius: 6px;
- border: 1px solid var(--secondary-border);
- -webkit-box-shadow: none;
- box-shadow: none;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- background-color: var(--tertiary-bg);
-}
-
-.input:focus,
-.textarea:focus,
-.select select:focus {
- border-color: var(--primary-bg);
- -webkit-box-shadow: 0 0 0 2px rgba(110, 68, 255, 0.1);
- box-shadow: 0 0 0 2px rgba(110, 68, 255, 0.1);
-}
-
-.input:hover,
-.textarea:hover,
-.select select:hover {
- border-color: var(--primary-light);
-}
-
-/* Dashboard Header */
-.dashboard-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin-bottom: 1.5rem;
- padding-bottom: 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.dashboard-header .title {
- margin-bottom: 0;
- font-weight: 700;
- color: var(--intensive-text);
-}
-
-/* Dashboard Metrics */
-.metric-card {
- text-align: center;
- padding: 1.5rem;
- position: relative;
- overflow: hidden;
- border-radius: 8px;
- border: 1px solid var(--secondary-border);
- background-color: var(--tertiary-bg);
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
- height: 100%;
-}
-
-.metric-card:hover {
- -webkit-transform: translateY(-5px);
- -ms-transform: translateY(-5px);
- transform: translateY(-5px);
- -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
-}
-
-.metric-value {
- font-size: 2.5rem;
- font-weight: 700;
- color: var(--primary-text);
- line-height: 1.2;
- margin-bottom: 0.5rem;
-}
-
-.metric-label {
- font-size: 0.9rem;
- color: var(--neutral);
- text-transform: uppercase;
- letter-spacing: 0.5px;
- font-weight: 500;
-}
-
-.metric-icon {
- position: absolute;
- bottom: 1rem;
- right: 1rem;
- font-size: 3rem;
- opacity: 0.1;
- color: var(--primary-text);
-}
-
-/* Graph Container */
-.graph-container {
- background-color: var(--tertiary-bg);
- border-radius: 8px;
- padding: 1.5rem;
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- border: 1px solid var(--secondary-border);
- margin-bottom: 2rem;
-}
-
-.graph-title {
- font-weight: 600;
- font-size: 1.1rem;
- margin-bottom: 1.5rem;
- color: var(--intensive-text);
-}
-
-/* Enrollment Chart */
-.enrollment-chart-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 100%;
-}
-
-.enrollment-chart {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- height: 100%;
- width: 100%;
-}
-
-.chart-bars {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: end;
- -ms-flex-align: end;
- align-items: flex-end;
- height: 85%;
- width: 100%;
- padding-bottom: 10px;
-}
-
-.chart-bar {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- margin: 0 4px;
- border-radius: 4px 4px 0 0;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.chart-bar:hover {
- -webkit-transform: scaleY(1.05);
- -ms-transform: scaleY(1.05);
- transform: scaleY(1.05);
- -webkit-box-shadow: 0 0 10px rgba(110, 68, 255, 0.3);
- box-shadow: 0 0 10px rgba(110, 68, 255, 0.3);
-}
-
-.chart-labels {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- width: 100%;
- padding: 0 4px;
-}
-
-.chart-label {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- text-align: center;
- font-size: 0.75rem;
- color: var(--neutral);
- font-weight: 500;
-}
-
-/* Subject Performance */
-.subject-performance {
- margin-bottom: 1.25rem;
-}
-
-.subject-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- margin-bottom: 0.5rem;
-}
-
-.subject-name {
- font-weight: 500;
- font-size: 0.9rem;
-}
-
-.subject-score {
- font-weight: 600;
- color: var(--primary-text);
-}
-
-/* Difficulty Distribution */
-.difficulty-distribution {
- margin-bottom: 1.25rem;
-}
-
-.difficulty-label {
- font-weight: 500;
- color: var(--primary-text);
- font-size: 0.9rem;
-}
-
-.difficulty-count {
- font-weight: 600;
- color: var(--primary-text);
-}
-
-/* Activity Statistics */
-.activity-summary {
- margin-bottom: 1.25rem;
-}
-
-.stat-label {
- font-weight: 500;
- color: var(--neutral-dark);
- font-size: 0.9rem;
-}
-
-.stat-value {
- font-weight: 600;
- color: var(--primary-text);
-}
-
-.activity-item {
- padding: 0.75rem;
- border-radius: 6px;
- background-color: var(--neutral-lightest);
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.activity-item:hover {
- background-color: var(--secondary-bg);
- -webkit-transform: translateX(3px);
- -ms-transform: translateX(3px);
- transform: translateX(3px);
-}
-
-.student-name,
-.sheet-name {
- font-size: 0.9rem;
- line-height: 1.2;
-}
-
-.student-activity,
-.sheet-activity {
- margin-top: 0.2rem;
-}
-
-.card-header-title .icon {
- color: var(--primary-bg);
- margin-right: 0.5rem;
-}
-
-.graph-title .icon {
- margin-right: 0.5rem;
- color: var(--primary-bg);
-}
-
-/* Practice Sheet Styling */
-.practice-sheet-card {
- margin-bottom: 1.5rem;
- position: relative;
- overflow: hidden;
-}
-
-.practice-sheet-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin-bottom: 1.5rem;
- padding-bottom: 1rem;
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.practice-sheet-detail {
- position: relative;
- padding: 2rem;
- background-color: var(--tertiary-bg);
- border-radius: 8px;
- -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
- border: 1px solid var(--secondary-border);
- margin-bottom: 2rem;
-}
-
-.practice-sheet-detail::before {
- content: "Practice Sheet";
- position: absolute;
- top: -10px;
- left: 20px;
- background-color: var(--primary-bg);
- color: white;
- padding: 0.25rem 0.75rem;
- border-radius: 20px;
- font-size: 0.75rem;
- font-weight: 600;
- text-transform: uppercase;
- letter-spacing: 0.5px;
-}
-
-.module-container {
- margin-top: 2rem;
- position: relative;
-}
-
-.module-list {
- position: relative;
-}
-
-.module-list::before {
- content: "";
- position: absolute;
- top: 0;
- bottom: 0;
- left: 20px;
- width: 2px;
- background-color: var(--secondary-border);
- z-index: 0;
-}
-
-.module-card {
- margin-bottom: 1.5rem;
- border-left: 4px solid var(--primary-bg);
- border-radius: 0 8px 8px 0;
- position: relative;
- z-index: 1;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.module-card:hover {
- -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
-}
-
-.module-card::before {
- content: "";
- position: absolute;
- top: 50%;
- left: -12px;
- width: 20px;
- height: 20px;
- background-color: var(--primary-bg);
- border-radius: 50%;
- -webkit-transform: translateY(-50%);
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
- z-index: 2;
-}
-
-.module-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 1rem 1.5rem;
- background-color: rgba(110, 68, 255, 0.05);
- border-bottom: 1px solid var(--secondary-border);
-}
-
-.module-title {
- font-weight: 600;
- font-size: 1.1rem;
- color: var(--primary-text);
-}
-
-.module-meta {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- gap: 1rem;
- font-size: 0.85rem;
- color: var(--neutral);
-}
-
-.module-meta-item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.module-meta-item i {
- margin-right: 0.5rem;
- font-size: 0.9rem;
-}
-
-.module-content {
- padding: 1.5rem;
-}
-
-.question-list {
- position: relative;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- width: 100%;
-}
-
-.question-card {
- margin-bottom: 1rem;
- border-left: 3px solid var(--success-bg);
- border-radius: 0 8px 8px 0;
- background-color: var(--tertiary-bg);
- position: relative;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
- width: 100%;
-}
-
-.question-card:hover {
- -webkit-transform: translateX(5px);
- -ms-transform: translateX(5px);
- transform: translateX(5px);
- -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- border-left-color: var(--primary-bg);
-}
-
-.question-card.is-dragging {
- -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
- opacity: 0.9;
- -webkit-transform: scale(1.02);
- -ms-transform: scale(1.02);
- transform: scale(1.02);
- z-index: 10;
-}
-
-.question-drag-handle {
- cursor: -webkit-grab;
- cursor: grab;
- color: var(--neutral);
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.question-drag-handle:hover {
- color: var(--primary-bg);
-}
-
-.question-drag-handle:active {
- cursor: -webkit-grabbing;
- cursor: grabbing;
-}
-
-.question-index .tag {
- font-weight: 600;
- min-width: 40px;
- text-align: center;
-}
-
-.question-card::before {
- content: "";
- position: absolute;
- top: 50%;
- left: -8px;
- width: 12px;
- height: 12px;
- background-color: var(--success-bg);
- border-radius: 50%;
- -webkit-transform: translateY(-50%);
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
-}
-
-.question-header {
- padding: 1rem 1.5rem;
- border-bottom: 1px solid var(--secondary-border);
- font-weight: 500;
- -webkit-transition: background-color 0.2s ease;
- -o-transition: background-color 0.2s ease;
- transition: background-color 0.2s ease;
- cursor: pointer;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.question-header:hover {
- background-color: rgba(110, 68, 255, 0.05);
-}
-
-.question-header::after {
- content: "";
- position: absolute;
- top: 50%;
- right: 1rem;
- -webkit-transform: translateY(-50%);
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
- width: 0;
- height: 0;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.question-content {
- padding: 1rem 1.5rem;
- -webkit-animation: fadeIn 0.3s ease;
- animation: fadeIn 0.3s ease;
-}
-
-.question-options {
- margin-top: 1rem;
-}
-
-.question-option {
- padding: 0.75rem 1rem;
- border: 1px solid var(--secondary-border);
- border-radius: 6px;
- margin-bottom: 0.5rem;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- cursor: pointer;
-}
-
-.question-option:hover {
- background-color: var(--secondary-bg);
-}
-
-.question-option.is-correct {
- border-color: var(--success-bg);
- background-color: rgba(0, 199, 164, 0.05);
-}
-
-.question-explanation {
- margin-top: 1rem;
- padding: 1rem;
- background-color: var(--secondary-bg);
- border-radius: 6px;
- font-size: 0.9rem;
-}
-
-/* Visual Connector Lines */
-.connector-line {
- position: relative;
-}
-
-.connector-line::before {
- content: "";
- position: absolute;
- top: 0;
- bottom: 0;
- left: 20px;
- width: 2px;
- background-color: var(--secondary-border);
- z-index: 0;
-}
-
-.connector-dot {
- position: absolute;
- width: 12px;
- height: 12px;
- border-radius: 50%;
- background-color: var(--primary-bg);
- left: 15px;
- top: 50%;
- -webkit-transform: translateY(-50%);
- -ms-transform: translateY(-50%);
- transform: translateY(-50%);
- z-index: 1;
-}
-
-/* Module Tabs Styling */
-.module-tabs-container {
- position: relative;
- margin-bottom: 2rem;
-}
-
-.module-tabs {
- margin-bottom: 0;
- overflow-x: auto;
- white-space: nowrap;
- position: relative;
- z-index: 2;
-}
-
-.module-tabs ul {
- border-bottom-color: var(--secondary-border);
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
-}
-
-.module-tabs li {
- -webkit-box-flex: 0;
- -ms-flex: 0 0 auto;
- flex: 0 0 auto;
-}
-
-.module-tabs li a {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 0.75rem 1.25rem;
- border-radius: 4px 4px 0 0;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
- border-bottom: 2px solid transparent;
- color: var(--neutral-darker);
-}
-
-.module-tabs li a:hover {
- background-color: var(--secondary-bg);
- color: var(--primary-text);
-}
-
-.module-tabs li.is-active a {
- border-bottom-color: var(--primary-bg);
- color: var(--primary-bg);
- font-weight: 600;
-}
-
-.module-tabs li.tab-add-button a {
- padding: 0.75rem;
- color: var(--primary-bg);
-}
-
-.module-tab-content {
- display: none;
- padding: 1.5rem;
- background-color: white;
- border: 1px solid var(--secondary-border);
- border-top: none;
- border-radius: 0 0 8px 8px;
- position: relative;
- z-index: 1;
-}
-
-.module-tab-content.is-active {
- display: block;
- -webkit-animation: fadeIn 0.3s ease;
- animation: fadeIn 0.3s ease;
-}
-
-@-webkit-keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-
-@keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-
-/* Module and Question Actions */
-.module-actions,
-.question-actions {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- gap: 0.5rem;
- z-index: 10;
-}
-
-.module-actions .button,
-.question-actions .button {
- padding: 0.5rem;
- height: auto;
-}
-
-.question-text-container {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- overflow: hidden;
- -o-text-overflow: ellipsis;
- text-overflow: ellipsis;
- white-space: nowrap;
- max-width: 70%;
- font-size: 0.95rem;
- line-height: 1.5;
-}
-
-.question-text-full {
- white-space: normal;
- margin-top: 0.5rem;
- margin-bottom: 1rem;
- padding: 0.75rem 1rem;
- background-color: var(--secondary-bg);
- border-radius: 6px;
- font-size: 1rem;
- line-height: 1.6;
- color: var(--intensive-text);
- border-left: 3px solid var(--primary-bg);
-}
-
-/* Empty State */
-.empty-state {
- text-align: center;
- padding: 3rem 2rem;
- background-color: var(--secondary-bg);
- border-radius: 8px;
- margin-bottom: 2rem;
-}
-
-.empty-state-icon {
- font-size: 3rem;
- color: var(--neutral-light);
- margin-bottom: 1rem;
-}
-
-.empty-state-title {
- font-size: 1.25rem;
- font-weight: 600;
- color: var(--neutral-dark);
- margin-bottom: 0.5rem;
-}
-
-.empty-state-description {
- color: var(--neutral);
- margin-bottom: 1.5rem;
- max-width: 400px;
- margin-left: auto;
- margin-right: auto;
-}
-
-/* User Management Styling */
-.user-avatar {
- border-radius: 50%;
- -o-object-fit: cover;
- object-fit: cover;
- border: 2px solid var(--secondary-border);
-}
-
-.user-card {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 1rem;
- border-radius: 8px;
- margin-bottom: 1rem;
- background-color: var(--tertiary-bg);
- border: 1px solid var(--secondary-border);
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.user-card:hover {
- -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
- -webkit-transform: translateY(-2px);
- -ms-transform: translateY(-2px);
- transform: translateY(-2px);
-}
-
-.user-info {
- margin-left: 1rem;
-}
-
-.user-name {
- font-weight: 600;
- font-size: 1.1rem;
- margin-bottom: 0.25rem;
-}
-
-.user-email {
- color: var(--neutral);
- font-size: 0.9rem;
-}
-
-/* Badge Styling */
-.badge {
- display: inline-block;
- padding: 0.25rem 0.75rem;
- border-radius: 20px;
- font-size: 0.8rem;
- font-weight: 500;
- text-transform: uppercase;
- letter-spacing: 0.5px;
-}
-
-.badge.is-primary {
- background-color: var(--primary-bg);
- color: white;
-}
-
-.badge.is-success {
- background-color: var(--success-bg);
- color: white;
-}
-
-.badge.is-error {
- background-color: var(--error-bg);
- color: white;
-}
-
-/* Timeline Styling */
-.timeline {
- position: relative;
- margin: 0 0 0 1rem;
- padding-left: 1.5rem;
-}
-
-.timeline::before {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- height: 100%;
- width: 2px;
- background-color: var(--secondary-border);
-}
-
-.timeline-item {
- position: relative;
- margin-bottom: 1.5rem;
-}
-
-.timeline-marker {
- position: absolute;
- left: -1.5rem;
- width: 12px;
- height: 12px;
- border-radius: 50%;
- background-color: var(--primary-bg);
- top: 0.25rem;
-}
-
-.timeline-marker.is-primary {
- background-color: var(--primary-bg);
-}
-
-.timeline-marker.is-success {
- background-color: var(--success-bg);
-}
-
-.timeline-marker.is-warning {
- background-color: #ffe08a;
-}
-
-.timeline-marker.is-danger {
- background-color: var(--error-bg);
-}
-
-.timeline-content {
- padding-bottom: 1rem;
-}
-
-.timeline-content .heading {
- font-size: 0.8rem;
- font-weight: 600;
- color: var(--neutral);
- margin-bottom: 0.25rem;
-}
-
-/* Info Item Styling */
-.info-item {
- margin-bottom: 0.75rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.info-item strong {
- min-width: 100px;
- font-weight: 600;
- color: var(--neutral-dark);
-}
-
-/* Auth Styling */
-.login-container {
- min-height: 100vh;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- background-color: var(--secondary-bg);
- background-image: -o-linear-gradient(
- 315deg,
- var(--secondary-bg) 0%,
- var(--tertiary-bg) 100%
- );
- background-image: linear-gradient(
- 135deg,
- var(--secondary-bg) 0%,
- var(--tertiary-bg) 100%
- );
-}
-
-.auth-container {
- max-width: 400px;
- width: 100%;
- padding: 2.5rem;
- border-radius: 8px;
- -webkit-box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
- background-color: var(--tertiary-bg);
- border: 1px solid var(--secondary-border);
-}
-
-.auth-title {
- text-align: center;
- margin-bottom: 2rem;
- color: var(--primary-text);
- font-weight: 700;
- font-size: 1.75rem;
-}
-
-.auth-footer {
- text-align: center;
- margin-top: 1.5rem;
- font-size: 0.9rem;
-}
diff --git a/src/assets/icons/first_trophy.png b/src/assets/icons/first_trophy.png
new file mode 100644
index 0000000..fbbc125
Binary files /dev/null and b/src/assets/icons/first_trophy.png differ
diff --git a/src/assets/icons/second_trophy.png b/src/assets/icons/second_trophy.png
new file mode 100644
index 0000000..afd5fa1
Binary files /dev/null and b/src/assets/icons/second_trophy.png differ
diff --git a/src/assets/icons/third_trophy.png b/src/assets/icons/third_trophy.png
new file mode 100644
index 0000000..402064d
Binary files /dev/null and b/src/assets/icons/third_trophy.png differ
diff --git a/src/assets/math-styles.css b/src/assets/math-styles.css
deleted file mode 100644
index 1260222..0000000
--- a/src/assets/math-styles.css
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
-* Prefixed by https://autoprefixer.github.io
-* PostCSS: v8.4.14,
-* Autoprefixer: v10.4.7
-* Browsers: last 4 version
-*/
-
-/* Math Rendering Styles */
-
-/* General math container */
-.math-content {
- font-size: 1rem;
- line-height: 1.6;
-}
-
-/* Inline math */
-.math-inline {
- display: inline-block;
- vertical-align: middle;
-}
-
-/* Block math */
-.math-block {
- display: block;
- margin: 1rem 0;
- overflow-x: auto;
- text-align: center;
-}
-
-/* Math editor toolbar */
-.math-symbols-toolbar {
- background-color: #f7f7f7;
- border-radius: 6px;
- padding: 0.75rem;
- margin-top: 0.5rem;
- -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
-}
-
-.math-symbols-toolbar button {
- margin-right: 0.25rem;
- margin-bottom: 0.25rem;
- -webkit-transition: all 0.2s ease;
- -o-transition: all 0.2s ease;
- transition: all 0.2s ease;
-}
-
-.math-symbols-toolbar button:hover {
- background-color: #6e44ff;
- color: white;
-}
-
-/* Math examples section */
-.math-examples {
- background-color: #f8f9fa;
- border-radius: 6px;
- padding: 0.75rem;
- margin-top: 0.5rem;
- border: 1px solid #e9ecef;
-}
-
-.math-examples table {
- margin-bottom: 0;
-}
-
-.math-examples th,
-.math-examples td {
- padding: 0.4rem 0.5rem;
- vertical-align: middle;
-}
-
-.math-examples code {
- background-color: rgba(110, 68, 255, 0.1);
- color: #6e44ff;
- padding: 0.2rem 0.4rem;
- border-radius: 4px;
-}
-
-/* Question option styling */
-.option-content {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- max-width: calc(100% - 60px);
-}
-
-/* Short answer styling */
-.short-answer-content {
- background-color: rgba(0, 199, 164, 0.05);
- border: 1px solid #00c7a4;
- border-radius: 6px;
- padding: 1rem;
-}
-
-/* Katex specific overrides */
-.katex {
- font-size: 1.1em;
-}
-
-.katex-display {
- overflow-x: auto;
- overflow-y: hidden;
- padding: 0.5rem 0;
-}
-
-/* Preview mode styling */
-.preview-container {
- min-height: 100px;
- background-color: #fff;
- border: 1px solid #dbdbdb;
- border-radius: 6px;
- padding: 1rem;
- -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-
-/* Tabs styling */
-.tabs ul {
- border-bottom-color: #dbdbdb;
-}
-
-.tabs li.is-active a {
- border-bottom-color: #6e44ff;
- color: #6e44ff;
-}
-
-/* Textarea focus styling */
-#math-editor-textarea:focus {
- border-color: #6e44ff;
- -webkit-box-shadow: 0 0 0 0.125em rgba(110, 68, 255, 0.25);
- box-shadow: 0 0 0 0.125em rgba(110, 68, 255, 0.25);
-}
diff --git a/src/assets/studentProfile.css b/src/assets/studentProfile.css
deleted file mode 100644
index c0b26e1..0000000
--- a/src/assets/studentProfile.css
+++ /dev/null
@@ -1,781 +0,0 @@
-/*
-* Prefixed by https://autoprefixer.github.io
-* PostCSS: v8.4.14,
-* Autoprefixer: v10.4.7
-* Browsers: last 4 version
-*/
-
-/* Student Profile Custom Styles - Unconventional Design */
-
-/* Container */
-.student-profile-container {
- max-width: 1400px;
- margin: 0 auto;
- padding: 2rem 1rem;
- overflow-x: hidden;
-}
-
-/* Back Button */
-.back-button-container {
- margin-bottom: 2rem;
- position: relative;
- z-index: 10;
-}
-
-/* Hero Section */
-.student-profile-hero {
- background: -o-linear-gradient(315deg, #6e44ff 0%, #9f84ff 100%);
- background: linear-gradient(135deg, #6e44ff 0%, #9f84ff 100%);
- border-radius: 0;
- padding: 0;
- margin-bottom: 3rem;
- position: relative;
- overflow: hidden;
- color: white;
- min-height: 400px;
- -webkit-box-shadow: 0 15px 30px rgba(110, 68, 255, 0.2);
- box-shadow: 0 15px 30px rgba(110, 68, 255, 0.2);
-}
-
-.student-profile-hero::before {
- content: "";
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%23ffffff' fill-opacity='0.1' fill-rule='evenodd'/%3E%3C/svg%3E");
- opacity: 0.5;
-}
-
-.hero-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 3rem 2rem;
- position: relative;
- z-index: 2;
-}
-
-.student-info {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- padding-right: 2rem;
-}
-
-.hero-illustration {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- position: relative;
-}
-
-.hero-illustration img {
- max-width: 100%;
- max-height: 350px;
- -webkit-transform: scale(1.2) translateY(-20px);
- -ms-transform: scale(1.2) translateY(-20px);
- transform: scale(1.2) translateY(-20px);
- -webkit-filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.2));
- filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.2));
-}
-
-/* Student Profile Elements */
-.student-profile-avatar {
- width: 120px;
- height: 120px;
- border-radius: 0;
- border: 4px solid white;
- -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
- margin-bottom: 1.5rem;
-}
-
-.student-profile-name {
- font-size: 2.5rem;
- font-weight: 700;
- margin-bottom: 0.5rem;
-}
-
-.student-profile-email {
- font-size: 1.1rem;
- opacity: 0.9;
- margin-bottom: 1rem;
-}
-
-.student-profile-tags {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- margin-bottom: 1.5rem;
-}
-
-.student-profile-tag {
- background-color: rgba(255, 255, 255, 0.2);
- color: white;
- border-radius: 0;
- padding: 0.3rem 1rem;
- margin-right: 0.5rem;
- font-weight: 500;
-}
-
-.student-profile-tag.is-active {
- background-color: #00c7a4;
-}
-
-.student-profile-tag.is-inactive {
- background-color: #ff2c73;
-}
-
-.student-profile-tag.is-suspended {
- background-color: #ffa500;
-}
-
-.student-meta {
- margin-top: 1.5rem;
-}
-
-.student-meta-item {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin-bottom: 0.5rem;
-}
-
-.student-meta-item .icon {
- margin-right: 0.5rem;
-}
-
-/* Main Content Layout */
-.student-profile-main {
- display: -ms-grid;
- display: grid;
- -ms-grid-columns: 1fr 2rem 2fr;
- grid-template-columns: 1fr 2fr;
- gap: 2rem;
- margin-top: 2rem;
-}
-
-/* Sections */
-.student-profile-section {
- background-color: white;
- border-radius: 0;
- -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
- padding: 1.5rem;
- margin-bottom: 2rem;
- position: relative;
- overflow: hidden;
- -webkit-transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
- transition: -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
- -o-transition: transform 0.3s ease, box-shadow 0.3s ease;
- transition: transform 0.3s ease, box-shadow 0.3s ease;
- transition: transform 0.3s ease, box-shadow 0.3s ease,
- -webkit-transform 0.3s ease, -webkit-box-shadow 0.3s ease;
-}
-
-.student-profile-section:hover {
- -webkit-transform: translateY(-5px);
- -ms-transform: translateY(-5px);
- transform: translateY(-5px);
- -webkit-box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
- box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
-}
-
-.student-profile-section-title {
- font-size: 1.5rem;
- font-weight: 700;
- margin-bottom: 1.5rem;
- color: #333;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.student-profile-section-title::after {
- content: "";
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- height: 2px;
- background-color: #f0f0f0;
- margin-left: 1rem;
-}
-
-/* Statistics Section */
-.stats-section {
- position: relative;
- overflow: hidden;
-}
-
-.stats-illustration-container {
- position: absolute;
- top: -20px;
- right: -20px;
- opacity: 0.1;
- z-index: 0;
- -webkit-transform: rotate(10deg);
- -ms-transform: rotate(10deg);
- transform: rotate(10deg);
-}
-
-.stats-illustration {
- width: 150px;
- height: auto;
-}
-
-/* Performance Overview */
-.performance-overview {
- margin-bottom: 1.5rem;
- position: relative;
- z-index: 1;
-}
-
-.performance-header {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin-bottom: 1rem;
-}
-
-.performance-title {
- font-size: 1.2rem;
- font-weight: 600;
- color: #333;
-}
-
-.performance-badge {
- background-color: #6e44ff;
- color: white;
- padding: 0.3rem 1rem;
- font-weight: 600;
- font-size: 0.9rem;
- border-radius: 0;
-}
-
-/* Stats Grid */
-.stats-grid {
- display: -ms-grid;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
- gap: 1rem;
- position: relative;
- z-index: 1;
- margin-bottom: 2rem;
-}
-
-.student-profile-stat {
- text-align: center;
- padding: 1.5rem;
- background-color: #f9f9f9;
- border-radius: 0;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
-}
-
-.student-profile-stat:hover {
- background-color: #6e44ff;
- color: white;
- -webkit-transform: translateY(-5px);
- -ms-transform: translateY(-5px);
- transform: translateY(-5px);
-}
-
-.student-profile-stat:hover .student-profile-stat-value,
-.student-profile-stat:hover .student-profile-stat-label,
-.student-profile-stat:hover .stat-trend {
- color: white;
-}
-
-.student-profile-stat-value {
- font-size: 2.5rem;
- font-weight: 700;
- color: #6e44ff;
- line-height: 1;
- margin-bottom: 0.5rem;
-}
-
-.student-profile-stat-label {
- font-size: 0.9rem;
- color: #666;
- text-transform: uppercase;
- letter-spacing: 1px;
- font-weight: 600;
- margin-bottom: 0.5rem;
-}
-
-.stat-trend {
- font-size: 0.8rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- gap: 0.25rem;
-}
-
-.stat-trend.positive {
- color: #00c7a4;
-}
-
-.stat-trend.negative {
- color: #ff2c73;
-}
-
-.stat-trend.neutral {
- color: #999;
-}
-
-/* Subject Performance */
-.subject-performance {
- position: relative;
- z-index: 1;
-}
-
-.subject-performance-title {
- font-size: 1.2rem;
- font-weight: 600;
- color: #333;
- margin-bottom: 1rem;
-}
-
-.subject-cards {
- display: -ms-grid;
- display: grid;
- grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
- gap: 1rem;
-}
-
-.subject-card {
- background-color: white;
- border: 1px solid #f0f0f0;
- -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
- box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
- overflow: hidden;
-}
-
-.subject-card:hover {
- -webkit-transform: translateY(-5px);
- -ms-transform: translateY(-5px);
- transform: translateY(-5px);
- -webkit-box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
- box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);
-}
-
-.subject-card-header {
- background-color: #6e44ff;
- color: white;
- padding: 0.75rem 1rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: justify;
- -ms-flex-pack: justify;
- justify-content: space-between;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.subject-card-label {
- font-weight: 600;
- font-size: 1rem;
-}
-
-.subject-card-score {
- font-weight: 700;
- font-size: 1.2rem;
-}
-
-.subject-card-body {
- padding: 1rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
-}
-
-.subject-card-icon {
- width: 40px;
- height: 40px;
- background-color: rgba(110, 68, 255, 0.1);
- border-radius: 0;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- margin-right: 1rem;
- color: #6e44ff;
- font-size: 1.2rem;
-}
-
-.subject-card-info {
- -webkit-box-flex: 1;
- -ms-flex: 1;
- flex: 1;
-}
-
-.subject-card-trend {
- font-size: 0.9rem;
- font-weight: 600;
- margin-bottom: 0.25rem;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- gap: 0.25rem;
-}
-
-.subject-card-trend.positive {
- color: #00c7a4;
-}
-
-.subject-card-trend.negative {
- color: #ff2c73;
-}
-
-.subject-card-trend.neutral {
- color: #999;
-}
-
-.subject-card-status {
- font-size: 0.8rem;
- color: #666;
- text-transform: uppercase;
- letter-spacing: 1px;
-}
-
-/* Settings Section */
-.settings-section {
- margin-top: 2rem;
-}
-
-.settings-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.settings-illustration-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin-bottom: 1.5rem;
-}
-
-.settings-illustration {
- max-width: 100%;
- height: 150px;
-}
-
-/* Practice Sheets Section */
-.practice-sheets-section {
- position: relative;
-}
-
-.practice-sheets-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.practice-illustration-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin-bottom: 1.5rem;
-}
-
-.practice-illustration {
- height: 120px;
- width: auto;
-}
-
-.practice-sheets-table-container {
- position: relative;
- z-index: 1;
-}
-
-/* Activity Section */
-.activity-section {
- position: relative;
-}
-
-.activity-content {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
-}
-
-.activity-illustration-container {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- margin-bottom: 1.5rem;
-}
-
-.activity-illustration {
- height: 120px;
- width: auto;
-}
-
-.activity-timeline-container {
- position: relative;
- z-index: 1;
-}
-
-.activity-timeline {
- position: relative;
- padding-left: 2rem;
-}
-
-.activity-timeline::before {
- content: "";
- position: absolute;
- top: 0;
- left: 8px;
- height: 100%;
- width: 2px;
- background-color: #f0f0f0;
-}
-
-.activity-item {
- position: relative;
- padding-bottom: 1.5rem;
-}
-
-.activity-item:last-child {
- padding-bottom: 0;
-}
-
-.activity-marker {
- position: absolute;
- left: -2rem;
- top: 0;
- width: 18px;
- height: 18px;
- border-radius: 0;
- background-color: #6e44ff;
- border: 3px solid white;
- -webkit-box-shadow: 0 0 0 2px #f0f0f0;
- box-shadow: 0 0 0 2px #f0f0f0;
- z-index: 1;
-}
-
-.activity-marker.is-success {
- background-color: #00c7a4;
-}
-
-.activity-marker.is-warning {
- background-color: #ffd166;
-}
-
-.activity-date {
- font-size: 0.8rem;
- color: #999;
- margin-bottom: 0.25rem;
- font-weight: 500;
-}
-
-.activity-content {
- font-weight: 500;
- color: #333;
-}
-
-.activity-score {
- font-weight: 700;
- color: #6e44ff;
-}
-
-/* Illustration Sections */
-.math-illustration-section,
-.study-illustration-section {
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- padding: 2rem;
- background-color: #f9f9f9;
- min-height: 300px;
-}
-
-.math-illustration,
-.study-illustration {
- max-width: 100%;
- max-height: 250px;
- -webkit-filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.1));
- filter: drop-shadow(0 10px 15px rgba(0, 0, 0, 0.1));
-}
-
-/* Button Styles */
-.hip-button {
- background-color: #6e44ff;
- color: white;
- border: none;
- border-radius: 0;
- padding: 0.5rem 1.5rem;
- font-weight: 600;
- -webkit-transition: all 0.3s ease;
- -o-transition: all 0.3s ease;
- transition: all 0.3s ease;
- -webkit-box-shadow: 0 4px 10px rgba(110, 68, 255, 0.3);
- box-shadow: 0 4px 10px rgba(110, 68, 255, 0.3);
-}
-
-.hip-button:hover {
- background-color: #5a36d5;
- -webkit-transform: translateY(-2px);
- -ms-transform: translateY(-2px);
- transform: translateY(-2px);
- -webkit-box-shadow: 0 6px 15px rgba(110, 68, 255, 0.4);
- box-shadow: 0 6px 15px rgba(110, 68, 255, 0.4);
- color: white;
-}
-
-.hip-button.is-small {
- padding: 0.25rem 0.75rem;
- font-size: 0.85rem;
-}
-
-/* Responsive Styles */
-@media screen and (max-width: 1200px) {
- .student-profile-main {
- -ms-grid-columns: 1fr;
- grid-template-columns: 1fr;
- }
-
- .hero-content {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- text-align: center;
- }
-
- .student-info {
- padding-right: 0;
- margin-bottom: 2rem;
- }
-
- .student-profile-tags {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- }
-
- .student-meta {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- }
-
- .student-meta-item {
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- }
-}
-
-@media screen and (max-width: 768px) {
- .student-profile-hero {
- min-height: auto;
- }
-
- .hero-content {
- padding: 2rem 1rem;
- }
-
- .student-profile-name {
- font-size: 2rem;
- }
-
- .student-profile-avatar {
- width: 100px;
- height: 100px;
- }
-
- .hero-illustration img {
- max-height: 200px;
- }
-
- .math-illustration-section,
- .study-illustration-section {
- min-height: 200px;
- }
-
- .math-illustration,
- .study-illustration {
- max-height: 180px;
- }
-}
diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx
new file mode 100644
index 0000000..46a8ad4
--- /dev/null
+++ b/src/components/ui/avatar.tsx
@@ -0,0 +1,51 @@
+import * as React from "react";
+import * as AvatarPrimitive from "@radix-ui/react-avatar";
+
+import { cn } from "../../lib/utils";
+
+function Avatar({
+ className,
+ ...props
+}: React.ComponentProps
+ {user.name} +
+{user.xp}
++ {user.name} +
+{user.xp}
++ {user.name} +
+{user.xp}
+