SolarumAsteridion commited on
Commit
6d77e9e
·
verified ·
1 Parent(s): d3790ad

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +172 -168
index.html CHANGED
@@ -8,176 +8,180 @@
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
  <link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600&family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
11
- <style>
12
- * { margin: 0; padding: 0; box-sizing: border-box; }
13
-
14
- :root {
15
- --glass-bg: rgba(255, 255, 255, 0.03);
16
- --glass-border: rgba(255, 255, 255, 0.08);
17
- --text-primary: rgba(255, 255, 255, 0.95);
18
- --text-secondary: rgba(255, 255, 255, 0.6);
19
- --text-muted: rgba(255, 255, 255, 0.4);
20
- }
21
-
22
- body {
23
- /* CHANGE: Font updated to Lexend */
24
- font-family: 'Lexend', sans-serif;
25
- background: #000000;
26
- min-height: 100vh;
27
- color: var(--text-primary);
28
- overflow-x: hidden;
29
- position: relative;
30
- }
31
-
32
- /* Subtle animated gradient orbs */
33
- body::before,
34
- body::after {
35
- content: '';
36
- position: fixed;
37
- border-radius: 50%;
38
- filter: blur(150px);
39
- opacity: 0.15;
40
- animation: float 20s infinite ease-in-out;
41
- pointer-events: none;
42
- }
43
- body::before {
44
- width: 600px; height: 600px;
45
- background: radial-gradient(circle, #ffffff 0%, transparent 70%);
46
- top: -200px; right: -200px;
47
- }
48
- body::after {
49
- width: 800px; height: 800px;
50
- background: radial-gradient(circle, #ffffff 0%, transparent 70%);
51
- bottom: -300px; left: -300px;
52
- animation-delay: 10s;
53
- }
54
- @keyframes float {
55
- 0%, 100% { transform: translate(0, 0) scale(1); }
56
- 33% { transform: translate(30px, -30px) scale(1.1); }
57
- 66% { transform: translate(-20px, 20px) scale(0.9); }
58
- }
59
-
60
- /* Subtle particles */
61
- .particles { position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: 1; pointer-events: none; }
62
- .particle { position: absolute; width: 1px; height: 1px; background: white; border-radius: 50%; opacity: 0; animation: twinkle 5s infinite; }
63
- @keyframes twinkle {
64
- 0%, 100% { opacity: 0; transform: scale(0.5); }
65
- 50% { opacity: 0.8; transform: scale(1); }
66
- }
67
-
68
- .container { max-width: 1200px; margin: 0 auto; padding: 3rem 2rem; position: relative; z-index: 2; }
69
 
70
- /* Clean header */
71
- .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5rem; padding-bottom: 2rem; position: relative; }
72
- .header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1) 20%, rgba(255, 255, 255, 0.1) 80%, transparent); }
73
 
74
- h1 {
75
- /* CHANGE: Font updated to Lexend, slightly thicker */
76
- font-family: 'Lexend', sans-serif;
77
- font-size: 2.5rem;
78
- font-weight: 300;
79
- letter-spacing: -1px;
80
- background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.6) 100%);
81
- -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
82
- }
83
-
84
- /* Glass settings button */
85
- .settings-btn { width: 50px; height: 50px; background: var(--glass-bg); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid var(--glass-border); border-radius: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; }
86
- .settings-btn::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at center, rgba(255, 255, 255, 0.1) 0%, transparent 70%); opacity: 0; transition: opacity 0.3s ease; }
87
- .settings-btn:hover { transform: scale(1.05); background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); }
88
- .settings-btn:hover::before { opacity: 1; }
89
- .settings-btn svg { width: 24px; height: 24px; fill: var(--text-primary); transition: transform 0.4s ease; }
90
- .settings-btn:hover svg { transform: rotate(90deg); }
91
-
92
- /* Glass exam grid */
93
- .exams-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 2rem; }
94
-
95
- /* Glassmorphic exam cards */
96
- .exam-card { background: var(--glass-bg); backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%); border: 1px solid var(--glass-border); border-radius: 24px; padding: 2.5rem; text-align: center; transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; }
97
- .exam-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2) 50%, transparent); opacity: 0; transition: opacity 0.3s ease; }
98
- .exam-card::after { content: ''; position: absolute; inset: 0; background: radial-gradient( 600px circle at var(--mouse-x) var(--mouse-y), rgba(255, 255, 255, 0.06), transparent 40% ); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
99
- .exam-card:hover { transform: translateY(-5px); background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.15); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
100
- .exam-card:hover::before, .exam-card:hover::after { opacity: 1; }
101
-
102
- .exam-name {
103
- /* CHANGE: Font weight increased */
104
- font-size: 1.4rem;
105
- font-weight: 400;
106
- margin-bottom: 2rem;
107
- color: var(--text-primary);
108
- letter-spacing: -0.5px;
109
- }
110
-
111
- .countdown {
112
- /* CHANGE: Font updated to Playfair Display, made larger and bolder */
113
- font-family: 'Playfair Display', serif;
114
- font-size: 4.5rem;
115
- font-weight: 700;
116
- margin-bottom: 0.5rem;
117
- letter-spacing: -2px;
118
- line-height: 1.1;
119
- background: linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0.7) 100%);
120
- -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
121
- }
122
-
123
- .countdown-label { font-size: 0.85rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 2px; font-weight: 500; }
124
- .exam-date { font-size: 0.9rem; color: var(--text-muted); margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.05); }
125
-
126
- /* Minimal delete button */
127
- .delete-btn { position: absolute; top: 1.5rem; right: 1.5rem; width: 32px; height: 32px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; opacity: 0; }
128
- .exam-card:hover .delete-btn { opacity: 1; }
129
- .delete-btn:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); transform: scale(1.1); }
130
- .delete-btn svg { width: 16px; height: 16px; fill: var(--text-secondary); transition: fill 0.3s ease; pointer-events: none; }
131
- .delete-btn:hover svg { fill: var(--text-primary); }
132
-
133
- /* Glass modal */
134
- .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 1000; align-items: center; justify-content: center; padding: 2rem; opacity: 0; transition: opacity 0.3s ease; }
135
- .modal.active { display: flex; opacity: 1; }
136
- .modal-content { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 24px; padding: 3rem; width: 100%; max-width: 450px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1); animation: modalSlide 0.4s cubic-bezier(0.23, 1, 0.320, 1); }
137
- @keyframes modalSlide { from { transform: translateY(-20px) scale(0.95); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
138
- .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
139
- .modal-title { font-family: 'Lexend', sans-serif; font-size: 1.5rem; font-weight: 400; letter-spacing: -0.5px; }
140
- .close-btn { width: 36px; height: 36px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; }
141
- .close-btn:hover { background: rgba(255, 255, 255, 0.08); transform: rotate(90deg); }
142
- .close-btn svg { width: 18px; height: 18px; fill: var(--text-secondary); }
143
-
144
- /* Clean form */
145
- .form-group { margin-bottom: 2rem; }
146
- .form-group label { display: block; margin-bottom: 0.75rem; font-size: 0.9rem; color: var(--text-secondary); font-weight: 500; letter-spacing: 0.5px; }
147
- .form-group input { width: 100%; padding: 1rem 1.25rem; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; color: var(--text-primary); font-size: 1rem; transition: all 0.3s ease; font-family: 'Lexend', sans-serif; }
148
- .form-group input:focus { outline: none; background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.2); box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.02), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
149
- .form-group input::placeholder { color: var(--text-muted); }
150
-
151
- /* Sleek add button */
152
- .add-btn { width: 100%; padding: 1.25rem; background: rgba(255, 255, 255, 0.95); border: none; border-radius: 12px; color: #000; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; letter-spacing: 0.5px; }
153
- .add-btn:hover { transform: translateY(-2px); background: white; box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2), 0 1px 0 rgba(255, 255, 255, 0.2); }
154
- .add-btn:active { transform: translateY(0); }
155
-
156
- /* Elegant empty state */
157
- .empty-state { text-align: center; padding: 6rem 2rem; display: flex; flex-direction: column; align-items: center; justify-content: center; }
158
- .empty-icon { width: 80px; height: 80px; margin-bottom: 2rem; background: var(--glass-bg); backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: 20px; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
159
- .empty-state p { font-size: 1.1rem; color: var(--text-secondary); max-width: 400px; line-height: 1.6; font-weight: 300; }
160
-
161
- input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); cursor: pointer; }
162
- @media (max-width: 768px) { h1 { font-size: 2rem; } .countdown { font-size: 3.5rem; } .exams-grid { grid-template-columns: 1fr; } .container { padding: 2rem 1rem; } }
163
-
164
- /* NEW: Enhanced Scrollbar */
165
- ::-webkit-scrollbar {
166
- width: 8px;
167
- }
168
- ::-webkit-scrollbar-track {
169
- background: transparent;
170
- }
171
- ::-webkit-scrollbar-thumb {
172
- background: rgba(255, 255, 255, 0.1);
173
- border-radius: 10px;
174
- border: 2px solid transparent;
175
- background-clip: content-box;
176
- }
177
- ::-webkit-scrollbar-thumb:hover {
178
- background: rgba(255, 255, 255, 0.2);
179
- }
180
- </style>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
181
  </head>
182
  <body>
183
  <div class="particles" id="particles"></div>
 
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
  <link href="https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600&family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
11
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
+ I’ll make the container full-width and ensure the cards are rectangular (auto height) instead of forced square. Replace your CSS with the version below.
 
 
14
 
15
+ <style>
16
+ * { margin: 0; padding: 0; box-sizing: border-box; }
17
+
18
+ :root {
19
+ --glass-bg: rgba(255, 255, 255, 0.03);
20
+ --glass-border: rgba(255, 255, 255, 0.08);
21
+ --text-primary: rgba(255, 255, 255, 0.95);
22
+ --text-secondary: rgba(255, 255, 255, 0.6);
23
+ --text-muted: rgba(255, 255, 255, 0.4);
24
+ }
25
+
26
+ body {
27
+ font-family: 'Lexend', sans-serif;
28
+ background: #000000;
29
+ min-height: 100vh;
30
+ color: var(--text-primary);
31
+ overflow-x: hidden;
32
+ position: relative;
33
+ }
34
+
35
+ /* Subtle animated gradient orbs */
36
+ body::before,
37
+ body::after {
38
+ content: '';
39
+ position: fixed;
40
+ border-radius: 50%;
41
+ filter: blur(150px);
42
+ opacity: 0.15;
43
+ animation: float 20s infinite ease-in-out;
44
+ pointer-events: none;
45
+ }
46
+ body::before {
47
+ width: 600px; height: 600px;
48
+ background: radial-gradient(circle, #ffffff 0%, transparent 70%);
49
+ top: -200px; right: -200px;
50
+ }
51
+ body::after {
52
+ width: 800px; height: 800px;
53
+ background: radial-gradient(circle, #ffffff 0%, transparent 70%);
54
+ bottom: -300px; left: -300px;
55
+ animation-delay: 10s;
56
+ }
57
+ @keyframes float {
58
+ 0%, 100% { transform: translate(0, 0) scale(1); }
59
+ 33% { transform: translate(30px, -30px) scale(1.1); }
60
+ 66% { transform: translate(-20px, 20px) scale(0.9); }
61
+ }
62
+
63
+ /* Subtle particles */
64
+ .particles { position: fixed; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: 1; pointer-events: none; }
65
+ .particle { position: absolute; width: 1px; height: 1px; background: white; border-radius: 50%; opacity: 0; animation: twinkle 5s infinite; }
66
+ @keyframes twinkle {
67
+ 0%, 100% { opacity: 0; transform: scale(0.5); }
68
+ 50% { opacity: 0.8; transform: scale(1); }
69
+ }
70
+
71
+ /* Full-width container */
72
+ .container {
73
+ width: 100%;
74
+ max-width: none;
75
+ margin: 0 auto;
76
+ padding: 3rem 2rem;
77
+ position: relative;
78
+ z-index: 2;
79
+ }
80
+
81
+ /* Clean header */
82
+ .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5rem; padding-bottom: 2rem; position: relative; }
83
+ .header::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1) 20%, rgba(255, 255, 255, 0.1) 80%, transparent); }
84
+
85
+ h1 {
86
+ font-family: 'Lexend', sans-serif;
87
+ font-size: 2.5rem;
88
+ font-weight: 300;
89
+ letter-spacing: -1px;
90
+ background: linear-gradient(135deg, #ffffff 0%, rgba(255, 255, 255, 0.6) 100%);
91
+ -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
92
+ }
93
+
94
+ /* Glass settings button */
95
+ .settings-btn { width: 50px; height: 50px; background: var(--glass-bg); backdrop-filter: blur(20px) saturate(180%); -webkit-backdrop-filter: blur(20px) saturate(180%); border: 1px solid var(--glass-border); border-radius: 16px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; }
96
+ .settings-btn::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at center, rgba(255, 255, 255, 0.1) 0%, transparent 70%); opacity: 0; transition: opacity 0.3s ease; }
97
+ .settings-btn:hover { transform: scale(1.05); background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.2); }
98
+ .settings-btn:hover::before { opacity: 1; }
99
+ .settings-btn svg { width: 24px; height: 24px; fill: var(--text-primary); transition: transform 0.4s ease; }
100
+ .settings-btn:hover svg { transform: rotate(90deg); }
101
+
102
+ /* Glass exam grid (rectangular cards, auto height) */
103
+ .exams-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 2rem; grid-auto-rows: auto; align-items: start; }
104
+
105
+ /* Glassmorphic exam cards */
106
+ .exam-card { background: var(--glass-bg); backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%); border: 1px solid var(--glass-border); border-radius: 24px; padding: 2.5rem; text-align: center; transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; min-height: 220px; }
107
+ .exam-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2) 50%, transparent); opacity: 0; transition: opacity 0.3s ease; }
108
+ .exam-card::after { content: ''; position: absolute; inset: 0; background: radial-gradient( 600px circle at var(--mouse-x) var(--mouse-y), rgba(255, 255, 255, 0.06), transparent 40% ); opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
109
+ .exam-card:hover { transform: translateY(-5px); background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.15); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
110
+ .exam-card:hover::before, .exam-card:hover::after { opacity: 1; }
111
+
112
+ .exam-name {
113
+ font-size: 1.4rem;
114
+ font-weight: 400;
115
+ margin-bottom: 2rem;
116
+ color: var(--text-primary);
117
+ letter-spacing: -0.5px;
118
+ }
119
+
120
+ .countdown {
121
+ font-family: 'Playfair Display', serif;
122
+ font-size: 4.5rem;
123
+ font-weight: 700;
124
+ margin-bottom: 0.5rem;
125
+ letter-spacing: -2px;
126
+ line-height: 1.1;
127
+ background: linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0.7) 100%);
128
+ -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
129
+ }
130
+
131
+ .countdown-label { font-size: 0.85rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 2px; font-weight: 500; }
132
+ .exam-date { font-size: 0.9rem; color: var(--text-muted); margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, 0.05); }
133
+
134
+ /* Minimal delete button */
135
+ .delete-btn { position: absolute; top: 1.5rem; right: 1.5rem; width: 32px; height: 32px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; opacity: 0; }
136
+ .exam-card:hover .delete-btn { opacity: 1; }
137
+ .delete-btn:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); transform: scale(1.1); }
138
+ .delete-btn svg { width: 16px; height: 16px; fill: var(--text-secondary); transition: fill 0.3s ease; pointer-events: none; }
139
+ .delete-btn:hover svg { fill: var(--text-primary); }
140
+
141
+ /* Glass modal */
142
+ .modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 1000; align-items: center; justify-content: center; padding: 2rem; opacity: 0; transition: opacity 0.3s ease; }
143
+ .modal.active { display: flex; opacity: 1; }
144
+ .modal-content { background: rgba(255, 255, 255, 0.03); backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 24px; padding: 3rem; width: 100%; max-width: 450px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1); animation: modalSlide 0.4s cubic-bezier(0.23, 1, 0.320, 1); }
145
+ @keyframes modalSlide { from { transform: translateY(-20px) scale(0.95); opacity: 0; } to { transform: translateY(0) scale(1); opacity: 1; } }
146
+ .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
147
+ .modal-title { font-family: 'Lexend', sans-serif; font-size: 1.5rem; font-weight: 400; letter-spacing: -0.5px; }
148
+ .close-btn { width: 36px; height: 36px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; }
149
+ .close-btn:hover { background: rgba(255, 255, 255, 0.08); transform: rotate(90deg); }
150
+ .close-btn svg { width: 18px; height: 18px; fill: var(--text-secondary); }
151
+
152
+ /* Clean form */
153
+ .form-group { margin-bottom: 2rem; }
154
+ .form-group label { display: block; margin-bottom: 0.75rem; font-size: 0.9rem; color: var(--text-secondary); font-weight: 500; letter-spacing: 0.5px; }
155
+ .form-group input { width: 100%; padding: 1rem 1.25rem; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; color: var(--text-primary); font-size: 1rem; transition: all 0.3s ease; font-family: 'Lexend', sans-serif; }
156
+ .form-group input:focus { outline: none; background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.2); box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.02), inset 0 1px 0 rgba(255, 255, 255, 0.1); }
157
+ .form-group input::placeholder { color: var(--text-muted); }
158
+
159
+ /* Sleek add button */
160
+ .add-btn { width: 100%; padding: 1.25rem; background: rgba(255, 255, 255, 0.95); border: none; border-radius: 12px; color: #000; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s cubic-bezier(0.23, 1, 0.320, 1); position: relative; overflow: hidden; letter-spacing: 0.5px; }
161
+ .add-btn:hover { transform: translateY(-2px); background: white; box-shadow: 0 10px 30px rgba(255, 255, 255, 0.2), 0 1px 0 rgba(255, 255, 255, 0.2); }
162
+ .add-btn:active { transform: translateY(0); }
163
+
164
+ /* Elegant empty state */
165
+ .empty-state { text-align: center; padding: 6rem 2rem; display: flex; flex-direction: column; align-items: center; justify-content: center; }
166
+ .empty-icon { width: 80px; height: 80px; margin-bottom: 2rem; background: var(--glass-bg); backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: 20px; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
167
+ .empty-state p { font-size: 1.1rem; color: var(--text-secondary); max-width: 400px; line-height: 1.6; font-weight: 300; }
168
+
169
+ input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); cursor: pointer; }
170
+
171
+ /* Enhanced scrollbar */
172
+ ::-webkit-scrollbar { width: 8px; }
173
+ ::-webkit-scrollbar-track { background: transparent; }
174
+ ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; }
175
+ ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.2); }
176
+
177
+ /* Responsive tweaks */
178
+ @media (max-width: 768px) {
179
+ h1 { font-size: 2rem; }
180
+ .countdown { font-size: 3.5rem; }
181
+ .exams-grid { grid-template-columns: 1fr; }
182
+ .container { padding: 2rem 1rem; }
183
+ }
184
+ </style>
185
  </head>
186
  <body>
187
  <div class="particles" id="particles"></div>