@howssatoshi/quantumcss 1.7.7 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -48,7 +48,6 @@
48
48
  background-color: rgb(255 255 255 / 10%);
49
49
  }
50
50
 
51
- body.light-mode .btn-secondary,
52
51
  html[data-theme="light"] .btn-secondary {
53
52
  background-color: rgb(0 0 0 / 3%);
54
53
  color: #1e293b !important;
@@ -91,19 +90,29 @@ html[data-theme="light"] .btn-secondary {
91
90
  font-size: 1.25rem;
92
91
  }
93
92
 
93
+ /* Glass Utility */
94
+ .glass {
95
+ background: var(--q-glass-bg);
96
+ border: 1px solid var(--q-glass-border);
97
+ backdrop-filter: var(--q-glass-blur);
98
+ -webkit-backdrop-filter: var(--q-glass-blur);
99
+ border-radius: var(--q-radius-xl);
100
+ }
101
+
94
102
  /* Card Component */
95
103
  .card {
96
- background-color: white;
97
- color: #1e293b;
104
+ background-color: var(--q-card-bg);
105
+ color: var(--q-text-primary);
106
+ border: 1px solid var(--q-card-border);
98
107
  border-radius: var(--q-radius-lg);
99
108
  box-shadow: var(--q-shadow-md);
100
109
  overflow: hidden;
101
110
  transition: all var(--q-duration-200) var(--q-ease-in-out);
102
111
  }
103
112
 
104
- body.light-mode .card {
105
- background-color: white;
106
- color: #1e293b;
113
+ html[data-theme="light"] .card {
114
+ background-color: var(--q-light-card-bg, white);
115
+ color: var(--q-light-text, #1e293b);
107
116
  }
108
117
 
109
118
  .card:hover {
@@ -111,9 +120,28 @@ body.light-mode .card {
111
120
  transform: translateY(-2px);
112
121
  }
113
122
 
123
+ .card-premium {
124
+ background: var(--q-color-surface);
125
+ border: 1px solid var(--q-color-border);
126
+ border-radius: var(--q-radius-2xl);
127
+ padding: 2.5rem;
128
+ backdrop-filter: blur(24px);
129
+ -webkit-backdrop-filter: blur(24px);
130
+ color: var(--q-color-text);
131
+ box-shadow: var(--q-card-shadow);
132
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
133
+ }
134
+
135
+ .card-premium:hover {
136
+ transform: translateY(-8px) scale(1.02);
137
+ background-color: color-mix(in srgb, var(--q-color-surface), white 5%);
138
+ box-shadow: 0 30px 60px -12px rgb(0 0 0 / 50%);
139
+ border-color: var(--q-color-starlight-blue);
140
+ }
141
+
114
142
  .card-header {
115
143
  padding: var(--q-space-6);
116
- border-bottom: 1px solid #e5e7eb;
144
+ border-bottom: 1px solid var(--q-glass-border);
117
145
  }
118
146
 
119
147
  .card-body {
@@ -122,12 +150,12 @@ body.light-mode .card {
122
150
 
123
151
  .card-footer {
124
152
  padding: var(--q-space-6);
125
- border-top: 1px solid #e5e7eb;
126
- background-color: #f9fafb;
127
- color: #1e293b;
153
+ border-top: 1px solid var(--q-glass-border);
154
+ background-color: var(--q-glass-bg);
155
+ color: var(--q-text-secondary);
128
156
  }
129
157
 
130
- body.light-mode .card-footer {
158
+ html[data-theme="light"] .card-footer {
131
159
  background-color: #f9fafb;
132
160
  color: #1e293b;
133
161
  }
@@ -145,7 +173,7 @@ body.light-mode .card-footer {
145
173
  transition: all var(--q-duration-150) var(--q-ease-in-out);
146
174
  }
147
175
 
148
- body.light-mode .input {
176
+ html[data-theme="light"] .input {
149
177
  background-color: white;
150
178
  color: #1e293b;
151
179
  }
@@ -191,7 +219,7 @@ input[type="date"]::-webkit-calendar-picker-indicator {
191
219
  cursor: not-allowed;
192
220
  }
193
221
 
194
- body.light-mode .input:disabled {
222
+ html[data-theme="light"] .input:disabled {
195
223
  background-color: #f3f4f6;
196
224
  color: #6b7280;
197
225
  }
@@ -307,8 +335,14 @@ html[data-theme="light"] .badge-error {
307
335
  }
308
336
 
309
337
  .alert-info {
310
- background-color: #dbeafe;
311
- border-color: #60a5fa;
338
+ background-color: rgb(59 130 246 / 15%);
339
+ border-color: rgb(59 130 246 / 30%);
340
+ color: #60a5fa;
341
+ }
342
+
343
+ html[data-theme="light"] .alert-info {
344
+ background-color: rgb(59 130 246 / 10%);
345
+ border-color: rgb(59 130 246 / 20%);
312
346
  color: #1e40af;
313
347
  }
314
348
 
@@ -333,7 +367,7 @@ html[data-theme="light"] .badge-error {
333
367
  overflow-y: auto;
334
368
  }
335
369
 
336
- body.light-mode .modal-content {
370
+ html[data-theme="light"] .modal-content {
337
371
  background-color: white;
338
372
  color: #1e293b;
339
373
  }
@@ -341,9 +375,9 @@ body.light-mode .modal-content {
341
375
  /* Loading Spinner */
342
376
  .spinner {
343
377
  display: inline-block;
344
- width: 1.5rem;
345
- height: 1.5rem;
346
- border: 2px solid rgb(255 255 255 / 10%);
378
+ width: 2.5rem;
379
+ height: 2.5rem;
380
+ border: 4px solid color-mix(in srgb, var(--q-color-text), transparent 85%);
347
381
  border-top-color: var(--q-color-primary);
348
382
  border-radius: 50%;
349
383
  animation: spin 1s linear infinite;
@@ -355,9 +389,13 @@ body.light-mode .modal-content {
355
389
 
356
390
  /* Skeleton Loading */
357
391
  .skeleton {
358
- background: linear-gradient(90deg, rgb(255 255 255 / 5%) 25%, rgb(255 255 255 / 10%) 50%, rgb(255 255 255 / 5%) 75%);
392
+ background: linear-gradient(90deg,
393
+ var(--q-skeleton-bg) 25%,
394
+ var(--q-skeleton-shimmer) 50%,
395
+ var(--q-skeleton-bg) 75%
396
+ );
359
397
  background-size: 200% 100%;
360
- animation: shimmer 2s infinite;
398
+ animation: shimmer 2s infinite linear;
361
399
  border-radius: var(--q-radius-md);
362
400
  }
363
401
 
@@ -366,11 +404,15 @@ body.light-mode .modal-content {
366
404
  100% { background-position: -200% 0; }
367
405
  }
368
406
 
369
- body.light-mode .skeleton {
370
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
371
- background-size: 200% 100%;
407
+ html[data-theme="light"] .skeleton {
408
+ background: linear-gradient(90deg,
409
+ var(--q-skeleton-bg) 25%,
410
+ var(--q-skeleton-shimmer) 50%,
411
+ var(--q-skeleton-bg) 75%
412
+ );
372
413
  }
373
414
 
415
+
374
416
  /* Tooltip Component */
375
417
  .tooltip {
376
418
  position: relative;
@@ -422,7 +464,7 @@ body.light-mode .skeleton {
422
464
  transition: all var(--q-duration-150) var(--q-ease-in-out);
423
465
  }
424
466
 
425
- body.light-mode .dropdown-content {
467
+ html[data-theme="light"] .dropdown-content {
426
468
  background-color: white;
427
469
  color: #1e293b;
428
470
  }
@@ -450,27 +492,29 @@ body.light-mode .dropdown-content {
450
492
  color: #1e293b;
451
493
  }
452
494
 
453
- body.light-mode .dropdown-item {
495
+ html[data-theme="light"] .dropdown-item {
454
496
  color: #1e293b;
455
497
  }
456
498
 
457
- body.light-mode .dropdown-item:hover {
499
+ html[data-theme="light"] .dropdown-item:hover {
458
500
  background-color: #f3f4f6;
459
501
  color: #1e293b;
460
502
  }
461
503
 
462
504
  /* Accordion Component */
463
505
  .accordion-item {
464
- border: 1px solid #e5e7eb;
506
+ border: 1px solid var(--q-card-border);
465
507
  border-radius: var(--q-radius-md);
466
508
  margin-bottom: var(--q-space-2);
467
509
  overflow: hidden;
468
510
  }
469
511
 
470
512
  .accordion-header {
471
- padding: var(--q-space-4);
472
- background-color: #f9fafb;
473
- color: #1e293b;
513
+ padding: var(--q-space-3) var(--q-space-4);
514
+ font-weight: 600;
515
+ background-color: rgb(255 255 255 / 5%);
516
+ border-bottom: 1px solid rgb(255 255 255 / 10%);
517
+ color: var(--q-text-primary);
474
518
  cursor: pointer;
475
519
  display: flex;
476
520
  justify-content: space-between;
@@ -479,36 +523,42 @@ body.light-mode .dropdown-item:hover {
479
523
  }
480
524
 
481
525
  .accordion-header:hover {
482
- background-color: #f3f4f6;
483
- color: #1e293b;
526
+ background-color: rgb(255 255 255 / 8%);
527
+ color: var(--q-text-primary);
484
528
  }
485
529
 
486
530
  .accordion-content {
487
- padding: var(--q-space-4);
488
- background-color: white;
489
- color: #1e293b;
531
+ padding: 0 var(--q-space-4);
532
+ background-color: var(--q-card-bg);
533
+ color: var(--q-text-primary);
490
534
  max-height: 0;
491
535
  overflow: hidden;
492
- transition: max-height var(--q-duration-300) var(--q-ease-in-out);
536
+ transition: max-height var(--q-duration-300) var(--q-ease-in-out), padding var(--q-duration-300) var(--q-ease-in-out);
493
537
  }
494
538
 
495
- body.light-mode .accordion-header {
496
- background-color: #f9fafb;
497
- color: #1e293b;
539
+ html[data-theme="light"] .accordion-header {
540
+ background-color: #f8fafc;
541
+ border-bottom-color: #e2e8f0;
542
+ color: var(--q-light-text);
498
543
  }
499
544
 
500
- body.light-mode .accordion-header:hover {
501
- background-color: #f3f4f6;
502
- color: #1e293b;
545
+ html[data-theme="light"] .accordion-header:hover {
546
+ background-color: #f1f5f9;
503
547
  }
504
548
 
505
- body.light-mode .accordion-content {
506
- background-color: white;
507
- color: #1e293b;
549
+ html[data-theme="light"] .accordion-header:hover {
550
+ background-color: color-mix(in srgb, var(--q-color-primary), transparent 92%);
551
+ color: var(--q-light-text);
552
+ }
553
+
554
+ html[data-theme="light"] .accordion-content {
555
+ background-color: var(--q-light-card-bg);
556
+ color: var(--q-light-text);
508
557
  }
509
558
 
510
559
  .accordion-item.active .accordion-content {
511
560
  max-height: 500px;
561
+ padding: var(--q-space-4);
512
562
  }
513
563
 
514
564
  .accordion-item.active .accordion-icon {
@@ -546,20 +596,20 @@ body.light-mode .accordion-content {
546
596
  color: var(--q-color-starlight-blue);
547
597
  }
548
598
 
549
- body.light-mode .tab-list {
599
+ html[data-theme="light"] .tab-list {
550
600
  border-bottom-color: #e2e8f0;
551
601
  }
552
602
 
553
- body.light-mode .tab-button {
603
+ html[data-theme="light"] .tab-button {
554
604
  color: #64748b;
555
605
  }
556
606
 
557
- body.light-mode .tab-button:hover {
607
+ html[data-theme="light"] .tab-button:hover {
558
608
  background-color: #f1f5f9;
559
609
  color: #0f172a;
560
610
  }
561
611
 
562
- body.light-mode .tab-button.active {
612
+ html[data-theme="light"] .tab-button.active {
563
613
  border-bottom-color: var(--q-color-primary);
564
614
  color: var(--q-color-primary);
565
615
  }
@@ -700,7 +750,7 @@ body.light-mode .tab-button.active {
700
750
  border-radius: 4px;
701
751
  }
702
752
 
703
- body.light-mode .table-wrapper::-webkit-scrollbar-track {
753
+ html[data-theme="light"] .table-wrapper::-webkit-scrollbar-track {
704
754
  background: rgb(0 0 0 / 5%);
705
755
  }
706
756
 
@@ -731,18 +781,18 @@ body.light-mode .table-wrapper::-webkit-scrollbar-track {
731
781
  }
732
782
 
733
783
  /* Light Mode Table Styles */
734
- body.light-mode .table th {
784
+ html[data-theme="light"] .table th {
735
785
  background-color: #f8fafc;
736
786
  border-bottom-color: #e2e8f0;
737
787
  color: #0f172a;
738
788
  }
739
789
 
740
- body.light-mode .table td {
790
+ html[data-theme="light"] .table td {
741
791
  border-bottom-color: #e2e8f0;
742
792
  color: #334155;
743
793
  }
744
794
 
745
- body.light-mode .table tbody tr:hover {
795
+ html[data-theme="light"] .table tbody tr:hover {
746
796
  background-color: #f1f5f9;
747
797
  }
748
798
 
@@ -823,12 +873,12 @@ body.light-mode .table tbody tr:hover {
823
873
  }
824
874
 
825
875
  /* Light mode overrides for layout */
826
- body.light-mode .sidebar {
876
+ html[data-theme="light"] .sidebar {
827
877
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
828
878
  border-right-color: #e2e8f0;
829
879
  }
830
880
 
831
- body.light-mode .top-nav {
881
+ html[data-theme="light"] .top-nav {
832
882
  background: #ffffff;
833
883
  border-color: #e2e8f0;
834
884
  }
@@ -936,7 +986,7 @@ body.light-mode .top-nav {
936
986
  border-radius: 2px;
937
987
  }
938
988
 
939
- body.light-mode .sidebar::-webkit-scrollbar-thumb {
989
+ html[data-theme="light"] .sidebar::-webkit-scrollbar-thumb {
940
990
  background: #cbd5e1;
941
991
  }
942
992
 
@@ -952,12 +1002,12 @@ body.light-mode .sidebar::-webkit-scrollbar-thumb {
952
1002
  }
953
1003
 
954
1004
  /* Light mode overrides for navigation */
955
- body.light-mode .nav-item:hover {
1005
+ html[data-theme="light"] .nav-item:hover {
956
1006
  background: #f1f5f9;
957
1007
  color: #0f172a;
958
1008
  }
959
1009
 
960
- body.light-mode .nav-section-title {
1010
+ html[data-theme="light"] .nav-section-title {
961
1011
  color: #64748b;
962
1012
  }
963
1013
 
@@ -1068,32 +1118,32 @@ body.light-mode .nav-section-title {
1068
1118
  }
1069
1119
 
1070
1120
  /* Light mode overrides for stat cards */
1071
- body.light-mode .stat-card {
1121
+ html[data-theme="light"] .stat-card {
1072
1122
  background: #ffffff;
1073
1123
  border-color: #e2e8f0;
1074
1124
  }
1075
1125
 
1076
- body.light-mode .stat-card:hover {
1126
+ html[data-theme="light"] .stat-card:hover {
1077
1127
  background: #f8fafc;
1078
1128
  }
1079
1129
 
1080
- body.light-mode .stat-icon-blue {
1130
+ html[data-theme="light"] .stat-icon-blue {
1081
1131
  background: rgba(59, 130, 246, 0.1);
1082
1132
  }
1083
1133
 
1084
- body.light-mode .stat-icon-green {
1134
+ html[data-theme="light"] .stat-icon-green {
1085
1135
  background: rgba(16, 185, 129, 0.1);
1086
1136
  }
1087
1137
 
1088
- body.light-mode .stat-icon-orange {
1138
+ html[data-theme="light"] .stat-icon-orange {
1089
1139
  background: rgba(249, 115, 22, 0.1);
1090
1140
  }
1091
1141
 
1092
- body.light-mode .stat-icon-purple {
1142
+ html[data-theme="light"] .stat-icon-purple {
1093
1143
  background: rgba(139, 92, 246, 0.1);
1094
1144
  }
1095
1145
 
1096
- body.light-mode .stat-icon-red {
1146
+ html[data-theme="light"] .stat-icon-red {
1097
1147
  background: rgba(239, 68, 68, 0.1);
1098
1148
  }
1099
1149
 
@@ -1189,15 +1239,15 @@ body.light-mode .stat-icon-red {
1189
1239
  }
1190
1240
 
1191
1241
  /* Light mode overrides for icon buttons */
1192
- body.light-mode .icon-btn,
1193
- body.light-mode .action-btn {
1242
+ html[data-theme="light"] .icon-btn,
1243
+ html[data-theme="light"] .action-btn {
1194
1244
  background: #f1f5f9;
1195
1245
  border-color: #e2e8f0;
1196
1246
  color: #64748b;
1197
1247
  }
1198
1248
 
1199
- body.light-mode .icon-btn:hover,
1200
- body.light-mode .action-btn:hover {
1249
+ html[data-theme="light"] .icon-btn:hover,
1250
+ html[data-theme="light"] .action-btn:hover {
1201
1251
  background: #e2e8f0;
1202
1252
  color: #0f172a;
1203
1253
  }
@@ -1241,22 +1291,22 @@ body.light-mode .action-btn:hover {
1241
1291
  display: none;
1242
1292
  }
1243
1293
 
1244
- body.light-mode .sun-icon {
1294
+ html[data-theme="light"] .sun-icon {
1245
1295
  display: inline;
1246
1296
  }
1247
1297
 
1248
- body.light-mode .moon-icon {
1298
+ html[data-theme="light"] .moon-icon {
1249
1299
  display: none;
1250
1300
  }
1251
1301
 
1252
1302
  /* Light mode overrides for theme toggle */
1253
- body.light-mode .theme-btn {
1303
+ html[data-theme="light"] .theme-btn {
1254
1304
  background: #f1f5f9;
1255
1305
  border-color: #e2e8f0;
1256
1306
  color: #475569;
1257
1307
  }
1258
1308
 
1259
- body.light-mode .theme-toggle-wrapper {
1309
+ html[data-theme="light"] .theme-toggle-wrapper {
1260
1310
  border-top-color: #e2e8f0;
1261
1311
  }
1262
1312
 
@@ -1337,11 +1387,11 @@ body.light-mode .theme-toggle-wrapper {
1337
1387
  }
1338
1388
 
1339
1389
  /* Light mode overrides for user info */
1340
- body.light-mode .user-name {
1390
+ html[data-theme="light"] .user-name {
1341
1391
  color: #0f172a;
1342
1392
  }
1343
1393
 
1344
- body.light-mode .user-email {
1394
+ html[data-theme="light"] .user-email {
1345
1395
  color: #64748b;
1346
1396
  }
1347
1397
 
@@ -1374,7 +1424,7 @@ body.light-mode .user-email {
1374
1424
  color: #34d399;
1375
1425
  }
1376
1426
 
1377
- .status-active__:before {
1427
+ .status-active::before {
1378
1428
  background: #34d399;
1379
1429
  }
1380
1430
 
@@ -1392,7 +1442,7 @@ body.light-mode .user-email {
1392
1442
  color: #f87171;
1393
1443
  }
1394
1444
 
1395
- .status-inactive__:before {
1445
+ .status-inactive::before {
1396
1446
  background: #f87171;
1397
1447
  }
1398
1448
 
@@ -1459,42 +1509,42 @@ body.light-mode .user-email {
1459
1509
  }
1460
1510
 
1461
1511
  /* Light mode overrides for badges */
1462
- body.light-mode .status-active {
1512
+ html[data-theme="light"] .status-active {
1463
1513
  background: rgba(16, 185, 129, 0.1);
1464
1514
  color: #059669;
1465
1515
  }
1466
1516
 
1467
- body.light-mode .status-pending {
1517
+ html[data-theme="light"] .status-pending {
1468
1518
  background: rgba(245, 158, 11, 0.1);
1469
1519
  color: #d97706;
1470
1520
  }
1471
1521
 
1472
- body.light-mode .status-inactive {
1522
+ html[data-theme="light"] .status-inactive {
1473
1523
  background: rgba(239, 68, 68, 0.1);
1474
1524
  color: #dc2626;
1475
1525
  }
1476
1526
 
1477
- body.light-mode .role-badge {
1527
+ html[data-theme="light"] .role-badge {
1478
1528
  background: #f1f5f9;
1479
1529
  color: #475569;
1480
1530
  }
1481
1531
 
1482
- body.light-mode .role-admin {
1532
+ html[data-theme="light"] .role-admin {
1483
1533
  background: rgba(0, 212, 255, 0.1);
1484
1534
  color: #0284c7;
1485
1535
  }
1486
1536
 
1487
- body.light-mode .label-work {
1537
+ html[data-theme="light"] .label-work {
1488
1538
  background: rgba(59, 130, 246, 0.1);
1489
1539
  color: #2563eb;
1490
1540
  }
1491
1541
 
1492
- body.light-mode .label-personal {
1542
+ html[data-theme="light"] .label-personal {
1493
1543
  background: rgba(16, 185, 129, 0.1);
1494
1544
  color: #059669;
1495
1545
  }
1496
1546
 
1497
- body.light-mode .label-important {
1547
+ html[data-theme="light"] .label-important {
1498
1548
  background: rgba(239, 68, 68, 0.1);
1499
1549
  color: #dc2626;
1500
1550
  }
@@ -1504,43 +1554,12 @@ body.light-mode .label-important {
1504
1554
  Search boxes with integrated icons
1505
1555
  ============================================================================ */
1506
1556
 
1507
- /* Search container */
1508
- .search-box {
1509
- position: relative;
1510
- }
1511
-
1512
- /* Search input */
1513
- .search-input {
1514
- width: 280px;
1515
- padding: 0.625rem 1rem 0.625rem 2.5rem;
1516
- background: rgba(255, 255, 255, 0.05);
1517
- border: 1px solid rgba(255, 255, 255, 0.1);
1518
- border-radius: 0.625rem;
1519
- color: var(--q-text-primary, #f1f5f9);
1520
- font-size: 0.875rem;
1521
- transition: all 0.2s ease;
1522
- }
1523
-
1524
- .search-input:focus {
1525
- outline: none;
1526
- border-color: rgba(0, 212, 255, 0.5);
1527
- background: rgba(255, 255, 255, 0.08);
1528
- }
1557
+ /* Search input base handled in starlight.css */
1529
1558
 
1530
1559
  .search-input::placeholder {
1531
1560
  color: var(--q-text-muted, #64748b);
1532
1561
  }
1533
1562
 
1534
- /* Search icon */
1535
- .search-icon {
1536
- position: absolute;
1537
- left: 0.875rem;
1538
- top: 50%;
1539
- transform: translateY(-50%);
1540
- color: var(--q-text-muted, #64748b);
1541
- pointer-events: none;
1542
- }
1543
-
1544
1563
  /* Full-width search input */
1545
1564
  .search-input-full {
1546
1565
  width: 100%;
@@ -1560,30 +1579,22 @@ body.light-mode .label-important {
1560
1579
  background-position: right 0.5rem center;
1561
1580
  background-repeat: no-repeat;
1562
1581
  background-size: 1.25rem;
1582
+ transition: all 0.2s ease;
1563
1583
  }
1564
1584
 
1565
1585
  .filter-select:focus {
1566
1586
  outline: none;
1567
- border-color: rgba(0, 212, 255, 0.5);
1587
+ box-shadow: 0 0 0 2px var(--q-color-starlight-deep), 0 0 0 4px var(--q-color-starlight-blue);
1588
+ border-color: var(--q-color-starlight-blue);
1568
1589
  }
1569
1590
 
1570
1591
  /* Light mode overrides for search */
1571
- body.light-mode .search-input,
1572
- body.light-mode .filter-select {
1592
+ html[data-theme="light"] .filter-select {
1573
1593
  background: #f1f5f9;
1574
1594
  border-color: #e2e8f0;
1575
1595
  color: #0f172a;
1576
1596
  }
1577
1597
 
1578
- body.light-mode .search-input:focus {
1579
- border-color: #3b82f6;
1580
- background: #ffffff;
1581
- }
1582
-
1583
- body.light-mode .search-input::placeholder {
1584
- color: #94a3b8;
1585
- }
1586
-
1587
1598
  /* ============================================================================
1588
1599
  STATUS INDICATORS
1589
1600
  Online status and notification dots
@@ -1648,9 +1659,9 @@ body.light-mode .search-input::placeholder {
1648
1659
  }
1649
1660
 
1650
1661
  /* Light mode overrides for indicators */
1651
- body.light-mode .online-indicator,
1652
- body.light-mode .notification-dot,
1653
- body.light-mode .notification-badge {
1662
+ html[data-theme="light"] .online-indicator,
1663
+ html[data-theme="light"] .notification-dot,
1664
+ html[data-theme="light"] .notification-badge {
1654
1665
  border-color: #ffffff;
1655
1666
  }
1656
1667
 
@@ -1697,18 +1708,18 @@ body.light-mode .notification-badge {
1697
1708
  }
1698
1709
 
1699
1710
  /* Light mode overrides for pagination */
1700
- body.light-mode .page-btn {
1711
+ html[data-theme="light"] .page-btn {
1701
1712
  background: #f1f5f9;
1702
1713
  border-color: #e2e8f0;
1703
1714
  color: #64748b;
1704
1715
  }
1705
1716
 
1706
- body.light-mode .page-btn:hover {
1717
+ html[data-theme="light"] .page-btn:hover {
1707
1718
  background: #e2e8f0;
1708
1719
  color: #0f172a;
1709
1720
  }
1710
1721
 
1711
- body.light-mode .page-btn.active {
1722
+ html[data-theme="light"] .page-btn.active {
1712
1723
  background: rgba(59, 130, 246, 0.1);
1713
1724
  border-color: rgba(59, 130, 246, 0.3);
1714
1725
  color: #2563eb;