Docfile commited on
Commit
611fd85
·
verified ·
1 Parent(s): 6aeae7d

Update api/static/css/style.css

Browse files
Files changed (1) hide show
  1. api/static/css/style.css +352 -273
api/static/css/style.css CHANGED
@@ -21,6 +21,9 @@
21
  --btn-secondary-bg: #6c757d;
22
  --btn-secondary-text: #ffffff;
23
  --modal-bg: #ffffff;
 
 
 
24
  }
25
 
26
  [data-theme="dark"] {
@@ -45,6 +48,9 @@
45
  --btn-secondary-bg: #555555;
46
  --btn-secondary-text: #ffffff;
47
  --modal-bg: #1e1e1e;
 
 
 
48
  }
49
 
50
  /* General Styles */
@@ -79,20 +85,41 @@ a:hover {
79
  box-shadow: var(--shadow);
80
  position: sticky;
81
  top: 0;
82
- z-index: 1000;
83
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
84
  }
85
 
 
86
  .header-container {
87
  display: flex;
88
- justify-content: space-between;
89
  align-items: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
 
 
 
 
 
92
  .site-title {
 
 
93
  font-size: 1.8rem;
94
  font-weight: bold;
95
- margin: 0;
96
  }
97
 
98
  .site-title a {
@@ -100,6 +127,14 @@ a:hover {
100
  text-decoration: none;
101
  }
102
 
 
 
 
 
 
 
 
 
103
  /* Theme Toggle */
104
  .theme-toggle {
105
  background: none;
@@ -119,10 +154,161 @@ a:hover {
119
  /* Main Content */
120
  .main-content {
121
  flex: 1;
122
- padding: 2rem 0;
 
123
  }
124
 
125
- /* Subject Selection Cards */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  .subject-card {
127
  background-color: var(--card-bg);
128
  border-radius: 8px;
@@ -153,7 +339,7 @@ a:hover {
153
  margin-bottom: 1rem;
154
  }
155
 
156
- /* Content Blocks Styling */
157
  .content-block {
158
  background-color: var(--block-bg);
159
  border-radius: 8px;
@@ -162,7 +348,8 @@ a:hover {
162
  box-shadow: var(--shadow);
163
  border: var(--block-border);
164
  transition: box-shadow 0.3s ease;
165
- overflow: hidden;
 
166
  }
167
 
168
  .content-block:hover {
@@ -176,7 +363,7 @@ a:hover {
176
  margin-bottom: 1rem;
177
  color: var(--text-color);
178
  padding-bottom: 0.5rem;
179
- border-bottom: 2px solid var(--primary-color);
180
  }
181
 
182
  .content-block-content {
@@ -191,26 +378,18 @@ a:hover {
191
  align-items: flex-start;
192
  }
193
 
194
- .block-with-image.image-left {
195
- flex-direction: row;
196
- }
197
-
198
- .block-with-image.image-right {
199
- flex-direction: row-reverse;
200
- }
201
-
202
- .block-with-image.image-top {
203
- flex-direction: column;
204
- }
205
 
206
  .block-image-container {
207
  flex: 0 0 auto;
208
- max-width: 30%;
209
- margin-bottom: 1rem;
210
  }
211
 
212
  .block-with-image.image-top .block-image-container {
213
- max-width: 100%;
214
  margin-bottom: 1.5rem;
215
  }
216
 
@@ -219,24 +398,15 @@ a:hover {
219
  height: auto;
220
  border-radius: 6px;
221
  box-shadow: var(--shadow);
 
222
  }
223
 
224
  .block-content-container {
225
- flex: 1;
226
- }
227
-
228
- @media (max-width: 768px) {
229
- .block-with-image {
230
- flex-direction: column !important;
231
- }
232
-
233
- .block-image-container {
234
- max-width: 100%;
235
- margin-bottom: 1.5rem;
236
- }
237
  }
238
 
239
- /* Category Selection UI */
240
  .selection-container {
241
  background-color: var(--card-bg);
242
  border-radius: 8px;
@@ -276,7 +446,7 @@ a:hover {
276
  color: white;
277
  }
278
 
279
- /* Content Viewer */
280
  .content-viewer {
281
  background-color: var(--card-bg);
282
  border-radius: 8px;
@@ -290,7 +460,7 @@ a:hover {
290
  margin-top: 0;
291
  margin-bottom: 1.5rem;
292
  padding-bottom: 0.5rem;
293
- border-bottom: 2px solid var(--primary-color);
294
  }
295
 
296
  /* Buttons */
@@ -313,20 +483,24 @@ a:hover {
313
  .btn-primary {
314
  background-color: var(--btn-primary-bg);
315
  color: var(--btn-primary-text);
 
316
  }
317
 
318
  .btn-primary:hover {
319
- background-color: #2980b9;
 
320
  color: white;
321
  }
322
 
323
  .btn-secondary {
324
  background-color: var(--btn-secondary-bg);
325
  color: var(--btn-secondary-text);
 
326
  }
327
 
328
  .btn-secondary:hover {
329
- background-color: #5a6268;
 
330
  color: white;
331
  }
332
 
@@ -362,24 +536,29 @@ label {
362
  background-color: var(--footer-bg);
363
  padding: 2rem 0;
364
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
365
- margin-top: auto;
 
366
  }
367
 
368
  .footer-content {
369
  display: flex;
370
  justify-content: space-between;
371
  flex-wrap: wrap;
 
372
  }
373
 
374
  .footer-links {
375
  list-style: none;
376
  padding: 0;
 
377
  display: flex;
 
378
  gap: 1.5rem;
379
  }
380
 
381
  .feedback-form {
382
  margin-top: 1rem;
 
383
  }
384
 
385
  .feedback-title {
@@ -387,239 +566,113 @@ label {
387
  margin-bottom: 0.75rem;
388
  }
389
 
390
- /* Admin specific styles */
391
- .admin-container {
392
- background-color: var(--card-bg);
393
- border-radius: 8px;
394
- padding: 2rem;
395
- box-shadow: var(--shadow);
396
- margin-bottom: 2rem;
397
- }
398
-
399
- .admin-title {
400
- margin-top: 0;
401
- margin-bottom: 1.5rem;
402
- font-size: 1.8rem;
403
- color: var(--text-color);
404
- border-bottom: 2px solid var(--primary-color);
405
- padding-bottom: 0.5rem;
406
- }
407
-
408
- .admin-sidebar {
409
- background-color: var(--block-bg);
410
- border-radius: 8px;
411
- padding: 1.5rem;
412
- margin-bottom: 2rem;
413
- box-shadow: var(--shadow);
414
- }
415
-
416
- .admin-nav {
417
- list-style: none;
418
- padding: 0;
419
- margin: 0;
420
- }
421
-
422
- .admin-nav-item {
423
- margin-bottom: 0.5rem;
424
- }
425
-
426
- .admin-nav-link {
427
- display: block;
428
- padding: 0.75rem 1rem;
429
- border-radius: 4px;
430
- color: var(--text-color);
431
- text-decoration: none;
432
- transition: background-color 0.3s ease, color 0.3s ease;
433
- }
434
-
435
- .admin-nav-link:hover, .admin-nav-link.active {
436
- background-color: var(--primary-color);
437
- color: white;
438
- }
439
-
440
- .admin-nav-link i {
441
- margin-right: 0.5rem;
442
- width: 20px;
443
- text-align: center;
444
- }
445
-
446
- .admin-card {
447
- background-color: var(--block-bg);
448
- border-radius: 8px;
449
- padding: 1.5rem;
450
- margin-bottom: 1.5rem;
451
- box-shadow: var(--shadow);
452
- border-left: 4px solid var(--primary-color);
453
- }
454
 
455
- .admin-card-title {
456
- font-size: 1.2rem;
457
- margin-top: 0;
458
- margin-bottom: 1rem;
459
- color: var(--text-color);
460
- }
461
-
462
- .admin-stat {
463
- font-size: 2.5rem;
464
- font-weight: bold;
465
- margin-bottom: 0.5rem;
466
- color: var(--primary-color);
467
- }
468
-
469
- /* Editor styles */
470
- .editor-container {
471
- background-color: var(--block-bg);
472
- border-radius: 8px;
473
- padding: 1.5rem;
474
- margin-bottom: 2rem;
475
- box-shadow: var(--shadow);
476
- }
477
-
478
- .block-editor {
479
- background-color: var(--card-bg);
480
- border-radius: 8px;
481
- padding: 1.5rem;
482
- margin-bottom: 1.5rem;
483
- box-shadow: var(--shadow);
484
- border: var(--block-border);
485
- position: relative;
486
- }
487
-
488
- .block-editor-header {
489
- display: flex;
490
- justify-content: space-between;
491
- align-items: center;
492
- margin-bottom: 1rem;
493
- padding-bottom: 0.5rem;
494
- border-bottom: 1px solid var(--border-color);
495
- }
496
-
497
- .block-editor-title {
498
- font-size: 1.2rem;
499
- font-weight: 600;
500
- margin: 0;
501
- }
502
-
503
- .block-editor-actions {
504
- display: flex;
505
- gap: 0.5rem;
506
- }
507
-
508
- .block-handle {
509
- cursor: move;
510
- padding: 0.25rem 0.5rem;
511
- margin-right: 0.5rem;
512
- background-color: var(--border-color);
513
- border-radius: 4px;
514
- }
515
-
516
- .image-preview {
517
- max-width: 100%;
518
- height: auto;
519
- margin-top: 1rem;
520
- border-radius: 6px;
521
- box-shadow: var(--shadow);
522
- }
523
-
524
- .image-gallery {
525
- display: grid;
526
- grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
527
- gap: 1rem;
528
- margin-top: 1rem;
529
- }
530
-
531
- .gallery-item {
532
- position: relative;
533
- border-radius: 6px;
534
- overflow: hidden;
535
- box-shadow: var(--shadow);
536
- cursor: pointer;
537
- transition: transform 0.3s ease, box-shadow 0.3s ease;
538
- }
539
-
540
- .gallery-item:hover {
541
- transform: scale(1.05);
542
- box-shadow: var(--hover-shadow);
543
- }
544
-
545
- .gallery-image {
546
- width: 100%;
547
- height: 120px;
548
- object-fit: cover;
549
- display: block;
550
- }
551
-
552
- .gallery-image-select {
553
- position: absolute;
554
- top: 5px;
555
- right: 5px;
556
- background-color: rgba(0, 0, 0, 0.5);
557
- color: white;
558
- border: none;
559
- border-radius: 50%;
560
- width: 30px;
561
- height: 30px;
562
- display: flex;
563
- align-items: center;
564
- justify-content: center;
565
  }
566
 
567
- /* Login screen */
568
- .login-container {
569
- max-width: 400px;
570
- margin: 3rem auto;
571
- background-color: var(--card-bg);
572
- border-radius: 8px;
573
- padding: 2rem;
574
- box-shadow: var(--shadow);
575
- }
 
 
 
576
 
577
- .login-logo {
578
- text-align: center;
579
- margin-bottom: 2rem;
580
- }
 
581
 
582
- .login-title {
583
- font-size: 1.8rem;
584
- text-align: center;
585
- margin-bottom: 2rem;
586
- }
 
587
 
588
- /* Responsive design adjustments */
589
- @media (max-width: 992px) {
590
- .container {
591
- max-width: 100%;
592
- padding-left: 1rem;
593
- padding-right: 1rem;
594
  }
595
  }
596
 
 
597
  @media (max-width: 576px) {
598
- .subject-card {
599
  padding: 1rem;
600
  }
601
-
602
  .content-viewer {
603
- padding: 1.5rem;
604
  }
605
-
606
  .admin-container {
607
  padding: 1.5rem;
608
  }
609
-
610
  .content-title {
611
- font-size: 1.6rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
612
  }
613
  }
614
 
615
- /* Animation keyframes */
616
  @keyframes fadeIn {
617
  from { opacity: 0; }
618
  to { opacity: 1; }
619
  }
620
 
621
  .fade-in {
622
- animation: fadeIn 0.5s ease-in;
623
  }
624
 
625
  @keyframes slideInUp {
@@ -634,50 +687,76 @@ label {
634
  }
635
 
636
  .slide-in-up {
637
- animation: slideInUp 0.5s ease-out;
638
- }
639
-
640
- /* Utility classes */
641
- .text-center {
642
- text-align: center;
643
  }
644
 
645
- .mb-1 { margin-bottom: 0.5rem; }
646
- .mb-2 { margin-bottom: 1rem; }
647
- .mb-3 { margin-bottom: 1.5rem; }
648
- .mb-4 { margin-bottom: 2rem; }
 
 
 
 
 
 
 
 
 
649
 
650
- .mt-1 { margin-top: 0.5rem; }
651
- .mt-2 { margin-top: 1rem; }
652
- .mt-3 { margin-top: 1.5rem; }
653
- .mt-4 { margin-top: 2rem; }
654
 
 
655
  .alert {
656
  padding: 1rem;
657
  margin-bottom: 1rem;
658
  border-radius: 4px;
 
 
 
 
 
659
  }
660
 
661
  .alert-success {
662
- background-color: rgba(46, 204, 113, 0.2);
663
- color: #2ecc71;
664
- border: 1px solid rgba(46, 204, 113, 0.3);
 
 
 
 
 
665
  }
666
 
667
  .alert-danger {
668
- background-color: rgba(231, 76, 60, 0.2);
669
- color: #e74c3c;
670
- border: 1px solid rgba(231, 76, 60, 0.3);
 
 
 
 
 
671
  }
672
 
673
  .alert-warning {
674
- background-color: rgba(241, 196, 15, 0.2);
675
- color: #f1c40f;
676
- border: 1px solid rgba(241, 196, 15, 0.3);
 
 
 
 
 
677
  }
678
 
679
  .alert-info {
680
- background-color: rgba(52, 152, 219, 0.2);
681
- color: #3498db;
682
- border: 1px solid rgba(52, 152, 219, 0.3);
683
- }
 
 
 
 
 
 
21
  --btn-secondary-bg: #6c757d;
22
  --btn-secondary-text: #ffffff;
23
  --modal-bg: #ffffff;
24
+ --sidebar-bg: #ffffff; /* Added for consistency */
25
+ --sidebar-border: #dee2e6; /* Added */
26
+ --sidebar-hover-bg: rgba(52, 152, 219, 0.1); /* Added */
27
  }
28
 
29
  [data-theme="dark"] {
 
48
  --btn-secondary-bg: #555555;
49
  --btn-secondary-text: #ffffff;
50
  --modal-bg: #1e1e1e;
51
+ --sidebar-bg: #1e1e1e; /* Added for dark theme */
52
+ --sidebar-border: #333333; /* Added */
53
+ --sidebar-hover-bg: rgba(52, 152, 219, 0.2); /* Slightly different hover for dark */
54
  }
55
 
56
  /* General Styles */
 
85
  box-shadow: var(--shadow);
86
  position: sticky;
87
  top: 0;
88
+ z-index: 1030; /* Ensure header is above general content but below modals/sidebars if needed */
89
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
90
  }
91
 
92
+ /* MODIFIED: Header Container Layout */
93
  .header-container {
94
  display: flex;
 
95
  align-items: center;
96
+ /* Removed justify-content: space-between; to accommodate burger */
97
+ }
98
+
99
+ /* NEW: Burger Menu Button */
100
+ .burger-menu-button {
101
+ background: none;
102
+ border: none;
103
+ font-size: 1.8rem; /* Match site title size */
104
+ color: var(--text-color);
105
+ cursor: pointer;
106
+ padding: 0.5rem;
107
+ margin-right: 1rem; /* Space between burger and title */
108
+ line-height: 1;
109
+ transition: color 0.3s ease;
110
  }
111
 
112
+ .burger-menu-button:hover {
113
+ color: var(--primary-color);
114
+ }
115
+
116
+ /* MODIFIED: Site Title Layout */
117
  .site-title {
118
+ flex-grow: 1; /* Allow title to take available space */
119
+ text-align: center; /* Center title between burger and actions */
120
  font-size: 1.8rem;
121
  font-weight: bold;
122
+ margin: 0; /* Remove default margins */
123
  }
124
 
125
  .site-title a {
 
127
  text-decoration: none;
128
  }
129
 
130
+ /* Header Actions (Theme toggle, Admin) - Ensure they stay aligned */
131
+ .header-actions {
132
+ display: flex;
133
+ align-items: center;
134
+ margin-left: 1rem; /* Space between title and actions */
135
+ }
136
+
137
+
138
  /* Theme Toggle */
139
  .theme-toggle {
140
  background: none;
 
154
  /* Main Content */
155
  .main-content {
156
  flex: 1;
157
+ padding: 2rem 0; /* Maintain padding for content area */
158
+ /* Removed container adjustments, rely on bootstrap's container inside */
159
  }
160
 
161
+
162
+ /* --- NEW: Sidebar Styles --- */
163
+
164
+ /* Sidebar Overlay */
165
+ .sidebar-overlay {
166
+ position: fixed;
167
+ top: 0;
168
+ left: 0;
169
+ width: 100%;
170
+ height: 100%;
171
+ background-color: rgba(0, 0, 0, 0.5); /* Semi-transparent black */
172
+ z-index: 1040; /* Below sidebars, above content */
173
+ opacity: 0;
174
+ visibility: hidden;
175
+ transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
176
+ }
177
+
178
+ .sidebar-overlay.active {
179
+ opacity: 1;
180
+ visibility: visible;
181
+ }
182
+
183
+ /* Sidebar Base Styles */
184
+ .sidebar {
185
+ position: fixed;
186
+ top: 0;
187
+ left: 0; /* Both sidebars originate from the left */
188
+ width: 300px; /* Default width, adjust as needed */
189
+ height: 100%;
190
+ background-color: var(--sidebar-bg); /* Use theme variable */
191
+ box-shadow: var(--shadow);
192
+ z-index: 1050; /* Above overlay */
193
+ display: flex;
194
+ flex-direction: column;
195
+ transform: translateX(-100%); /* Initially hidden off-screen to the left */
196
+ transition: transform 0.3s ease-in-out;
197
+ border-right: 1px solid var(--sidebar-border); /* Use theme variable */
198
+ }
199
+
200
+ .sidebar.active {
201
+ transform: translateX(0); /* Slide in from the left */
202
+ }
203
+
204
+ /* Sidebar Header */
205
+ .sidebar-header {
206
+ display: flex;
207
+ justify-content: space-between;
208
+ align-items: center;
209
+ padding: 1rem 1.5rem;
210
+ border-bottom: 1px solid var(--sidebar-border); /* Use theme variable */
211
+ background-color: var(--header-bg); /* Optional: Match header background */
212
+ flex-shrink: 0; /* Prevent header from shrinking */
213
+ }
214
+
215
+ .sidebar-header h4 {
216
+ margin: 0;
217
+ font-size: 1.2rem;
218
+ font-weight: 600;
219
+ flex-grow: 1; /* Allow title to take space */
220
+ margin-left: 10px; /* Space after back button if present */
221
+ overflow: hidden; /* Prevent long titles from breaking layout */
222
+ white-space: nowrap;
223
+ text-overflow: ellipsis;
224
+ }
225
+
226
+ /* Sidebar Back and Close Buttons */
227
+ .sidebar-back-button,
228
+ .close-sidebar-btn {
229
+ background: none;
230
+ border: none;
231
+ font-size: 1.5rem;
232
+ color: var(--muted-color);
233
+ cursor: pointer;
234
+ padding: 0.25rem;
235
+ line-height: 1;
236
+ transition: color 0.2s ease;
237
+ }
238
+ .sidebar-back-button:hover,
239
+ .close-sidebar-btn:hover {
240
+ color: var(--text-color);
241
+ }
242
+
243
+ /* Sidebar List (Matières & Sous-catégories) */
244
+ .sidebar-list {
245
+ list-style: none;
246
+ padding: 0;
247
+ margin: 0;
248
+ flex-grow: 1; /* Take remaining vertical space */
249
+ overflow-y: auto; /* Enable vertical scrolling for long lists */
250
+ overflow-x: hidden; /* Prevent horizontal scrollbars */
251
+ }
252
+
253
+ .sidebar-list li {
254
+ padding: 0.8rem 1.5rem;
255
+ cursor: pointer;
256
+ border-bottom: 1px solid var(--sidebar-border); /* Use theme variable */
257
+ transition: background-color 0.2s ease;
258
+ display: flex;
259
+ justify-content: space-between; /* Push icon to the right */
260
+ align-items: center;
261
+ white-space: nowrap; /* Prevent text wrapping */
262
+ }
263
+
264
+ .sidebar-list li:last-child {
265
+ border-bottom: none; /* Remove border from last item */
266
+ }
267
+
268
+ .sidebar-list li:hover {
269
+ background-color: var(--sidebar-hover-bg); /* Use theme variable */
270
+ }
271
+
272
+ .sidebar-list li i.fa-chevron-right,
273
+ .sidebar-list li i.fa-arrow-left { /* Style for icons inside list items */
274
+ color: var(--muted-color);
275
+ font-size: 0.9em;
276
+ margin-left: 0.5rem; /* Space between text and icon */
277
+ }
278
+
279
+ /* Optional: Style for active/selected item in sidebar */
280
+ .sidebar-list li.active {
281
+ background-color: var(--primary-color);
282
+ color: white;
283
+ }
284
+ .sidebar-list li.active i { /* Make icon white too */
285
+ color: white;
286
+ }
287
+
288
+
289
+ /* --- End of Sidebar Styles --- */
290
+
291
+
292
+ /* NEW: Initial Instructions Area */
293
+ .initial-instructions {
294
+ background-color: var(--card-bg);
295
+ padding: 2rem;
296
+ border-radius: 8px;
297
+ box-shadow: var(--shadow);
298
+ border: 1px solid var(--border-color);
299
+ margin-top: 2rem; /* Adjust as needed */
300
+ text-align: center; /* Center content */
301
+ }
302
+
303
+ /* --- Original Styles (with minor adjustments if needed) --- */
304
+
305
+ /* Flash Messages Container */
306
+ .flash-container {
307
+ position: relative; /* Keep in normal flow */
308
+ z-index: 100; /* Below header but above main content */
309
+ }
310
+
311
+ /* Subject Selection Cards (Original - No longer used on index, but might be elsewhere) */
312
  .subject-card {
313
  background-color: var(--card-bg);
314
  border-radius: 8px;
 
339
  margin-bottom: 1rem;
340
  }
341
 
342
+ /* Content Blocks Styling (Used in Content Display Section) */
343
  .content-block {
344
  background-color: var(--block-bg);
345
  border-radius: 8px;
 
348
  box-shadow: var(--shadow);
349
  border: var(--block-border);
350
  transition: box-shadow 0.3s ease;
351
+ overflow: hidden; /* Prevent content spill */
352
+ /* border-left: 4px solid transparent; -> Now handled dynamically by JS or remove if not needed */
353
  }
354
 
355
  .content-block:hover {
 
363
  margin-bottom: 1rem;
364
  color: var(--text-color);
365
  padding-bottom: 0.5rem;
366
+ border-bottom: 2px solid var(--primary-color); /* Default color, JS might override */
367
  }
368
 
369
  .content-block-content {
 
378
  align-items: flex-start;
379
  }
380
 
381
+ .block-with-image.image-left { flex-direction: row; }
382
+ .block-with-image.image-right { flex-direction: row-reverse; }
383
+ .block-with-image.image-top { flex-direction: column; }
 
 
 
 
 
 
 
 
384
 
385
  .block-image-container {
386
  flex: 0 0 auto;
387
+ max-width: 30%; /* Default max width for side images */
388
+ margin-bottom: 1rem; /* Spacing below image if wrapped */
389
  }
390
 
391
  .block-with-image.image-top .block-image-container {
392
+ max-width: 100%; /* Full width for top images */
393
  margin-bottom: 1.5rem;
394
  }
395
 
 
398
  height: auto;
399
  border-radius: 6px;
400
  box-shadow: var(--shadow);
401
+ display: block; /* Prevent extra space below image */
402
  }
403
 
404
  .block-content-container {
405
+ flex: 1; /* Take remaining space */
406
+ min-width: 60%; /* Ensure text has enough space on wider screens */
 
 
 
 
 
 
 
 
 
 
407
  }
408
 
409
+ /* Category Selection UI (Original - No longer used on index) */
410
  .selection-container {
411
  background-color: var(--card-bg);
412
  border-radius: 8px;
 
446
  color: white;
447
  }
448
 
449
+ /* Content Viewer (Container for title and blocks) */
450
  .content-viewer {
451
  background-color: var(--card-bg);
452
  border-radius: 8px;
 
460
  margin-top: 0;
461
  margin-bottom: 1.5rem;
462
  padding-bottom: 0.5rem;
463
+ border-bottom: 2px solid var(--primary-color); /* Default color, JS might override */
464
  }
465
 
466
  /* Buttons */
 
483
  .btn-primary {
484
  background-color: var(--btn-primary-bg);
485
  color: var(--btn-primary-text);
486
+ border-color: var(--btn-primary-bg); /* Added for consistency */
487
  }
488
 
489
  .btn-primary:hover {
490
+ background-color: #2980b9; /* Darken primary */
491
+ border-color: #2980b9;
492
  color: white;
493
  }
494
 
495
  .btn-secondary {
496
  background-color: var(--btn-secondary-bg);
497
  color: var(--btn-secondary-text);
498
+ border-color: var(--btn-secondary-bg); /* Added for consistency */
499
  }
500
 
501
  .btn-secondary:hover {
502
+ background-color: #5a6268; /* Darken secondary */
503
+ border-color: #5a6268;
504
  color: white;
505
  }
506
 
 
536
  background-color: var(--footer-bg);
537
  padding: 2rem 0;
538
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
539
+ margin-top: auto; /* Push footer to bottom */
540
+ flex-shrink: 0; /* Prevent footer from shrinking */
541
  }
542
 
543
  .footer-content {
544
  display: flex;
545
  justify-content: space-between;
546
  flex-wrap: wrap;
547
+ gap: 1rem; /* Add gap for wrapping */
548
  }
549
 
550
  .footer-links {
551
  list-style: none;
552
  padding: 0;
553
+ margin: 0; /* Reset margin */
554
  display: flex;
555
+ flex-wrap: wrap; /* Allow links to wrap */
556
  gap: 1.5rem;
557
  }
558
 
559
  .feedback-form {
560
  margin-top: 1rem;
561
+ max-width: 400px; /* Limit width of feedback form */
562
  }
563
 
564
  .feedback-title {
 
566
  margin-bottom: 0.75rem;
567
  }
568
 
569
+ /* Admin specific styles (Keep if used on other pages) */
570
+ .admin-container { /* ... Keep original ... */ }
571
+ .admin-title { /* ... Keep original ... */ }
572
+ .admin-sidebar { /* ... Keep original ... */ }
573
+ .admin-nav { /* ... Keep original ... */ }
574
+ .admin-nav-item { /* ... Keep original ... */ }
575
+ .admin-nav-link { /* ... Keep original ... */ }
576
+ .admin-nav-link i { /* ... Keep original ... */ }
577
+ .admin-card { /* ... Keep original ... */ }
578
+ .admin-card-title { /* ... Keep original ... */ }
579
+ .admin-stat { /* ... Keep original ... */ }
580
+
581
+ /* Editor styles (Keep if used on other pages) */
582
+ .editor-container { /* ... Keep original ... */ }
583
+ .block-editor { /* ... Keep original ... */ }
584
+ .block-editor-header { /* ... Keep original ... */ }
585
+ .block-editor-title { /* ... Keep original ... */ }
586
+ .block-editor-actions { /* ... Keep original ... */ }
587
+ .block-handle { /* ... Keep original ... */ }
588
+ .image-preview { /* ... Keep original ... */ }
589
+ .image-gallery { /* ... Keep original ... */ }
590
+ .gallery-item { /* ... Keep original ... */ }
591
+ .gallery-image { /* ... Keep original ... */ }
592
+ .gallery-image-select { /* ... Keep original ... */ }
593
+
594
+ /* Login screen (Keep if used) */
595
+ .login-container { /* ... Keep original ... */ }
596
+ .login-logo { /* ... Keep original ... */ }
597
+ .login-title { /* ... Keep original ... */ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
598
 
599
+ /* Responsive design adjustments */
600
+ @media (max-width: 992px) {
601
+ /* No change needed here if using Bootstrap's container correctly */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
602
  }
603
 
604
+ @media (max-width: 768px) {
605
+ /* Content Block Images: Stack vertically */
606
+ .block-with-image {
607
+ flex-direction: column !important; /* Force column layout */
608
+ }
609
+ .block-image-container {
610
+ max-width: 100%; /* Image takes full width */
611
+ margin-bottom: 1.5rem; /* Space below image */
612
+ }
613
+ .block-content-container {
614
+ min-width: 100%; /* Text takes full width */
615
+ }
616
 
617
+ /* Sidebar width adjustment */
618
+ .sidebar {
619
+ width: 85%; /* Make sidebar wider on mobile */
620
+ max-width: 320px; /* Optional: Set a max width */
621
+ }
622
 
623
+ /* Optional: Adjust header layout on smaller screens */
624
+ .site-title {
625
+ font-size: 1.5rem; /* Slightly smaller title */
626
+ text-align: left; /* Align title next to burger */
627
+ margin-left: 0.5rem; /* Adjust spacing */
628
+ }
629
 
630
+ .header-actions {
631
+ margin-left: auto; /* Push actions to the right */
 
 
 
 
632
  }
633
  }
634
 
635
+
636
  @media (max-width: 576px) {
637
+ .subject-card { /* Style for cards if used elsewhere */
638
  padding: 1rem;
639
  }
640
+
641
  .content-viewer {
642
+ padding: 1.5rem; /* Less padding inside content area */
643
  }
644
+
645
  .admin-container {
646
  padding: 1.5rem;
647
  }
648
+
649
  .content-title {
650
+ font-size: 1.6rem; /* Smaller main title */
651
+ }
652
+
653
+ .footer-content {
654
+ flex-direction: column; /* Stack footer sections */
655
+ align-items: center;
656
+ text-align: center;
657
+ }
658
+ .footer-links {
659
+ justify-content: center; /* Center footer links */
660
+ margin-top: 0.5rem;
661
+ }
662
+ .feedback-form {
663
+ width: 100%; /* Full width feedback form */
664
+ margin-top: 1.5rem;
665
  }
666
  }
667
 
668
+ /* Animation keyframes (Keep original) */
669
  @keyframes fadeIn {
670
  from { opacity: 0; }
671
  to { opacity: 1; }
672
  }
673
 
674
  .fade-in {
675
+ animation: fadeIn 0.5s ease-in forwards; /* Added forwards to keep state */
676
  }
677
 
678
  @keyframes slideInUp {
 
687
  }
688
 
689
  .slide-in-up {
690
+ animation: slideInUp 0.5s ease-out forwards; /* Added forwards */
 
 
 
 
 
691
  }
692
 
693
+ /* Utility classes (Keep original) */
694
+ .text-center { text-align: center; }
695
+ .mb-1 { margin-bottom: 0.5rem !important; }
696
+ .mb-2 { margin-bottom: 1rem !important; }
697
+ .mb-3 { margin-bottom: 1.5rem !important; }
698
+ .mb-4 { margin-bottom: 2rem !important; }
699
+ .mt-1 { margin-top: 0.5rem !important; }
700
+ .mt-2 { margin-top: 1rem !important; }
701
+ .mt-3 { margin-top: 1.5rem !important; }
702
+ .mt-4 { margin-top: 2rem !important; }
703
+ .ms-2 { margin-left: 0.5rem !important; } /* Bootstrap utility */
704
+ .float-end { float: right !important; } /* Bootstrap utility */
705
+ .d-none { display: none !important; } /* Bootstrap utility */
706
 
 
 
 
 
707
 
708
+ /* Alert Styles (Keep original) */
709
  .alert {
710
  padding: 1rem;
711
  margin-bottom: 1rem;
712
  border-radius: 4px;
713
+ border: 1px solid transparent; /* Base border */
714
+ }
715
+
716
+ .alert-dismissible .btn-close {
717
+ padding: 1.25rem 1rem; /* Adjust close button padding */
718
  }
719
 
720
  .alert-success {
721
+ color: #0f5132;
722
+ background-color: #d1e7dd;
723
+ border-color: #badbcc;
724
+ }
725
+ [data-theme="dark"] .alert-success {
726
+ color: #75b798;
727
+ background-color: #192c23;
728
+ border-color: #254134;
729
  }
730
 
731
  .alert-danger {
732
+ color: #842029;
733
+ background-color: #f8d7da;
734
+ border-color: #f5c2c7;
735
+ }
736
+ [data-theme="dark"] .alert-danger {
737
+ color: #ea868f;
738
+ background-color: #341a1d;
739
+ border-color: #50272c;
740
  }
741
 
742
  .alert-warning {
743
+ color: #664d03;
744
+ background-color: #fff3cd;
745
+ border-color: #ffecb5;
746
+ }
747
+ [data-theme="dark"] .alert-warning {
748
+ color: #ffda6a;
749
+ background-color: #33270a;
750
+ border-color: #4d3b0f;
751
  }
752
 
753
  .alert-info {
754
+ color: #055160;
755
+ background-color: #cff4fc;
756
+ border-color: #b6effb;
757
+ }
758
+ [data-theme="dark"] .alert-info {
759
+ color: #6edff6;
760
+ background-color: #0f2d36;
761
+ border-color: #164350;
762
+ }