@visns-studio/visns-components 5.15.30 → 5.15.32

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.
@@ -267,21 +267,21 @@
267
267
  margin: 0.5rem 0;
268
268
  font-size: 0.9rem;
269
269
  background: white;
270
- border-radius: var(--br);
270
+ border-radius: 8px;
271
271
  overflow: hidden;
272
- box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.1);
272
+ border: 1px solid rgba(var(--primary-rgb), 0.1);
273
273
  }
274
274
 
275
275
  .optionsTable thead {
276
- background: var(--primary-color);
277
- color: white;
276
+ background: rgba(var(--primary-rgb), 0.06);
277
+ color: var(--paragraph-color);
278
278
  }
279
279
 
280
280
  .optionsTable th,
281
281
  .optionsTable td {
282
282
  padding: 0.5rem 0.75rem;
283
283
  text-align: left;
284
- border-bottom: 1px solid rgba(var(--primary-rgb), 0.1);
284
+ border-bottom: 1px solid rgba(var(--primary-rgb), 0.08);
285
285
  vertical-align: middle;
286
286
  }
287
287
 
@@ -293,9 +293,10 @@
293
293
 
294
294
  .optionsTable th {
295
295
  font-weight: 600;
296
- font-size: 0.85rem;
296
+ font-size: 0.75rem;
297
297
  text-transform: uppercase;
298
298
  letter-spacing: 0.5px;
299
+ color: var(--primary-color);
299
300
  }
300
301
 
301
302
  .optionsTable tbody tr {
@@ -344,30 +345,42 @@
344
345
  }
345
346
 
346
347
  .tableActionBtn.add {
347
- background: var(--primary-color);
348
- color: white;
348
+ background: rgba(var(--primary-rgb), 0.08);
349
+ color: var(--primary-color);
350
+ border: 1px solid rgba(var(--primary-rgb), 0.2);
351
+ font-size: 0.75rem;
352
+ padding: 4px 10px;
353
+ min-height: 28px;
354
+ max-width: none;
355
+ width: auto;
356
+ flex-shrink: 0;
357
+ white-space: nowrap;
349
358
  }
350
359
 
351
360
  .tableActionBtn.add:hover {
352
- background: var(--secondary-color);
361
+ background: var(--primary-color);
362
+ color: white;
363
+ border-color: var(--primary-color);
353
364
  transform: translateY(-1px);
354
365
  }
355
366
 
356
367
  .tableActionBtn.delete {
357
- background: #dc3545;
358
- color: white;
368
+ background: rgba(220, 53, 69, 0.1);
369
+ color: #dc3545;
359
370
  padding: 0.2rem 0.4rem;
371
+ border: 1px solid rgba(220, 53, 69, 0.2);
360
372
  }
361
373
 
362
374
  .tableActionBtn.delete:hover {
363
- background: #c82333;
375
+ background: #dc3545;
376
+ color: white;
377
+ border-color: #dc3545;
364
378
  transform: translateY(-1px);
365
379
  }
366
380
 
367
381
  // Modal-specific overrides to prevent conflicts with form builder styles
368
382
  .modal .formItem,
369
383
  .modal .formItemFull {
370
- // Reset any form builder specific styles that might interfere
371
384
  min-height: auto;
372
385
 
373
386
  .fi__label {
@@ -378,9 +391,32 @@
378
391
  input,
379
392
  select,
380
393
  textarea {
381
- // Ensure modal form fields have proper styling
382
- min-height: 48px;
394
+ min-height: 44px;
383
395
  font-size: 0.9rem;
396
+ border-radius: 6px !important;
397
+ }
398
+ }
399
+
400
+ // Section headers inside modal should be subtle, not the builder preview style
401
+ .modal .gridtxt__header,
402
+ .modalFieldForm .gridtxt__header {
403
+ background: rgba(var(--primary-rgb), 0.05) !important;
404
+ color: var(--paragraph-color) !important;
405
+ border-left: 3px solid var(--primary-color);
406
+ border-radius: 0 6px 6px 0 !important;
407
+ text-align: left !important;
408
+ padding: 8px 12px 8px 14px !important;
409
+ font-size: 0.8rem !important;
410
+ margin: 0.25rem 0 !important;
411
+
412
+ span {
413
+ color: var(--primary-color) !important;
414
+ font-weight: 600 !important;
415
+ font-size: 0.8rem !important;
416
+ }
417
+
418
+ &::after {
419
+ display: none !important;
384
420
  }
385
421
  }
386
422
 
@@ -595,12 +631,12 @@ select:not(:placeholder-shown) + .fi__span {
595
631
  /* Modal class */
596
632
  .modalwrap {
597
633
  background: var(--tertiary-color);
598
- border-radius: 3px;
634
+ border-radius: 10px;
599
635
  overflow: visible;
600
- border-top-left-radius: var(--br);
601
- border-top-right-radius: var(--br);
602
636
  position: relative;
603
637
  z-index: 100;
638
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15),
639
+ 0 0 0 1px rgba(var(--primary-rgb), 0.06);
604
640
  }
605
641
 
606
642
  /* Modal backdrop to prevent background interactions */
@@ -629,12 +665,18 @@ select:not(:placeholder-shown) + .fi__span {
629
665
  .fieldInfo {
630
666
  opacity: 0 !important;
631
667
  visibility: hidden !important;
632
- z-index: 1 !important; // Much lower than modal backdrop
668
+ z-index: 1 !important;
669
+ }
670
+
671
+ // Hide field index badge when modal is open
672
+ .fieldIndex {
673
+ opacity: 0 !important;
674
+ visibility: hidden !important;
633
675
  }
634
676
 
635
677
  // Lower z-index of field controls when modal is open
636
678
  .fieldControls {
637
- z-index: 1 !important; // Much lower than modal backdrop
679
+ z-index: 1 !important;
638
680
  opacity: 0 !important;
639
681
  visibility: hidden !important;
640
682
  }
@@ -675,34 +717,41 @@ select:not(:placeholder-shown) + .fi__span {
675
717
  .modal__header {
676
718
  width: 100%;
677
719
  background: var(--primary-color);
678
- border: 2px solid rgba(var(--primary-rgb), 1.05);
679
- border-top-left-radius: var(--br);
680
- border-top-right-radius: var(--br);
720
+ border: none;
721
+ border-top-left-radius: 10px;
722
+ border-top-right-radius: 10px;
681
723
  box-sizing: border-box;
682
724
  }
683
725
 
684
726
  .modal__header h1 {
685
727
  color: var(--secondary-color);
686
728
  margin: 0;
687
- padding: 0.75em 0.75em;
688
- font-size: 1.15em;
729
+ padding: 0.85em 1.25em;
730
+ font-size: 1.05em;
731
+ font-weight: 600;
732
+ letter-spacing: 0.01em;
689
733
  }
690
734
 
691
735
  .modal__close {
692
736
  width: max-content;
693
737
  position: absolute;
694
- right: 5px;
695
- top: 5px;
738
+ right: 8px;
739
+ top: 8px;
696
740
  box-sizing: border-box;
697
- background: rgba(var(--primary-rgb), 1.08);
741
+ background: rgba(255, 255, 255, 0.15);
698
742
  cursor: pointer;
699
- padding: 8px 8px;
743
+ padding: 6px;
700
744
  margin: 0;
701
745
  outline: none;
702
746
  border: none;
703
- border-radius: var(--br);
747
+ border-radius: 6px;
704
748
  display: block;
705
749
  line-height: 1;
750
+ transition: background 0.2s ease;
751
+
752
+ &:hover {
753
+ background: rgba(255, 255, 255, 0.25);
754
+ }
706
755
  }
707
756
 
708
757
  .modal__close svg {
@@ -713,10 +762,8 @@ select:not(:placeholder-shown) + .fi__span {
713
762
  .modal__content {
714
763
  width: 100%;
715
764
  position: relative;
716
- padding: 0.25rem;
765
+ padding: 0.75rem;
717
766
  box-sizing: border-box;
718
- border-top-left-radius: var(--br);
719
- border-top-right-radius: var(--br);
720
767
  }
721
768
 
722
769
  .modal__content .btn {
@@ -753,19 +800,28 @@ select:not(:placeholder-shown) + .fi__span {
753
800
  border: 1px solid rgba(var(--secondary-color-rgb), 1.1);
754
801
  }
755
802
 
756
- /* Adding polActions style to the module.css */
803
+ /* Floating action buttons */
757
804
  .polActions {
758
805
  position: fixed;
759
806
  bottom: 20px;
760
807
  right: 20px;
761
808
  width: auto;
762
809
  z-index: 50;
810
+ display: flex;
811
+ gap: 8px;
812
+ background: rgba(255, 255, 255, 0.95);
813
+ padding: 10px 14px;
814
+ border-radius: 12px;
815
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12),
816
+ 0 0 0 1px rgba(var(--primary-rgb), 0.08);
817
+ backdrop-filter: blur(8px);
763
818
 
764
819
  button {
765
820
  display: block;
766
- float: left;
767
- padding: 0.65em 1em;
768
- margin: 0 0.25em;
821
+ padding: 0.6em 1.2em;
822
+ margin: 0;
823
+ font-weight: 600;
824
+ font-size: 0.9rem;
769
825
  }
770
826
  }
771
827
 
@@ -773,8 +829,21 @@ select:not(:placeholder-shown) + .fi__span {
773
829
  flex-basis: 100%;
774
830
  }
775
831
 
832
+ .lastItem {
833
+ display: flex;
834
+ justify-content: flex-end;
835
+ padding-top: 0.5rem;
836
+ border-top: 1px solid rgba(var(--primary-rgb), 0.08);
837
+ margin-top: 0.25rem;
838
+ }
839
+
776
840
  .lastItem .btn {
777
- width: 100%;
841
+ width: auto;
842
+ min-width: 120px;
843
+ padding: 0.6rem 1.5rem;
844
+ font-weight: 600;
845
+ font-size: 0.9rem;
846
+ border-radius: 8px;
778
847
  }
779
848
 
780
849
  .inputError {
@@ -1180,14 +1249,16 @@ select:not(:placeholder-shown) + .fi__span {
1180
1249
  /* Interactive Field Styles */
1181
1250
  .interactiveField {
1182
1251
  position: relative;
1183
- border: 2px solid transparent;
1252
+ border: 1px solid rgba(var(--primary-rgb), 0.1);
1184
1253
  border-radius: var(--br);
1185
1254
  transition: all 0.2s ease;
1186
1255
  display: flex;
1187
1256
  flex-direction: column;
1188
- min-height: 100px;
1257
+ min-height: 70px;
1189
1258
  height: 100%;
1190
- margin-top: 5px; // Reduced from 15px for better tooltip positioning
1259
+ margin-top: 4px;
1260
+ background: white;
1261
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
1191
1262
 
1192
1263
  // Ensure proper layout during sorting
1193
1264
  &.sortableHelper {
@@ -1197,10 +1268,15 @@ select:not(:placeholder-shown) + .fi__span {
1197
1268
  }
1198
1269
 
1199
1270
  &:hover:not(.sortableHelper) {
1200
- border-color: rgba(var(--primary-rgb), 0.3);
1201
- background-color: rgba(var(--primary-rgb), 0.02);
1271
+ border-color: rgba(var(--primary-rgb), 0.25);
1272
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.08);
1273
+ transform: translateY(-1px);
1274
+
1275
+ .dragHandle {
1276
+ opacity: 1;
1277
+ }
1202
1278
 
1203
- .fieldControls {
1279
+ .fieldActions {
1204
1280
  opacity: 1;
1205
1281
  }
1206
1282
  }
@@ -1220,9 +1296,9 @@ select:not(:placeholder-shown) + .fi__span {
1220
1296
  display: flex;
1221
1297
  justify-content: space-between;
1222
1298
  align-items: flex-start;
1223
- opacity: 0;
1299
+ opacity: 1;
1224
1300
  transition: opacity 0.2s ease;
1225
- z-index: 10; // Reduced significantly to stay below header
1301
+ z-index: 10;
1226
1302
  pointer-events: none;
1227
1303
 
1228
1304
  > * {
@@ -1230,45 +1306,36 @@ select:not(:placeholder-shown) + .fi__span {
1230
1306
  }
1231
1307
  }
1232
1308
 
1233
- // Field info is now separate from field controls and always visible
1309
+ // Field info pill - right-aligned, subtle
1234
1310
  .fieldInfo {
1235
1311
  position: absolute;
1236
- top: 8px; // Increased from 4px to provide more space for tooltip above
1237
- left: 50%;
1238
- transform: translateX(-50%);
1239
- background: rgba(
1240
- var(--primary-rgb),
1241
- 0.4
1242
- ); // Much more subtle - reduced from 0.85
1243
- color: white;
1244
- padding: 3px 10px; // Slightly smaller padding
1245
- border-radius: 10px; // Slightly smaller border radius
1246
- font-size: 0.7rem; // Smaller font size
1247
- font-weight: 400; // Lighter font weight - reduced from 500
1312
+ top: 7px;
1313
+ right: 8px;
1314
+ background: rgba(var(--primary-rgb), 0.08);
1315
+ color: var(--primary-color);
1316
+ padding: 2px 8px;
1317
+ border-radius: 4px;
1318
+ font-size: 0.65rem;
1319
+ font-weight: 500;
1248
1320
  white-space: nowrap;
1249
- box-shadow: 0 1px 4px rgba(var(--primary-rgb), 0.15); // Much softer shadow
1250
- z-index: 11; // Reduced significantly to stay below header
1321
+ z-index: 9;
1251
1322
  pointer-events: none;
1252
- opacity: 0.7; // More subtle - reduced from 1
1323
+ opacity: 0.8;
1253
1324
  transition: all 0.2s ease;
1254
- max-width: calc(100% - 120px); // Leave space for drag handle and actions
1325
+ max-width: calc(100% - 100px);
1255
1326
  overflow: hidden;
1256
1327
  text-overflow: ellipsis;
1257
1328
 
1258
- // Enhanced styling on hover - more prominent when needed
1329
+ // Hide on hover - tooltip provides details, actions need this space
1259
1330
  .interactiveField:hover & {
1260
- opacity: 1;
1261
- background: rgba(var(--primary-rgb), 0.85); // Full opacity on hover
1262
- box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.4);
1263
- transform: translateX(-50%) scale(1.05);
1264
- font-weight: 500; // Bolder on hover
1331
+ opacity: 0;
1332
+ pointer-events: none;
1265
1333
  }
1266
1334
 
1267
- // Responsive behavior for smaller fields
1268
1335
  @media (max-width: 768px) {
1269
- font-size: 0.65rem;
1270
- padding: 2px 8px;
1271
- max-width: calc(100% - 100px);
1336
+ font-size: 0.6rem;
1337
+ padding: 2px 6px;
1338
+ max-width: calc(100% - 80px);
1272
1339
  }
1273
1340
  }
1274
1341
 
@@ -1288,6 +1355,7 @@ select:not(:placeholder-shown) + .fi__span {
1288
1355
  box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.2);
1289
1356
  transition: all 0.2s ease;
1290
1357
  font-weight: bold;
1358
+ opacity: 0.55;
1291
1359
  display: flex !important;
1292
1360
  align-items: center;
1293
1361
  justify-content: center;
@@ -1314,11 +1382,13 @@ select:not(:placeholder-shown) + .fi__span {
1314
1382
  border-color: var(--primary-color);
1315
1383
  transform: scale(1.05);
1316
1384
  box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
1385
+ opacity: 1;
1317
1386
  }
1318
1387
 
1319
1388
  &:active {
1320
1389
  cursor: grabbing;
1321
1390
  transform: scale(0.95);
1391
+ opacity: 1;
1322
1392
  }
1323
1393
  }
1324
1394
 
@@ -1326,6 +1396,8 @@ select:not(:placeholder-shown) + .fi__span {
1326
1396
  display: flex;
1327
1397
  gap: 6px;
1328
1398
  align-items: center;
1399
+ opacity: 0;
1400
+ transition: opacity 0.2s ease;
1329
1401
  }
1330
1402
 
1331
1403
  .editIcon,
@@ -1381,50 +1453,30 @@ select:not(:placeholder-shown) + .fi__span {
1381
1453
  }
1382
1454
  }
1383
1455
 
1384
- /* Preview Field Styling - Visual distinction from regular sections */
1456
+ /* Preview Field Styling */
1385
1457
  .previewField {
1386
- background: linear-gradient(
1387
- 135deg,
1388
- rgba(var(--primary-rgb), 0.02),
1389
- rgba(var(--primary-rgb), 0.05)
1390
- );
1391
- border-left: 4px solid rgba(var(--primary-rgb), 0.3);
1458
+ background: white;
1459
+ border-left: 3px solid rgba(var(--primary-rgb), 0.2);
1392
1460
  position: relative;
1393
1461
 
1394
- &::before {
1395
- content: '';
1396
- position: absolute;
1397
- top: 0;
1398
- left: 0;
1399
- right: 0;
1400
- height: 2px;
1401
- background: linear-gradient(
1402
- 90deg,
1403
- rgba(var(--primary-rgb), 0.3),
1404
- rgba(var(--primary-rgb), 0.1),
1405
- rgba(var(--primary-rgb), 0.3)
1406
- );
1407
- }
1408
-
1409
1462
  &:hover {
1410
- background: linear-gradient(
1411
- 135deg,
1412
- rgba(var(--primary-rgb), 0.05),
1413
- rgba(var(--primary-rgb), 0.08)
1414
- );
1415
- border-left-color: rgba(var(--primary-rgb), 0.6);
1416
- box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.1);
1463
+ border-left-color: var(--primary-color);
1464
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.08);
1417
1465
  }
1418
1466
 
1419
1467
  // Override section styling when in preview mode
1420
1468
  .gridtxt__header {
1421
- background: linear-gradient(
1422
- 135deg,
1423
- rgba(var(--primary-rgb), 0.1),
1424
- rgba(var(--primary-rgb), 0.15)
1425
- );
1426
- border-left: 3px solid var(--primary-color);
1469
+ background: var(--primary-color);
1470
+ color: white;
1471
+ border-left: none;
1472
+ border-radius: 0;
1427
1473
  position: relative;
1474
+ text-align: left;
1475
+ padding: 10px 80px 10px 16px;
1476
+
1477
+ span {
1478
+ color: white;
1479
+ }
1428
1480
 
1429
1481
  &::after {
1430
1482
  content: 'PREVIEW';
@@ -1432,8 +1484,8 @@ select:not(:placeholder-shown) + .fi__span {
1432
1484
  right: 10px;
1433
1485
  top: 50%;
1434
1486
  transform: translateY(-50%);
1435
- font-size: 0.7rem;
1436
- color: rgba(var(--primary-rgb), 0.7);
1487
+ font-size: 0.65rem;
1488
+ color: rgba(255, 255, 255, 0.6);
1437
1489
  font-weight: 600;
1438
1490
  letter-spacing: 1px;
1439
1491
  }
@@ -1519,7 +1571,7 @@ select:not(:placeholder-shown) + .fi__span {
1519
1571
  .fieldContent {
1520
1572
  position: relative;
1521
1573
  z-index: 1;
1522
- padding-top: 45px; /* Reduced from 55px for better tooltip positioning */
1574
+ padding-top: 36px;
1523
1575
  flex-grow: 1;
1524
1576
  display: flex;
1525
1577
  flex-direction: column;
@@ -1542,13 +1594,14 @@ select:not(:placeholder-shown) + .fi__span {
1542
1594
  }
1543
1595
 
1544
1596
  .emptyState {
1545
- padding: 3rem;
1597
+ padding: 4rem 2rem;
1546
1598
  text-align: center;
1547
- color: rgba(var(--paragraph-color-rgb), 0.7);
1548
- font-size: 1rem;
1599
+ color: rgba(var(--paragraph-color-rgb), 0.5);
1600
+ font-size: 0.95rem;
1549
1601
  background: rgba(var(--primary-rgb), 0.02);
1602
+ border: 2px dashed rgba(var(--primary-rgb), 0.12);
1550
1603
  border-radius: var(--br);
1551
- margin: 1rem;
1604
+ margin: 1.5rem;
1552
1605
 
1553
1606
  p {
1554
1607
  margin: 0;
@@ -1777,11 +1830,442 @@ select:not(:placeholder-shown) + .fi__span {
1777
1830
  /* Ensure action tooltips take priority over field tooltips */
1778
1831
  .dragHandle,
1779
1832
  .editIcon,
1780
- .deleteIcon {
1833
+ .deleteIcon,
1834
+ .moveIcon,
1835
+ .collapseToggle {
1781
1836
  position: relative;
1782
1837
  z-index: 51;
1783
-
1838
+
1784
1839
  &:hover {
1785
1840
  z-index: 52;
1786
1841
  }
1787
1842
  }
1843
+
1844
+ // Field index badge - inline next to drag handle
1845
+ .fieldIndex {
1846
+ position: absolute;
1847
+ top: 9px;
1848
+ left: 38px;
1849
+ background: rgba(var(--primary-rgb), 0.1);
1850
+ color: var(--primary-color);
1851
+ padding: 2px 5px;
1852
+ border-radius: 4px;
1853
+ font-size: 0.6rem;
1854
+ font-weight: 600;
1855
+ z-index: 11;
1856
+ pointer-events: none;
1857
+ line-height: 1.2;
1858
+ letter-spacing: 0.02em;
1859
+ }
1860
+
1861
+ // Drag placeholder (shown where the original item was during drag)
1862
+ .dragPlaceholder {
1863
+ border: 2px dashed rgba(var(--primary-rgb), 0.3) !important;
1864
+ background: rgba(var(--primary-rgb), 0.05) !important;
1865
+ border-radius: var(--br);
1866
+ min-height: 64.2px;
1867
+ box-shadow: inset 0 2px 8px rgba(var(--primary-rgb), 0.06) !important;
1868
+ }
1869
+
1870
+ // Drag overlay item (the floating preview during drag)
1871
+ .dragOverlayItem {
1872
+ background: white;
1873
+ border: 2px solid var(--primary-color);
1874
+ border-radius: var(--br);
1875
+ box-shadow: 0 12px 30px rgba(0, 0, 0, 0.2);
1876
+ opacity: 0.92;
1877
+ transform: rotate(1.5deg);
1878
+ padding: 0.35em;
1879
+ pointer-events: none;
1880
+
1881
+ .fieldContent {
1882
+ padding-top: 10px;
1883
+ }
1884
+ }
1885
+
1886
+ // Collapsed field (hidden but stays in DOM for SortableContext)
1887
+ .collapsedField {
1888
+ display: none !important;
1889
+ }
1890
+
1891
+ // Section collapse toggle button
1892
+ .collapseToggle {
1893
+ padding: 4px;
1894
+ border-radius: 6px;
1895
+ background: white;
1896
+ border: 2px solid var(--primary-color);
1897
+ box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.2);
1898
+ cursor: pointer;
1899
+ transition: all 0.2s ease;
1900
+ display: flex !important;
1901
+ align-items: center;
1902
+ justify-content: center;
1903
+ min-width: 28px;
1904
+ min-height: 28px;
1905
+ color: var(--primary-color);
1906
+
1907
+ svg {
1908
+ display: block !important;
1909
+ width: 16px !important;
1910
+ height: 16px !important;
1911
+ stroke: currentColor !important;
1912
+ fill: none !important;
1913
+ }
1914
+
1915
+ &:hover {
1916
+ background: var(--primary-color);
1917
+ color: white;
1918
+ border-color: var(--primary-color);
1919
+ transform: scale(1.05);
1920
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
1921
+ }
1922
+ }
1923
+
1924
+ // Move-to-position icon
1925
+ .moveIcon {
1926
+ padding: 4px;
1927
+ border-radius: 6px;
1928
+ background: white;
1929
+ border: 2px solid var(--primary-color);
1930
+ box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.2);
1931
+ cursor: pointer;
1932
+ transition: all 0.2s ease;
1933
+ display: flex !important;
1934
+ align-items: center;
1935
+ justify-content: center;
1936
+ min-width: 28px;
1937
+ min-height: 28px;
1938
+ color: var(--primary-color) !important;
1939
+
1940
+ svg {
1941
+ display: block !important;
1942
+ width: 16px !important;
1943
+ height: 16px !important;
1944
+ stroke: currentColor !important;
1945
+ fill: none !important;
1946
+ }
1947
+
1948
+ &:hover {
1949
+ background: var(--primary-color);
1950
+ color: white !important;
1951
+ border-color: var(--primary-color);
1952
+ transform: scale(1.05);
1953
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
1954
+ }
1955
+ }
1956
+
1957
+ // Search bar
1958
+ .searchBar {
1959
+ display: flex;
1960
+ align-items: center;
1961
+ padding: 10px 16px;
1962
+ margin: 0;
1963
+ background: white;
1964
+ border-bottom: 1px solid rgba(var(--primary-rgb), 0.08);
1965
+ gap: 10px;
1966
+ }
1967
+
1968
+ .searchIcon {
1969
+ color: rgba(var(--paragraph-color-rgb), 0.5);
1970
+ flex-shrink: 0;
1971
+ }
1972
+
1973
+ .searchInput {
1974
+ flex: 1;
1975
+ border: 1px solid rgba(var(--primary-rgb), 0.15) !important;
1976
+ border-radius: var(--br) !important;
1977
+ padding: 6px 10px !important;
1978
+ font-size: 0.85rem !important;
1979
+ outline: none !important;
1980
+ background: white !important;
1981
+ min-height: auto !important;
1982
+
1983
+ &:focus {
1984
+ border-color: var(--primary-color) !important;
1985
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.1) !important;
1986
+ }
1987
+ }
1988
+
1989
+ .searchCount {
1990
+ font-size: 0.75rem;
1991
+ font-weight: 600;
1992
+ color: var(--primary-color);
1993
+ white-space: nowrap;
1994
+ padding: 3px 10px;
1995
+ background: rgba(var(--primary-rgb), 0.1);
1996
+ border-radius: 10px;
1997
+ }
1998
+
1999
+ .searchClear {
2000
+ background: none;
2001
+ border: none;
2002
+ cursor: pointer;
2003
+ padding: 4px;
2004
+ color: rgba(var(--paragraph-color-rgb), 0.5);
2005
+ display: flex;
2006
+ align-items: center;
2007
+ transition: color 0.2s ease;
2008
+
2009
+ &:hover {
2010
+ color: var(--primary-color);
2011
+ }
2012
+ }
2013
+
2014
+ // Move-to-position dialog overlay
2015
+ .moveToOverlay {
2016
+ position: fixed;
2017
+ top: 0;
2018
+ left: 0;
2019
+ right: 0;
2020
+ bottom: 0;
2021
+ background: rgba(0, 0, 0, 0.4);
2022
+ z-index: 200000;
2023
+ display: flex;
2024
+ align-items: center;
2025
+ justify-content: center;
2026
+ backdrop-filter: blur(2px);
2027
+ }
2028
+
2029
+ .moveToDialog {
2030
+ background: white;
2031
+ border-radius: 12px;
2032
+ padding: 1.25rem 1.5rem;
2033
+ width: 280px;
2034
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18),
2035
+ 0 0 0 1px rgba(var(--primary-rgb), 0.08);
2036
+
2037
+ h3 {
2038
+ margin: 0 0 0.25rem;
2039
+ font-size: 1rem;
2040
+ font-weight: 700;
2041
+ color: var(--primary-color);
2042
+ }
2043
+
2044
+ p {
2045
+ margin: 0 0 0.75rem;
2046
+ font-size: 0.8rem;
2047
+ color: rgba(var(--paragraph-color-rgb), 0.55);
2048
+ }
2049
+ }
2050
+
2051
+ .moveToInputGroup {
2052
+ display: flex;
2053
+ align-items: center;
2054
+ gap: 8px;
2055
+ margin-bottom: 1rem;
2056
+
2057
+ input {
2058
+ width: 60px !important;
2059
+ min-width: 60px !important;
2060
+ max-width: 60px !important;
2061
+ flex: 0 0 60px !important;
2062
+ padding: 6px 8px !important;
2063
+ border: 2px solid rgba(var(--primary-rgb), 0.25) !important;
2064
+ border-radius: 6px !important;
2065
+ font-size: 0.95rem !important;
2066
+ font-weight: 600 !important;
2067
+ text-align: center;
2068
+ outline: none !important;
2069
+ min-height: auto !important;
2070
+ height: auto !important;
2071
+ -moz-appearance: textfield;
2072
+
2073
+ &::-webkit-outer-spin-button,
2074
+ &::-webkit-inner-spin-button {
2075
+ -webkit-appearance: none;
2076
+ margin: 0;
2077
+ }
2078
+
2079
+ &:focus {
2080
+ border-color: var(--primary-color) !important;
2081
+ box-shadow: 0 0 0 3px rgba(var(--primary-rgb), 0.12) !important;
2082
+ }
2083
+ }
2084
+
2085
+ span {
2086
+ font-size: 0.85rem;
2087
+ color: rgba(var(--paragraph-color-rgb), 0.55);
2088
+ white-space: nowrap;
2089
+ }
2090
+ }
2091
+
2092
+ .moveToActions {
2093
+ display: flex;
2094
+ gap: 8px;
2095
+ justify-content: flex-end;
2096
+
2097
+ .btn {
2098
+ padding: 0.45rem 1rem;
2099
+ font-size: 0.85rem;
2100
+ }
2101
+ }
2102
+
2103
+ // Options list (checkbox/dropdown) - card-based layout
2104
+ .optionsHeader {
2105
+ display: flex;
2106
+ align-items: center;
2107
+ gap: 8px;
2108
+ padding: 0 0 6px;
2109
+ margin-bottom: 4px;
2110
+
2111
+ > span:first-child {
2112
+ font-size: 0.8rem;
2113
+ font-weight: 600;
2114
+ color: var(--primary-color);
2115
+ text-transform: uppercase;
2116
+ letter-spacing: 0.5px;
2117
+ }
2118
+ }
2119
+
2120
+ .optionsBadge {
2121
+ background: var(--primary-color);
2122
+ color: white;
2123
+ font-size: 0.65rem;
2124
+ font-weight: 700;
2125
+ padding: 1px 7px;
2126
+ border-radius: 10px;
2127
+ line-height: 1.4;
2128
+ }
2129
+
2130
+ .optionsList {
2131
+ display: flex;
2132
+ flex-direction: column;
2133
+ gap: 4px;
2134
+ }
2135
+
2136
+ .optionItem {
2137
+ display: flex;
2138
+ align-items: center;
2139
+ gap: 8px;
2140
+ padding: 4px 0;
2141
+ border-radius: 6px;
2142
+ transition: background 0.15s ease;
2143
+
2144
+ &:hover {
2145
+ .optionDelete {
2146
+ opacity: 1;
2147
+ }
2148
+ }
2149
+ }
2150
+
2151
+ .optionNumber {
2152
+ flex-shrink: 0;
2153
+ width: 22px;
2154
+ height: 22px;
2155
+ display: flex;
2156
+ align-items: center;
2157
+ justify-content: center;
2158
+ background: rgba(var(--primary-rgb), 0.08);
2159
+ color: var(--primary-color);
2160
+ border-radius: 50%;
2161
+ font-size: 0.7rem;
2162
+ font-weight: 600;
2163
+ }
2164
+
2165
+ .optionInput {
2166
+ flex: 1;
2167
+ padding: 6px 10px !important;
2168
+ border: 1px solid rgba(var(--primary-rgb), 0.15) !important;
2169
+ border-radius: 6px !important;
2170
+ font-size: 0.85rem !important;
2171
+ background: white !important;
2172
+ min-height: auto !important;
2173
+ height: auto !important;
2174
+ transition: border-color 0.2s ease !important;
2175
+
2176
+ &:focus {
2177
+ border-color: var(--primary-color) !important;
2178
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.08) !important;
2179
+ }
2180
+ }
2181
+
2182
+ .optionDelete {
2183
+ flex-shrink: 0;
2184
+ background: none;
2185
+ border: none;
2186
+ cursor: pointer;
2187
+ padding: 4px;
2188
+ color: rgba(var(--paragraph-color-rgb), 0.3);
2189
+ opacity: 0.5;
2190
+ transition: all 0.2s ease;
2191
+ display: flex;
2192
+ align-items: center;
2193
+ border-radius: 4px;
2194
+
2195
+ &:hover {
2196
+ color: #dc3545;
2197
+ opacity: 1;
2198
+ background: rgba(220, 53, 69, 0.08);
2199
+ }
2200
+ }
2201
+
2202
+ .optionsEmpty {
2203
+ padding: 1.5rem;
2204
+ text-align: center;
2205
+ color: rgba(var(--paragraph-color-rgb), 0.4);
2206
+ font-size: 0.85rem;
2207
+ border: 1px dashed rgba(var(--primary-rgb), 0.12);
2208
+ border-radius: 6px;
2209
+ margin: 4px 0;
2210
+ }
2211
+
2212
+ .optionAddRow {
2213
+ display: flex;
2214
+ align-items: center;
2215
+ gap: 8px;
2216
+ margin-top: 8px;
2217
+ padding-top: 8px;
2218
+ border-top: 1px solid rgba(var(--primary-rgb), 0.08);
2219
+ }
2220
+
2221
+ .optionSelect {
2222
+ flex: 0 0 130px;
2223
+ padding: 6px 8px !important;
2224
+ border: 1px solid rgba(var(--primary-rgb), 0.15) !important;
2225
+ border-radius: 6px !important;
2226
+ font-size: 0.8rem !important;
2227
+ background: white !important;
2228
+ min-height: auto !important;
2229
+ height: auto !important;
2230
+ color: var(--paragraph-color);
2231
+ cursor: pointer;
2232
+
2233
+ &:focus {
2234
+ border-color: var(--primary-color) !important;
2235
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.08) !important;
2236
+ }
2237
+ }
2238
+
2239
+ .optionAddInput {
2240
+ flex: 1;
2241
+ padding: 6px 10px !important;
2242
+ border: 1px dashed rgba(var(--primary-rgb), 0.2) !important;
2243
+ border-radius: 6px !important;
2244
+ font-size: 0.85rem !important;
2245
+ background: rgba(var(--primary-rgb), 0.02) !important;
2246
+ min-height: auto !important;
2247
+ height: auto !important;
2248
+ transition: all 0.2s ease !important;
2249
+
2250
+ &:focus {
2251
+ border-style: solid !important;
2252
+ border-color: var(--primary-color) !important;
2253
+ background: white !important;
2254
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.08) !important;
2255
+ }
2256
+
2257
+ &::placeholder {
2258
+ color: rgba(var(--paragraph-color-rgb), 0.35);
2259
+ font-style: italic;
2260
+ }
2261
+ }
2262
+
2263
+ .btnCancel {
2264
+ background: rgba(var(--paragraph-color-rgb), 0.08) !important;
2265
+ color: var(--paragraph-color) !important;
2266
+ border-color: rgba(var(--paragraph-color-rgb), 0.15) !important;
2267
+
2268
+ &:hover {
2269
+ background: rgba(var(--paragraph-color-rgb), 0.15) !important;
2270
+ }
2271
+ }