@pollar/react 0.11.3 → 0.11.4-rc.2

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.
package/dist/index.css CHANGED
@@ -37,6 +37,17 @@
37
37
  max-height: calc(100dvh - 2rem);
38
38
  overflow-y: auto;
39
39
  }
40
+ html.dark .pollar-modal-card {
41
+ --pollar-bg: #1a1a1a !important;
42
+ --pollar-border: #374151 !important;
43
+ --pollar-text: #ffffff !important;
44
+ --pollar-muted: #9ca3af !important;
45
+ --pollar-input-bg: #374151 !important;
46
+ --pollar-error-bg: #2a1515 !important;
47
+ --pollar-error-border: #7f1d1d !important;
48
+ --pollar-error-text: #f87171 !important;
49
+ --pollar-success-text: #4ade80 !important;
50
+ }
40
51
  .pollar-input {
41
52
  width: 100%;
42
53
  height: var(--pollar-input-height, 44px);
@@ -268,6 +279,11 @@
268
279
  width: 18px;
269
280
  object-fit: contain;
270
281
  }
282
+ .pollar-footer-logo-svg {
283
+ display: block;
284
+ height: 18px;
285
+ width: 21px;
286
+ }
271
287
  .pollar-footer-name {
272
288
  font-size: 0.875rem;
273
289
  font-weight: 700;
@@ -544,6 +560,15 @@
544
560
  .pollar-send-modal {
545
561
  max-width: 420px;
546
562
  }
563
+ .pollar-send-title-copy {
564
+ min-width: 0;
565
+ }
566
+ .pollar-send-subtitle {
567
+ margin: 0.25rem 0 0;
568
+ color: var(--pollar-muted);
569
+ font-size: 0.75rem;
570
+ line-height: 1.35;
571
+ }
547
572
  .pollar-send-header-left {
548
573
  display: flex;
549
574
  align-items: center;
@@ -555,6 +580,9 @@
555
580
  gap: 0.375rem;
556
581
  margin-bottom: 1rem;
557
582
  }
583
+ .pollar-send-field:last-of-type {
584
+ margin-bottom: 0.75rem;
585
+ }
558
586
  .pollar-send-label {
559
587
  font-size: 0.8125rem;
560
588
  font-weight: 600;
@@ -568,6 +596,219 @@
568
596
  .pollar-send-hint {
569
597
  font-size: 0.75rem;
570
598
  color: var(--pollar-muted);
599
+ text-align: right;
600
+ white-space: nowrap;
601
+ }
602
+ .pollar-send-asset-picker {
603
+ position: relative;
604
+ }
605
+ .pollar-send-asset-selector {
606
+ display: flex;
607
+ align-items: center;
608
+ width: 100%;
609
+ min-height: 68px;
610
+ padding: 0.75rem 0.875rem;
611
+ gap: 0.75rem;
612
+ border: 1px solid var(--pollar-border);
613
+ border-radius: 0.75rem;
614
+ background: var(--pollar-input-bg);
615
+ color: var(--pollar-text);
616
+ text-align: left;
617
+ cursor: pointer;
618
+ box-sizing: border-box;
619
+ transition:
620
+ border-color 0.15s,
621
+ box-shadow 0.15s,
622
+ background-color 0.15s;
623
+ }
624
+ .pollar-send-asset-selector:hover,
625
+ .pollar-send-asset-selector[aria-expanded=true] {
626
+ border-color: var(--pollar-accent);
627
+ }
628
+ .pollar-send-asset-selector:focus-visible,
629
+ .pollar-send-asset-option:focus-visible,
630
+ .pollar-send-inline-action:focus-visible {
631
+ outline: none;
632
+ border-color: var(--pollar-accent);
633
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--pollar-accent) 22%, transparent);
634
+ }
635
+ .pollar-send-asset-selector:disabled {
636
+ cursor: not-allowed;
637
+ opacity: 0.65;
638
+ }
639
+ .pollar-send-asset-selector-loading {
640
+ cursor: wait;
641
+ color: var(--pollar-muted);
642
+ }
643
+ .pollar-send-asset-icon {
644
+ display: inline-flex;
645
+ align-items: center;
646
+ justify-content: center;
647
+ flex: 0 0 36px;
648
+ width: 36px;
649
+ height: 36px;
650
+ border-radius: 50%;
651
+ background: color-mix(in srgb, var(--pollar-accent) 14%, var(--pollar-input-bg));
652
+ color: var(--pollar-accent);
653
+ font-size: 0.625rem;
654
+ font-weight: 800;
655
+ letter-spacing: -0.02em;
656
+ }
657
+ .pollar-send-asset-copy {
658
+ display: flex;
659
+ flex: 1;
660
+ min-width: 0;
661
+ flex-direction: column;
662
+ gap: 0.15rem;
663
+ }
664
+ .pollar-send-asset-copy strong {
665
+ overflow: hidden;
666
+ font-size: 0.9375rem;
667
+ font-weight: 700;
668
+ text-overflow: ellipsis;
669
+ white-space: nowrap;
670
+ }
671
+ .pollar-send-asset-copy small {
672
+ overflow: hidden;
673
+ color: var(--pollar-muted);
674
+ font-size: 0.6875rem;
675
+ text-overflow: ellipsis;
676
+ white-space: nowrap;
677
+ }
678
+ .pollar-send-chevron {
679
+ flex: 0 0 auto;
680
+ color: var(--pollar-muted);
681
+ }
682
+ .pollar-send-asset-menu {
683
+ position: absolute;
684
+ z-index: 4;
685
+ top: calc(100% + 0.375rem);
686
+ right: 0;
687
+ left: 0;
688
+ display: grid;
689
+ gap: 0.25rem;
690
+ max-height: 220px;
691
+ padding: 0.375rem;
692
+ overflow-y: auto;
693
+ border: 1px solid var(--pollar-border);
694
+ border-radius: 0.75rem;
695
+ background: var(--pollar-bg);
696
+ box-shadow: 0 14px 30px rgba(15, 23, 42, 0.16);
697
+ }
698
+ .pollar-send-asset-option {
699
+ display: flex;
700
+ align-items: center;
701
+ width: 100%;
702
+ gap: 0.625rem;
703
+ padding: 0.625rem;
704
+ border: 1px solid transparent;
705
+ border-radius: 0.5rem;
706
+ background: transparent;
707
+ color: var(--pollar-text);
708
+ text-align: left;
709
+ cursor: pointer;
710
+ }
711
+ .pollar-send-asset-option:hover,
712
+ .pollar-send-asset-option.is-selected {
713
+ border-color: color-mix(in srgb, var(--pollar-accent) 32%, var(--pollar-border));
714
+ background: color-mix(in srgb, var(--pollar-accent) 8%, var(--pollar-bg));
715
+ }
716
+ .pollar-send-input-shell {
717
+ position: relative;
718
+ }
719
+ .pollar-send-input-shell .pollar-input {
720
+ padding-right: 5.75rem;
721
+ }
722
+ .pollar-send-amount-input {
723
+ font-family: Geist, sans-serif;
724
+ font-size: 20px;
725
+ font-style: normal;
726
+ font-weight: 500;
727
+ line-height: 30px;
728
+ color: var(--Color-Neutral-400, #94a3b8);
729
+ }
730
+ .pollar-send-destination-input {
731
+ font-family: "Geist Mono", monospace;
732
+ font-size: 14px;
733
+ font-style: normal;
734
+ font-weight: 400;
735
+ line-height: 20px;
736
+ }
737
+ .pollar-send-input-suffix {
738
+ position: absolute;
739
+ top: 0;
740
+ right: 0.75rem;
741
+ bottom: 0;
742
+ display: flex;
743
+ align-items: center;
744
+ gap: 0.4rem;
745
+ color: var(--pollar-muted);
746
+ font-size: 0.75rem;
747
+ font-weight: 700;
748
+ pointer-events: none;
749
+ }
750
+ .pollar-send-inline-action {
751
+ appearance: none;
752
+ display: inline-flex;
753
+ align-items: center;
754
+ justify-content: center;
755
+ height: 28px;
756
+ padding: 0 0.5rem;
757
+ border: 0;
758
+ border-radius: 0.375rem;
759
+ background: var(--pollar-btn-secondary-bg, #eaf2fa);
760
+ box-shadow: none;
761
+ color: var(--pollar-accent);
762
+ font: inherit;
763
+ font-size: 0.75rem;
764
+ font-weight: 700;
765
+ line-height: 1;
766
+ cursor: pointer;
767
+ pointer-events: auto;
768
+ }
769
+ .pollar-send-inline-action:hover:not(:disabled) {
770
+ background: color-mix(in srgb, var(--pollar-btn-secondary-bg, #eaf2fa) 82%, var(--pollar-accent));
771
+ color: var(--pollar-btn-secondary-fg, var(--pollar-text));
772
+ }
773
+ .pollar-send-inline-action:disabled {
774
+ cursor: not-allowed;
775
+ opacity: 0.45;
776
+ }
777
+ .pollar-send-input-shell > .pollar-send-inline-action {
778
+ position: absolute;
779
+ top: 50%;
780
+ right: 0.875rem;
781
+ bottom: auto;
782
+ transform: translateY(-50%);
783
+ }
784
+ html.dark .pollar-send-inline-action {
785
+ background: var(--pollar-btn-secondary-bg, #253b52);
786
+ }
787
+ .pollar-send-modal .pollar-modal-actions {
788
+ margin-top: 0.25rem;
789
+ }
790
+ .pollar-send-modal .pollar-btn-primary {
791
+ min-height: 48px;
792
+ border-radius: 999px;
793
+ font-size: 0.9375rem;
794
+ }
795
+ .pollar-send-modal .pollar-footer {
796
+ justify-content: flex-start;
797
+ margin-top: 1.25rem;
798
+ padding-top: 1rem;
799
+ }
800
+ @media (max-width: 480px) {
801
+ .pollar-send-modal {
802
+ max-width: calc(100vw - 2rem);
803
+ }
804
+ .pollar-send-label-row {
805
+ align-items: flex-start;
806
+ gap: 0.5rem;
807
+ }
808
+ .pollar-send-hint {
809
+ overflow: hidden;
810
+ text-overflow: ellipsis;
811
+ }
571
812
  }
572
813
  .pollar-send-select {
573
814
  appearance: none;
@@ -733,7 +974,82 @@
733
974
  animation: pollar-pulse 1.5s ease-in-out infinite;
734
975
  }
735
976
  .pollar-kyc-modal {
736
- max-width: 500px;
977
+ max-width: 520px;
978
+ animation: pollar-kyc-enter 180ms ease-out;
979
+ }
980
+ .pollar-kyc-modal--verifying {
981
+ max-width: 820px;
982
+ }
983
+ .pollar-kyc-modal .pollar-modal-title {
984
+ letter-spacing: -0.025em;
985
+ }
986
+ .pollar-kyc-modal .pollar-modal-header {
987
+ gap: 1rem;
988
+ }
989
+ .pollar-kyc-modal button:focus-visible,
990
+ .pollar-kyc-modal a:focus-visible {
991
+ outline: 2px solid var(--pollar-accent);
992
+ outline-offset: 4px;
993
+ }
994
+ .pollar-kyc-modal button:active:not(:disabled) {
995
+ transform: translateY(1px);
996
+ }
997
+ .pollar-kyc-error {
998
+ padding: 0.875rem 1rem;
999
+ border: 1px solid var(--pollar-border);
1000
+ border-left: 3px solid var(--pollar-accent);
1001
+ border-radius: 0.5rem;
1002
+ color: var(--pollar-text);
1003
+ background: var(--pollar-input-bg);
1004
+ font-size: 0.875rem;
1005
+ line-height: 1.5;
1006
+ }
1007
+ .pollar-kyc-session-bar {
1008
+ display: flex;
1009
+ align-items: center;
1010
+ justify-content: space-between;
1011
+ gap: 1rem;
1012
+ padding: 0.75rem 0;
1013
+ font-size: 0.75rem;
1014
+ color: var(--pollar-muted);
1015
+ }
1016
+ .pollar-kyc-session-bar a {
1017
+ color: var(--pollar-text);
1018
+ text-underline-offset: 3px;
1019
+ }
1020
+ .pollar-kyc-session-label {
1021
+ display: inline-flex;
1022
+ align-items: center;
1023
+ gap: 0.5rem;
1024
+ }
1025
+ .pollar-kyc-session-dot {
1026
+ width: 6px;
1027
+ height: 6px;
1028
+ border-radius: 50%;
1029
+ background: var(--pollar-accent);
1030
+ }
1031
+ .pollar-kyc-footer {
1032
+ display: flex;
1033
+ justify-content: space-between;
1034
+ align-items: center;
1035
+ gap: 1rem;
1036
+ padding-top: 1rem;
1037
+ border-top: 1px solid var(--pollar-border);
1038
+ }
1039
+ .pollar-kyc-footer p {
1040
+ color: var(--pollar-muted);
1041
+ font-size: 0.8125rem;
1042
+ line-height: 1.5;
1043
+ margin: 0;
1044
+ max-width: 28ch;
1045
+ }
1046
+ .pollar-kyc-footer .pollar-modal-actions {
1047
+ margin: 0;
1048
+ flex-shrink: 0;
1049
+ }
1050
+ .pollar-kyc-footer .pollar-btn-primary {
1051
+ flex: initial;
1052
+ min-width: 144px;
737
1053
  }
738
1054
  .pollar-kyc-header-text {
739
1055
  display: flex;
@@ -762,12 +1078,15 @@
762
1078
  border: 1px solid var(--pollar-border);
763
1079
  background-color: var(--pollar-btn-secondary-bg, var(--pollar-input-bg));
764
1080
  cursor: pointer;
765
- transition: all 0.15s;
1081
+ transition:
1082
+ border-color 0.15s,
1083
+ background-color 0.15s,
1084
+ transform 0.15s;
766
1085
  box-sizing: border-box;
767
1086
  }
768
1087
  .pollar-kyc-provider-btn:hover:not(:disabled) {
769
1088
  border-color: var(--pollar-accent);
770
- box-shadow: 0 0 0 1px var(--pollar-accent);
1089
+ background-color: color-mix(in srgb, var(--pollar-accent) 5%, var(--pollar-input-bg));
771
1090
  }
772
1091
  .pollar-kyc-provider-btn:disabled {
773
1092
  opacity: 0.5;
@@ -781,18 +1100,19 @@
781
1100
  .pollar-kyc-provider-flow {
782
1101
  font-size: 0.75rem;
783
1102
  color: var(--pollar-muted);
784
- text-transform: uppercase;
785
- letter-spacing: 0.04em;
1103
+ text-align: right;
786
1104
  }
787
1105
  .pollar-kyc-iframe-wrap {
788
1106
  width: 100%;
789
- height: 400px;
790
- border-radius: 0.5rem;
1107
+ height: clamp(320px, calc(100dvh - 250px), 680px);
1108
+ border-radius: 0.75rem;
791
1109
  border: 1px solid var(--pollar-border);
792
1110
  overflow: hidden;
793
1111
  margin-bottom: 1rem;
794
1112
  }
795
1113
  .pollar-kyc-iframe {
1114
+ display: block;
1115
+ background: white;
796
1116
  width: 100%;
797
1117
  height: 100%;
798
1118
  border: none;
@@ -833,60 +1153,212 @@
833
1153
  text-align: center;
834
1154
  }
835
1155
  .pollar-kyc-result-icon {
836
- font-size: 2.5rem;
1156
+ display: grid;
1157
+ place-items: center;
1158
+ width: 64px;
1159
+ height: 64px;
1160
+ border-radius: 50%;
1161
+ color: var(--pollar-muted);
1162
+ background: var(--pollar-input-bg);
1163
+ }
1164
+ .pollar-kyc-result-icon--approved {
1165
+ color: var(--pollar-success-text, #15803d);
1166
+ background: color-mix(in srgb, var(--pollar-success-text, #15803d) 10%, transparent);
1167
+ }
1168
+ .pollar-kyc-result .pollar-modal-actions {
1169
+ align-self: stretch;
837
1170
  }
838
1171
  .pollar-kyc-result-text {
1172
+ max-width: 38ch;
1173
+ line-height: 1.6;
839
1174
  font-size: 0.9rem;
840
1175
  color: var(--pollar-muted);
841
1176
  }
842
-
843
- /* src/components/login-modal/GithubButton.css */
844
- .pollar-github-button {
845
- -webkit-appearance: none;
846
- appearance: none;
847
- background-color: var(--pollar-input-bg);
848
- border: 1px solid var(--pollar-border);
849
- border-radius: var(--pollar-buttons-border-radius, 6px);
850
- box-sizing: border-box;
851
- color: var(--pollar-text);
852
- cursor: pointer;
853
- display: inline-flex;
854
- align-items: center;
855
- justify-content: center;
856
- gap: 0.75rem;
857
- font-family:
858
- -apple-system,
859
- BlinkMacSystemFont,
860
- "Segoe UI",
861
- Helvetica,
862
- Arial,
863
- sans-serif;
864
- font-size: 1rem;
865
- font-weight: 500;
866
- height: var(--pollar-buttons-height, 44px);
867
- letter-spacing: normal;
868
- outline: none;
869
- overflow: hidden;
870
- padding: 0 1rem;
871
- transition: transform 0.15s, box-shadow 0.15s;
872
- white-space: nowrap;
873
- width: 100%;
874
- user-select: none;
1177
+ @keyframes pollar-kyc-enter {
1178
+ from {
1179
+ opacity: 0;
1180
+ transform: translateY(8px);
1181
+ }
1182
+ to {
1183
+ opacity: 1;
1184
+ transform: translateY(0);
1185
+ }
875
1186
  }
876
- .pollar-github-button-icon {
877
- width: 20px;
878
- height: 20px;
879
- flex-shrink: 0;
1187
+ @media (max-width: 640px) {
1188
+ .pollar-kyc-modal {
1189
+ padding: 1.125rem;
1190
+ }
1191
+ .pollar-kyc-subtitle {
1192
+ line-height: 1.5;
1193
+ }
1194
+ .pollar-kyc-session-bar {
1195
+ align-items: flex-start;
1196
+ font-size: 0.6875rem;
1197
+ }
1198
+ .pollar-kyc-session-bar a {
1199
+ white-space: nowrap;
1200
+ }
1201
+ .pollar-kyc-footer {
1202
+ flex-direction: column;
1203
+ align-items: stretch;
1204
+ }
1205
+ .pollar-kyc-footer p {
1206
+ max-width: none;
1207
+ }
1208
+ .pollar-kyc-footer .pollar-modal-actions {
1209
+ width: 100%;
1210
+ }
1211
+ .pollar-kyc-footer .pollar-btn-primary {
1212
+ flex: 1;
1213
+ }
1214
+ .pollar-kyc-provider-btn {
1215
+ gap: 1rem;
1216
+ }
880
1217
  }
881
- .pollar-github-button-contents {
882
- flex-grow: 0;
883
- overflow: hidden;
884
- text-overflow: ellipsis;
1218
+ @media (prefers-reduced-motion: reduce) {
1219
+ .pollar-kyc-modal {
1220
+ animation: none;
1221
+ }
1222
+ .pollar-kyc-modal *,
1223
+ .pollar-kyc-badge-dot {
1224
+ animation: none;
1225
+ transition: none;
1226
+ }
885
1227
  }
886
- .pollar-github-button:not(:disabled):hover {
887
- border-color: var(--pollar-accent);
888
- color: var(--pollar-accent);
889
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
1228
+
1229
+ /* src/components/requirement-form-modal/RequirementFormModal.css */
1230
+ .pollar-form-modal {
1231
+ max-width: 520px;
1232
+ max-height: calc(100dvh - 2rem);
1233
+ overflow-y: auto;
1234
+ }
1235
+ .pollar-form-modal .pollar-modal-header {
1236
+ gap: 1rem;
1237
+ }
1238
+ .pollar-form-header-text {
1239
+ display: flex;
1240
+ flex-direction: column;
1241
+ gap: 0.25rem;
1242
+ min-width: 0;
1243
+ }
1244
+ .pollar-form-subtitle {
1245
+ margin: 0;
1246
+ font-size: var(--pollar-modal-subtitle-size, 0.9rem);
1247
+ color: var(--pollar-muted);
1248
+ }
1249
+ .pollar-form-description {
1250
+ margin: 0 0 0.5rem;
1251
+ font-size: 0.875rem;
1252
+ line-height: 1.5;
1253
+ color: var(--pollar-muted);
1254
+ }
1255
+ .pollar-form-body {
1256
+ display: flex;
1257
+ flex-direction: column;
1258
+ gap: 1rem;
1259
+ }
1260
+ .pollar-form-field {
1261
+ display: flex;
1262
+ flex-direction: column;
1263
+ gap: 0.375rem;
1264
+ }
1265
+ .pollar-form-label {
1266
+ font-size: 0.875rem;
1267
+ font-weight: 600;
1268
+ color: var(--pollar-text);
1269
+ }
1270
+ .pollar-form-required {
1271
+ color: var(--pollar-error-text, #dc2626);
1272
+ }
1273
+ .pollar-form-help {
1274
+ font-size: 0.75rem;
1275
+ line-height: 1.4;
1276
+ color: var(--pollar-muted);
1277
+ }
1278
+ .pollar-form-field-error {
1279
+ font-size: 0.75rem;
1280
+ color: var(--pollar-error-text, #dc2626);
1281
+ }
1282
+ .pollar-form-textarea {
1283
+ height: auto;
1284
+ min-height: 88px;
1285
+ padding: 0.625rem 1rem;
1286
+ resize: vertical;
1287
+ font-family: inherit;
1288
+ }
1289
+ .pollar-form-choices {
1290
+ display: flex;
1291
+ flex-direction: column;
1292
+ gap: 0.5rem;
1293
+ }
1294
+ .pollar-form-choice {
1295
+ display: flex;
1296
+ align-items: center;
1297
+ gap: 0.5rem;
1298
+ font-size: 0.875rem;
1299
+ color: var(--pollar-text);
1300
+ }
1301
+ .pollar-form-error {
1302
+ padding: 0.875rem 1rem;
1303
+ border: 1px solid var(--pollar-border);
1304
+ border-left: 3px solid var(--pollar-accent);
1305
+ border-radius: 0.5rem;
1306
+ color: var(--pollar-text);
1307
+ background: var(--pollar-input-bg);
1308
+ font-size: 0.875rem;
1309
+ line-height: 1.5;
1310
+ }
1311
+ .pollar-form-body .pollar-modal-actions {
1312
+ align-self: stretch;
1313
+ }
1314
+
1315
+ /* src/components/login-modal/GithubButton.css */
1316
+ .pollar-github-button {
1317
+ -webkit-appearance: none;
1318
+ appearance: none;
1319
+ background-color: var(--pollar-input-bg);
1320
+ border: 1px solid var(--pollar-border);
1321
+ border-radius: var(--pollar-buttons-border-radius, 6px);
1322
+ box-sizing: border-box;
1323
+ color: var(--pollar-text);
1324
+ cursor: pointer;
1325
+ display: inline-flex;
1326
+ align-items: center;
1327
+ justify-content: center;
1328
+ gap: 0.75rem;
1329
+ font-family:
1330
+ -apple-system,
1331
+ BlinkMacSystemFont,
1332
+ "Segoe UI",
1333
+ Helvetica,
1334
+ Arial,
1335
+ sans-serif;
1336
+ font-size: 1rem;
1337
+ font-weight: 500;
1338
+ height: var(--pollar-buttons-height, 44px);
1339
+ letter-spacing: normal;
1340
+ outline: none;
1341
+ overflow: hidden;
1342
+ padding: 0 1rem;
1343
+ transition: transform 0.15s, box-shadow 0.15s;
1344
+ white-space: nowrap;
1345
+ width: 100%;
1346
+ user-select: none;
1347
+ }
1348
+ .pollar-github-button-icon {
1349
+ width: 20px;
1350
+ height: 20px;
1351
+ flex-shrink: 0;
1352
+ }
1353
+ .pollar-github-button-contents {
1354
+ flex-grow: 0;
1355
+ overflow: hidden;
1356
+ text-overflow: ellipsis;
1357
+ }
1358
+ .pollar-github-button:not(:disabled):hover {
1359
+ border-color: var(--pollar-accent);
1360
+ color: var(--pollar-accent);
1361
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
890
1362
  }
891
1363
  .pollar-github-button:not(:disabled):active {
892
1364
  transform: scale(0.99);
@@ -1553,64 +2025,186 @@
1553
2025
  text-align: center;
1554
2026
  margin: 0;
1555
2027
  }
2028
+ .pollar-ramp-route-card[data-locked] {
2029
+ cursor: default;
2030
+ }
2031
+ .pollar-ramp-route-card[data-locked]:not([data-disabled]):hover {
2032
+ border-color: var(--pollar-border);
2033
+ }
2034
+ .pollar-ramp-route-verify {
2035
+ height: 2rem;
2036
+ padding: 0 0.75rem;
2037
+ font-size: 0.8125rem;
2038
+ white-space: nowrap;
2039
+ }
1556
2040
 
1557
2041
  /* src/components/receive-modal/ReceiveModal.css */
1558
2042
  .pollar-receive-modal {
1559
- max-width: 380px;
2043
+ max-width: 400px;
2044
+ padding: 1.5rem;
1560
2045
  }
1561
2046
  .pollar-receive-qr {
1562
2047
  display: flex;
2048
+ flex-direction: column;
1563
2049
  align-items: center;
1564
2050
  justify-content: center;
1565
- padding: 1.25rem;
2051
+ gap: 0.875rem;
1566
2052
  margin-bottom: 1rem;
1567
- background: var(--pollar-input-bg);
1568
- border: 1px solid var(--pollar-border);
1569
- border-radius: var(--pollar-card-border-radius, 10px);
2053
+ padding: 1.25rem 1rem 1.375rem;
2054
+ border: 1px solid color-mix(in srgb, var(--pollar-accent) 12%, var(--pollar-border));
2055
+ border-radius: 1rem;
2056
+ background: color-mix(in srgb, var(--pollar-accent) 4%, var(--pollar-input-bg));
2057
+ }
2058
+ .pollar-receive-network-badge {
2059
+ display: inline-flex;
2060
+ align-items: center;
2061
+ gap: 0.4rem;
2062
+ padding: 0.375rem 0.7rem;
2063
+ border-radius: 999px;
2064
+ background: var(--pollar-accent);
2065
+ color: var(--pollar-btn-primary-fg, #ffffff);
2066
+ font-size: 0.6875rem;
2067
+ font-weight: 700;
2068
+ line-height: 1;
2069
+ }
2070
+ .pollar-receive-network-dot {
2071
+ width: 0.35rem;
2072
+ height: 0.35rem;
2073
+ border-radius: 50%;
2074
+ background: currentColor;
2075
+ opacity: 0.9;
2076
+ }
2077
+ .pollar-receive-qr-frame {
2078
+ position: relative;
2079
+ display: flex;
2080
+ align-items: center;
2081
+ justify-content: center;
2082
+ padding: 0.75rem;
2083
+ border: 1px solid color-mix(in srgb, var(--pollar-accent) 28%, transparent);
2084
+ border-radius: 1rem;
2085
+ background: #ffffff;
2086
+ box-shadow: 0 12px 26px color-mix(in srgb, var(--pollar-accent) 16%, transparent);
2087
+ }
2088
+ .pollar-receive-qr-frame svg {
2089
+ display: block;
2090
+ max-width: min(58vw, 220px);
2091
+ height: auto;
1570
2092
  }
1571
- .pollar-receive-instructions {
2093
+ .pollar-receive-notice {
1572
2094
  font-size: 0.8125rem;
1573
- color: var(--pollar-muted);
1574
- text-align: center;
1575
- margin: 0 0 1rem;
1576
2095
  line-height: 1.5;
2096
+ text-align: center;
2097
+ margin: 0 0 0.75rem;
2098
+ padding: 0.625rem 0.75rem;
2099
+ border-radius: var(--pollar-card-border-radius, 10px);
2100
+ border: 1px solid var(--pollar-border);
2101
+ color: var(--pollar-text);
2102
+ background: var(--pollar-input-bg);
1577
2103
  }
1578
- .pollar-receive-address-row {
2104
+ .pollar-receive-qr-mark {
2105
+ position: absolute;
2106
+ top: 50%;
2107
+ left: 50%;
2108
+ display: flex;
2109
+ align-items: center;
2110
+ justify-content: center;
2111
+ width: 2.5rem;
2112
+ height: 2.5rem;
2113
+ transform: translate(-50%, -50%);
2114
+ border: 3px solid #ffffff;
2115
+ border-radius: 0.75rem;
2116
+ background: #ffffff;
2117
+ box-shadow: 0 4px 12px rgba(15, 23, 42, 0.16);
2118
+ overflow: hidden;
2119
+ }
2120
+ .pollar-receive-qr-mark svg {
2121
+ width: 22px;
2122
+ height: 24px;
2123
+ }
2124
+ .pollar-receive-address-actions {
1579
2125
  display: flex;
1580
2126
  align-items: center;
1581
2127
  gap: 0.625rem;
1582
- background: var(--pollar-input-bg);
2128
+ margin-bottom: 0;
2129
+ }
2130
+ .pollar-receive-address-row {
2131
+ display: flex;
2132
+ align-items: center;
2133
+ flex: 1;
2134
+ min-width: 0;
1583
2135
  border: 1px solid var(--pollar-border);
1584
- border-radius: var(--pollar-card-border-radius, 10px);
1585
- padding: 0.625rem 0.875rem;
1586
- margin-bottom: 1rem;
2136
+ border-radius: 0.75rem;
2137
+ padding: 0.5rem 0.875rem;
2138
+ background: var(--pollar-input-bg);
1587
2139
  }
1588
2140
  .pollar-receive-address {
1589
2141
  flex: 1;
2142
+ min-width: 0;
2143
+ overflow: hidden;
1590
2144
  font-size: 0.75rem;
1591
2145
  font-family: monospace;
1592
2146
  color: var(--pollar-text);
1593
- word-break: break-all;
1594
- line-height: 1.5;
2147
+ line-height: 1.25rem;
2148
+ text-overflow: ellipsis;
2149
+ white-space: nowrap;
1595
2150
  }
1596
2151
  .pollar-receive-copy-btn {
1597
2152
  display: inline-flex;
1598
2153
  align-items: center;
1599
2154
  gap: 0.375rem;
1600
2155
  flex-shrink: 0;
2156
+ min-height: 2rem;
1601
2157
  padding: 0.375rem 0.75rem;
1602
- border-radius: var(--pollar-buttons-border-radius, 6px);
1603
- border: 1px solid var(--pollar-border);
1604
- background: none;
2158
+ border: 0;
2159
+ border-radius: 999px;
2160
+ background: var(--pollar-accent);
1605
2161
  font-size: 0.75rem;
1606
- font-weight: 500;
1607
- color: var(--pollar-muted);
2162
+ font-weight: 700;
2163
+ color: var(--pollar-btn-primary-fg, #ffffff);
1608
2164
  cursor: pointer;
1609
2165
  transition: color 150ms, background 150ms;
1610
2166
  }
1611
2167
  .pollar-receive-copy-btn:hover {
1612
- color: var(--pollar-text);
1613
- background: var(--pollar-border);
2168
+ filter: brightness(0.94);
2169
+ }
2170
+ .pollar-receive-copy-btn:focus-visible,
2171
+ .pollar-receive-modal .pollar-modal-close:focus-visible {
2172
+ outline: none;
2173
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--pollar-accent) 24%, transparent);
2174
+ }
2175
+ .pollar-receive-warning {
2176
+ display: flex;
2177
+ align-items: center;
2178
+ justify-content: center;
2179
+ gap: 0.4rem;
2180
+ margin: 0 0 0.625rem;
2181
+ padding-top: 0.375rem;
2182
+ color: var(--pollar-muted);
2183
+ font-size: 0.6875rem;
2184
+ line-height: 1.25rem;
2185
+ text-align: center;
2186
+ }
2187
+ .pollar-receive-warning svg {
2188
+ flex: 0 0 auto;
2189
+ }
2190
+ .pollar-receive-modal .pollar-footer {
2191
+ margin-top: 0;
2192
+ padding-top: 1rem;
2193
+ }
2194
+ @media (max-width: 480px) {
2195
+ .pollar-receive-modal {
2196
+ max-width: calc(100vw - 2rem);
2197
+ padding: 1.25rem;
2198
+ }
2199
+ .pollar-receive-qr-frame svg {
2200
+ max-width: min(58vw, 200px);
2201
+ }
2202
+ .pollar-receive-address-row {
2203
+ gap: 0.4rem;
2204
+ }
2205
+ .pollar-receive-copy-btn {
2206
+ padding-inline: 0.625rem;
2207
+ }
1614
2208
  }
1615
2209
 
1616
2210
  /* src/components/transaction-modal/TransactionModal.css */
@@ -1852,61 +2446,364 @@
1852
2446
  }
1853
2447
 
1854
2448
  /* src/components/swap-modal/SwapModal.css */
1855
- .pollar-swap-quote {
2449
+ .pollar-swap-modal {
1856
2450
  display: flex;
1857
2451
  flex-direction: column;
1858
- gap: 8px;
1859
- padding: 12px;
1860
- margin-bottom: 12px;
2452
+ width: 100%;
2453
+ max-width: 460px;
2454
+ max-height: calc(100dvh - 2rem);
2455
+ overflow-y: auto;
2456
+ padding: 1.5rem;
2457
+ }
2458
+ .pollar-swap-modal .sr-only {
2459
+ position: absolute;
2460
+ width: 1px;
2461
+ height: 1px;
2462
+ padding: 0;
2463
+ margin: -1px;
2464
+ overflow: hidden;
2465
+ clip: rect(0, 0, 0, 0);
2466
+ white-space: nowrap;
2467
+ border: 0;
2468
+ }
2469
+ .pollar-swap-modal .pollar-modal-header {
2470
+ margin-bottom: 1rem;
2471
+ }
2472
+ .pollar-swap-panels {
2473
+ position: relative;
2474
+ display: flex;
2475
+ flex-direction: column;
2476
+ gap: 0.625rem;
2477
+ }
2478
+ .pollar-swap-panel {
2479
+ padding: 1rem;
1861
2480
  border: 1px solid var(--pollar-border);
1862
- border-radius: var(--pollar-card-border-radius);
2481
+ border-radius: 1rem;
1863
2482
  background: var(--pollar-input-bg);
1864
2483
  color: var(--pollar-text);
1865
- font-size: 14px;
1866
2484
  }
2485
+ .pollar-swap-panel-heading,
2486
+ .pollar-swap-rate-row,
1867
2487
  .pollar-swap-quote-row {
1868
2488
  display: flex;
1869
2489
  align-items: center;
1870
2490
  justify-content: space-between;
1871
- gap: 12px;
2491
+ gap: 0.75rem;
1872
2492
  }
1873
- .pollar-swap-custom-toggle {
1874
- margin-top: 8px;
1875
- background: none;
1876
- border: none;
1877
- padding: 0;
1878
- color: var(--pollar-accent);
1879
- font-size: 12px;
1880
- cursor: pointer;
2493
+ .pollar-swap-panel-label {
2494
+ color: var(--pollar-text);
2495
+ font-size: 0.75rem;
2496
+ font-weight: 700;
1881
2497
  }
1882
- .pollar-swap-custom {
1883
- margin-top: 8px;
1884
- display: flex;
1885
- flex-direction: column;
1886
- gap: 8px;
2498
+ .pollar-swap-balance {
2499
+ overflow: hidden;
2500
+ color: var(--pollar-muted);
2501
+ font-size: 0.6875rem;
2502
+ text-overflow: ellipsis;
2503
+ white-space: nowrap;
1887
2504
  }
1888
- .pollar-swap-custom-actions {
2505
+ .pollar-swap-panel-main {
1889
2506
  display: flex;
1890
- align-items: center;
1891
- gap: 8px;
1892
- }
2507
+ align-items: flex-end;
2508
+ justify-content: space-between;
2509
+ gap: 1rem;
2510
+ margin-top: 1.15rem;
2511
+ }
2512
+ .pollar-swap-amount,
2513
+ .pollar-swap-output {
2514
+ min-width: 0;
2515
+ flex: 1;
2516
+ border: 0;
2517
+ outline: 0;
2518
+ background: transparent;
2519
+ color: var(--pollar-text);
2520
+ font-family: Geist, inherit;
2521
+ font-size: 1.75rem;
2522
+ font-weight: 600;
2523
+ letter-spacing: -0.04em;
2524
+ line-height: 1.1;
2525
+ }
2526
+ .pollar-swap-amount {
2527
+ width: 100%;
2528
+ padding: 0;
2529
+ }
2530
+ .pollar-swap-amount::placeholder {
2531
+ color: var(--pollar-muted);
2532
+ opacity: 0.7;
2533
+ }
2534
+ .pollar-swap-amount:focus-visible {
2535
+ border-radius: 0.25rem;
2536
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--pollar-accent) 24%, transparent);
2537
+ }
2538
+ .pollar-swap-output {
2539
+ display: flex;
2540
+ align-items: center;
2541
+ min-height: 1.925rem;
2542
+ }
2543
+ .pollar-swap-output.is-loading {
2544
+ color: var(--pollar-muted);
2545
+ }
2546
+ .pollar-swap-panel-selector {
2547
+ display: flex;
2548
+ flex: 0 0 auto;
2549
+ flex-direction: column;
2550
+ align-items: flex-end;
2551
+ gap: 0.4rem;
2552
+ }
2553
+ .pollar-swap-asset-pill-wrap {
2554
+ position: relative;
2555
+ display: inline-flex;
2556
+ align-items: center;
2557
+ max-width: 9rem;
2558
+ min-width: 6.8rem;
2559
+ height: 2.25rem;
2560
+ gap: 0.375rem;
2561
+ padding: 0 0.55rem;
2562
+ border: 1px solid var(--pollar-border);
2563
+ border-radius: 999px;
2564
+ background: var(--pollar-bg);
2565
+ color: var(--pollar-text);
2566
+ cursor: pointer;
2567
+ transition: border-color 0.15s, box-shadow 0.15s;
2568
+ }
2569
+ .pollar-swap-asset-pill-wrap:hover,
2570
+ .pollar-swap-asset-pill-wrap:focus-within {
2571
+ border-color: var(--pollar-accent);
2572
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--pollar-accent) 16%, transparent);
2573
+ }
2574
+ .pollar-swap-asset-pill-wrap:has(select:disabled) {
2575
+ cursor: not-allowed;
2576
+ opacity: 0.6;
2577
+ }
2578
+ .pollar-swap-asset-pill {
2579
+ min-width: 0;
2580
+ flex: 1;
2581
+ appearance: none;
2582
+ border: 0;
2583
+ outline: 0;
2584
+ background: transparent;
2585
+ color: var(--pollar-text);
2586
+ font: inherit;
2587
+ font-size: 0.75rem;
2588
+ font-weight: 700;
2589
+ cursor: pointer;
2590
+ }
2591
+ .pollar-swap-asset-pill option,
2592
+ .pollar-swap-route-pill option {
2593
+ background: var(--pollar-bg);
2594
+ color: var(--pollar-text);
2595
+ }
2596
+ .pollar-swap-chevron {
2597
+ flex: 0 0 auto;
2598
+ color: var(--pollar-muted);
2599
+ pointer-events: none;
2600
+ }
2601
+ .pollar-swap-asset-icon {
2602
+ display: inline-flex;
2603
+ align-items: center;
2604
+ justify-content: center;
2605
+ flex: 0 0 1.5rem;
2606
+ width: 1.5rem;
2607
+ height: 1.5rem;
2608
+ border-radius: 50%;
2609
+ background: color-mix(in srgb, var(--pollar-accent) 14%, var(--pollar-input-bg));
2610
+ color: var(--pollar-accent);
2611
+ font-size: 0.5rem;
2612
+ font-weight: 800;
2613
+ letter-spacing: -0.03em;
2614
+ }
2615
+ .pollar-swap-max,
2616
+ .pollar-swap-custom-toggle {
2617
+ min-height: 1.75rem;
2618
+ padding: 0.25rem 0.625rem;
2619
+ border-radius: 0.375rem;
2620
+ border: 0;
2621
+ background: var(--pollar-btn-secondary-bg, #eaf2fa);
2622
+ color: var(--pollar-accent);
2623
+ font-size: 0.6875rem;
2624
+ font-weight: 700;
2625
+ cursor: pointer;
2626
+ }
2627
+ .pollar-swap-max {
2628
+ padding: 0.25rem 0.625rem;
2629
+ }
2630
+ .pollar-swap-max:hover:not(:disabled),
2631
+ .pollar-swap-custom-toggle:hover:not(:disabled) {
2632
+ text-decoration: underline;
2633
+ }
2634
+ .pollar-swap-max:disabled,
2635
+ .pollar-swap-custom-toggle:disabled {
2636
+ cursor: not-allowed;
2637
+ opacity: 0.45;
2638
+ }
2639
+ .pollar-swap-reverse {
2640
+ position: absolute;
2641
+ z-index: 1;
2642
+ top: 50%;
2643
+ left: 50%;
2644
+ display: flex;
2645
+ align-items: center;
2646
+ justify-content: center;
2647
+ width: 2.5rem;
2648
+ height: 2.5rem;
2649
+ padding: 0;
2650
+ border: 4px solid var(--pollar-bg);
2651
+ border-radius: 50%;
2652
+ background: var(--pollar-accent);
2653
+ color: var(--pollar-btn-primary-fg, #fff);
2654
+ cursor: pointer;
2655
+ transform: translate(-50%, -50%);
2656
+ transition: transform 0.15s, filter 0.15s;
2657
+ }
2658
+ .pollar-swap-reverse:hover:not(:disabled) {
2659
+ filter: brightness(1.08);
2660
+ transform: translate(-50%, -50%) scale(1.05);
2661
+ }
2662
+ .pollar-swap-reverse:disabled {
2663
+ cursor: not-allowed;
2664
+ opacity: 0.45;
2665
+ }
2666
+ .pollar-swap-panel-note {
2667
+ color: var(--pollar-muted);
2668
+ font-size: 0.625rem;
2669
+ }
2670
+ .pollar-swap-custom-area {
2671
+ min-height: 1.25rem;
2672
+ padding: 0.25rem 0.25rem 0;
2673
+ }
2674
+ .pollar-swap-custom-toggle {
2675
+ padding: 0;
2676
+ }
2677
+ .pollar-swap-custom {
2678
+ display: flex;
2679
+ flex-direction: column;
2680
+ gap: 0.5rem;
2681
+ }
2682
+ .pollar-swap-custom-actions {
2683
+ display: flex;
2684
+ align-items: center;
2685
+ gap: 0.5rem;
2686
+ }
2687
+ .pollar-swap-custom-actions .pollar-btn-primary {
2688
+ height: 2.25rem;
2689
+ font-size: 0.75rem;
2690
+ }
1893
2691
  .pollar-swap-custom-cancel {
1894
- background: none;
1895
- border: none;
2692
+ border: 0;
2693
+ background: transparent;
1896
2694
  color: var(--pollar-muted);
1897
- font-size: 13px;
2695
+ font-size: 0.75rem;
1898
2696
  cursor: pointer;
1899
2697
  }
2698
+ .pollar-swap-rate-row {
2699
+ margin-top: 0.75rem;
2700
+ min-height: 2.25rem;
2701
+ color: var(--Color-Neutral-600, #475569);
2702
+ font-family: Geist, sans-serif;
2703
+ font-size: 0.875rem;
2704
+ font-style: normal;
2705
+ font-weight: 400;
2706
+ line-height: 1.25rem;
2707
+ letter-spacing: 0;
2708
+ }
2709
+ .pollar-swap-rate {
2710
+ min-width: 0;
2711
+ overflow: hidden;
2712
+ text-overflow: ellipsis;
2713
+ white-space: nowrap;
2714
+ }
2715
+ .pollar-swap-route-wrap {
2716
+ flex: 0 0 auto;
2717
+ }
2718
+ .pollar-swap-route-pill {
2719
+ display: inline-flex;
2720
+ align-items: center;
2721
+ max-width: 8.5rem;
2722
+ height: 2.25rem;
2723
+ padding: 0 1.8rem 0 0.75rem;
2724
+ appearance: none;
2725
+ border: 1px solid var(--pollar-border);
2726
+ border-radius: 999px;
2727
+ background-color: var(--pollar-input-bg);
2728
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
2729
+ background-position: right 0.65rem center;
2730
+ background-repeat: no-repeat;
2731
+ color: var(--pollar-text);
2732
+ font: inherit;
2733
+ font-size: 0.6875rem;
2734
+ font-weight: 700;
2735
+ cursor: pointer;
2736
+ }
2737
+ .pollar-swap-route-pill:focus-visible,
2738
+ .pollar-swap-max:focus-visible,
2739
+ .pollar-swap-custom-toggle:focus-visible,
2740
+ .pollar-swap-custom-cancel:focus-visible,
2741
+ .pollar-swap-reverse:focus-visible {
2742
+ outline: 2px solid var(--pollar-accent);
2743
+ outline-offset: 2px;
2744
+ }
2745
+ .pollar-swap-quote {
2746
+ display: flex;
2747
+ flex-direction: column;
2748
+ gap: 0.4rem;
2749
+ margin-top: 0.5rem;
2750
+ padding: 0.75rem;
2751
+ border: 1px solid var(--pollar-border);
2752
+ border-radius: 0.75rem;
2753
+ background: var(--pollar-input-bg);
2754
+ color: var(--pollar-muted);
2755
+ font-size: 0.6875rem;
2756
+ }
2757
+ .pollar-swap-quote strong {
2758
+ color: var(--pollar-text);
2759
+ font-weight: 600;
2760
+ }
1900
2761
  .pollar-swap-trustline-notice {
1901
- margin-bottom: 12px;
1902
- padding: 10px 12px;
2762
+ margin-top: 0.75rem;
2763
+ padding: 0.625rem 0.75rem;
1903
2764
  border: 1px solid var(--pollar-border);
1904
- border-radius: var(--pollar-card-border-radius);
2765
+ border-radius: 0.75rem;
1905
2766
  background: var(--pollar-input-bg);
1906
2767
  color: var(--pollar-muted);
1907
- font-size: 12px;
2768
+ font-size: 0.6875rem;
1908
2769
  line-height: 1.4;
1909
2770
  }
2771
+ .pollar-swap-modal .pollar-modal-actions {
2772
+ margin-top: 1rem;
2773
+ }
2774
+ .pollar-swap-modal .pollar-btn-primary {
2775
+ min-height: 3rem;
2776
+ border-radius: 999px;
2777
+ font-size: 0.9375rem;
2778
+ }
2779
+ .pollar-swap-modal .pollar-footer {
2780
+ justify-content: center;
2781
+ margin-top: 1rem;
2782
+ padding-top: 0.875rem;
2783
+ }
2784
+ @media (max-width: 480px) {
2785
+ .pollar-swap-modal {
2786
+ max-width: calc(100vw - 2rem);
2787
+ padding: 1.25rem;
2788
+ }
2789
+ .pollar-swap-panel-main {
2790
+ gap: 0.5rem;
2791
+ }
2792
+ .pollar-swap-amount,
2793
+ .pollar-swap-output {
2794
+ font-size: 1.5rem;
2795
+ }
2796
+ .pollar-swap-asset-pill-wrap {
2797
+ min-width: 6rem;
2798
+ }
2799
+ .pollar-swap-rate-row {
2800
+ align-items: flex-start;
2801
+ flex-wrap: wrap;
2802
+ }
2803
+ .pollar-swap-rate {
2804
+ flex: 1 1 9rem;
2805
+ }
2806
+ }
1910
2807
 
1911
2808
  /* src/components/earn-modal/EarnModal.css */
1912
2809
  .pollar-earn-amount {
@@ -1933,109 +2830,246 @@
1933
2830
 
1934
2831
  /* src/components/sessions-modal/SessionsModal.css */
1935
2832
  .pollar-sessions-modal {
1936
- max-width: 480px;
2833
+ display: flex;
2834
+ flex-direction: column;
2835
+ width: 420px;
2836
+ height: 574px;
2837
+ max-width: calc(100vw - 2rem);
2838
+ max-height: calc(100dvh - 2rem);
2839
+ overflow: hidden;
2840
+ padding-bottom: 0.75rem;
2841
+ }
2842
+ html.dark .pollar-sessions-modal {
2843
+ --pollar-bg: #1a1a1a !important;
2844
+ --pollar-border: #374151 !important;
2845
+ --pollar-text: #ffffff !important;
2846
+ --pollar-muted: #9ca3af !important;
2847
+ --pollar-input-bg: #374151 !important;
2848
+ --pollar-error-bg: #2a1515 !important;
2849
+ --pollar-error-border: #7f1d1d !important;
2850
+ --pollar-error-text: #f87171 !important;
2851
+ --pollar-success-text: #4ade80 !important;
1937
2852
  }
1938
2853
  .pollar-sessions-list {
1939
2854
  display: flex;
2855
+ flex: 0 0 auto;
1940
2856
  flex-direction: column;
1941
- gap: 0.625rem;
1942
- max-height: 380px;
1943
- overflow-y: auto;
1944
- margin-bottom: 1rem;
2857
+ gap: 1rem;
2858
+ margin-bottom: 0.85rem;
1945
2859
  }
1946
- .pollar-sessions-item {
2860
+ .pollar-sessions-current-card {
2861
+ display: flex;
2862
+ flex-direction: column;
2863
+ align-items: center;
2864
+ justify-content: center;
2865
+ gap: 0.45rem;
2866
+ min-height: 190px;
2867
+ padding: 1.5rem 1.25rem;
2868
+ box-sizing: border-box;
2869
+ border: 0;
2870
+ border-radius: calc(var(--pollar-card-border-radius, 10px) + 4px);
2871
+ background: color-mix(in srgb, var(--pollar-accent) 7%, var(--pollar-bg));
2872
+ text-align: center;
2873
+ }
2874
+ .pollar-sessions-current-icon-wrap {
2875
+ position: relative;
1947
2876
  display: grid;
1948
- grid-template-columns: 1fr auto;
1949
- grid-template-rows: auto auto;
1950
- column-gap: 0.75rem;
1951
- row-gap: 0.125rem;
1952
- background: var(--pollar-input-bg);
2877
+ place-items: center;
2878
+ width: 70px;
2879
+ height: 70px;
2880
+ margin-bottom: 0.35rem;
2881
+ border-radius: 20px;
2882
+ background:
2883
+ linear-gradient(
2884
+ 123.69deg,
2885
+ #0560a9 0%,
2886
+ #053f70 66.67%);
2887
+ color: #fff;
2888
+ box-shadow: 0 10px 22px -6px #0560a973;
2889
+ }
2890
+ .pollar-sessions-current-check {
2891
+ position: absolute;
2892
+ right: -5px;
2893
+ bottom: -5px;
2894
+ display: grid;
2895
+ place-items: center;
2896
+ width: 23px;
2897
+ height: 23px;
2898
+ border: 3px solid var(--pollar-bg);
2899
+ border-radius: 50%;
2900
+ background: #16a34a;
2901
+ color: #fff;
2902
+ }
2903
+ .pollar-sessions-current-label,
2904
+ .pollar-sessions-section-title {
2905
+ color: var(--pollar-muted);
2906
+ font-size: 0.6875rem;
2907
+ font-weight: 750;
2908
+ letter-spacing: 0.09em;
2909
+ text-transform: uppercase;
2910
+ }
2911
+ .pollar-sessions-current-device {
2912
+ color: var(--pollar-text);
2913
+ font-size: 1rem;
2914
+ font-weight: 700;
2915
+ }
2916
+ .pollar-sessions-current-status {
2917
+ display: flex;
2918
+ align-items: center;
2919
+ gap: 0.4rem;
2920
+ color: var(--pollar-muted);
2921
+ font-size: 0.75rem;
2922
+ }
2923
+ .pollar-sessions-status-dot {
2924
+ width: 7px;
2925
+ height: 7px;
2926
+ border-radius: 50%;
2927
+ background: #16a34a;
2928
+ box-shadow: 0 0 0 3px color-mix(in srgb, #16a34a 15%, transparent);
2929
+ }
2930
+ .pollar-sessions-other-section {
2931
+ display: flex;
2932
+ flex-direction: column;
2933
+ gap: 0.65rem;
2934
+ }
2935
+ .pollar-sessions-section-title {
2936
+ display: flex;
2937
+ align-items: center;
2938
+ gap: 0.35rem;
2939
+ margin: 0 0 0.1rem;
2940
+ }
2941
+ .pollar-sessions-section-title span {
2942
+ color: var(--pollar-accent);
2943
+ }
2944
+ .pollar-sessions-grid {
2945
+ display: grid;
2946
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2947
+ gap: 0.65rem;
2948
+ }
2949
+ .pollar-sessions-item {
2950
+ display: flex;
2951
+ min-width: 0;
2952
+ flex-direction: column;
2953
+ gap: 0.45rem;
2954
+ padding: 0.85rem;
1953
2955
  border: 1px solid var(--pollar-border);
1954
2956
  border-radius: var(--pollar-card-border-radius, 10px);
1955
- padding: 0.75rem 1rem;
1956
- }
1957
- .pollar-sessions-item[data-current] {
1958
- border-color: var(--pollar-accent);
2957
+ background: transparent;
1959
2958
  }
1960
- .pollar-sessions-item-main {
2959
+ .pollar-sessions-item-top {
1961
2960
  display: flex;
1962
2961
  align-items: center;
2962
+ justify-content: space-between;
1963
2963
  gap: 0.5rem;
1964
- min-width: 0;
2964
+ }
2965
+ .pollar-sessions-item-icon {
2966
+ display: grid;
2967
+ place-items: center;
2968
+ width: 30px;
2969
+ height: 30px;
2970
+ border-radius: 8px;
2971
+ background: color-mix(in srgb, var(--pollar-accent) 7%, var(--pollar-bg));
2972
+ color: var(--pollar-accent);
1965
2973
  }
1966
2974
  .pollar-sessions-item-device {
1967
- font-size: 0.875rem;
1968
- font-weight: 500;
1969
- color: var(--pollar-text);
1970
2975
  overflow: hidden;
2976
+ color: var(--pollar-text);
2977
+ font-size: 0.8125rem;
2978
+ font-weight: 650;
1971
2979
  text-overflow: ellipsis;
1972
2980
  white-space: nowrap;
1973
2981
  }
1974
- .pollar-sessions-item-badge {
1975
- font-size: 0.6875rem;
1976
- font-weight: 600;
1977
- padding: 2px 8px;
1978
- border-radius: 999px;
1979
- text-transform: uppercase;
1980
- letter-spacing: 0.04em;
1981
- background: rgba(0, 93, 180, 0.12);
1982
- color: var(--pollar-accent);
1983
- white-space: nowrap;
1984
- }
1985
2982
  .pollar-sessions-item-meta {
1986
- font-size: 0.75rem;
1987
2983
  color: var(--pollar-muted);
1988
- display: flex;
1989
- gap: 0.5rem;
1990
- align-items: center;
1991
- grid-column: 1;
2984
+ font-size: 0.75rem;
1992
2985
  }
1993
2986
  .pollar-sessions-item-revoke {
1994
- grid-row: 1 / 3;
1995
- grid-column: 2;
1996
- align-self: center;
1997
- background: none;
1998
- border: 1px solid var(--pollar-border);
1999
- border-radius: var(--pollar-buttons-border-radius, 6px);
2000
- padding: 6px 12px;
2001
- font-size: 0.75rem;
2002
- font-weight: 500;
2003
- color: var(--pollar-error-text, #dc2626);
2987
+ display: grid;
2988
+ place-items: center;
2989
+ flex: 0 0 auto;
2990
+ width: 28px;
2991
+ height: 28px;
2992
+ padding: 0;
2993
+ border: 0;
2994
+ border-radius: 8px;
2995
+ background: color-mix(in srgb, var(--pollar-accent) 7%, var(--pollar-bg));
2996
+ color: var(--pollar-muted);
2004
2997
  cursor: pointer;
2005
- transition: background 150ms, border-color 150ms;
2998
+ transition:
2999
+ background-color 150ms,
3000
+ border-color 150ms,
3001
+ color 150ms;
2006
3002
  }
2007
3003
  .pollar-sessions-item-revoke:hover:not(:disabled) {
2008
- background: var(--pollar-error-bg, #fef2f2);
2009
3004
  border-color: var(--pollar-error-border, #fecaca);
3005
+ background: var(--pollar-error-bg, #fef2f2);
3006
+ color: var(--pollar-error-text, #dc2626);
2010
3007
  }
2011
- .pollar-sessions-item-revoke:disabled {
2012
- opacity: 0.5;
3008
+ .pollar-sessions-item-revoke:disabled,
3009
+ .pollar-sessions-logout-all:disabled {
2013
3010
  cursor: not-allowed;
3011
+ opacity: 0.5;
3012
+ }
3013
+ .pollar-sessions-action-error {
3014
+ padding: 0.7rem 0.85rem;
3015
+ border: 1px solid var(--pollar-error-border, #fecaca);
3016
+ border-radius: var(--pollar-card-border-radius, 10px);
3017
+ background: var(--pollar-error-bg, #fef2f2);
3018
+ color: var(--pollar-error-text, #dc2626);
3019
+ font-size: 0.75rem;
2014
3020
  }
2015
3021
  .pollar-sessions-actions {
2016
- display: flex;
2017
- justify-content: center;
2018
- padding-top: 0.5rem;
2019
- border-top: 1px solid var(--pollar-border);
2020
- margin-bottom: 0.75rem;
3022
+ flex: 0 0 auto;
3023
+ margin-bottom: 0.85rem;
3024
+ }
3025
+ .pollar-sessions-modal .pollar-footer {
3026
+ flex: 0 0 auto;
3027
+ padding-top: 0.75rem;
2021
3028
  }
2022
3029
  .pollar-sessions-logout-all {
2023
- background: none;
2024
- border: 1px solid var(--pollar-error-border, #fecaca);
2025
- border-radius: var(--pollar-buttons-border-radius, 6px);
2026
- padding: 8px 16px;
2027
- font-size: 0.8125rem;
2028
- font-weight: 500;
2029
- color: var(--pollar-error-text, #dc2626);
3030
+ display: flex;
3031
+ align-items: center;
3032
+ justify-content: center;
3033
+ width: 100%;
3034
+ min-height: 44px;
3035
+ gap: 0.5rem;
3036
+ padding: 0.7rem 1rem;
3037
+ border: 0;
3038
+ border-radius: 999px;
3039
+ background: var(--pollar-error-text, #dc2626);
3040
+ color: #fff;
3041
+ font-size: 0.875rem;
3042
+ font-weight: 700;
2030
3043
  cursor: pointer;
2031
- transition: background 150ms;
3044
+ transition:
3045
+ background-color 150ms,
3046
+ opacity 150ms,
3047
+ box-shadow 150ms;
2032
3048
  }
2033
3049
  .pollar-sessions-logout-all:hover:not(:disabled) {
2034
- background: var(--pollar-error-bg, #fef2f2);
3050
+ background: color-mix(in srgb, var(--pollar-error-text, #dc2626) 86%, #000);
3051
+ box-shadow: 0 5px 14px color-mix(in srgb, var(--pollar-error-text, #dc2626) 22%, transparent);
2035
3052
  }
2036
3053
  .pollar-sessions-logout-all:disabled {
2037
- opacity: 0.4;
2038
- cursor: not-allowed;
3054
+ background: var(--pollar-error-text, #dc2626);
3055
+ }
3056
+ .pollar-sessions-item-revoke:focus-visible,
3057
+ .pollar-sessions-logout-all:focus-visible,
3058
+ .pollar-modal-close:focus-visible {
3059
+ outline: 2px solid var(--pollar-accent);
3060
+ outline-offset: 2px;
3061
+ }
3062
+ @media (max-width: 480px) {
3063
+ .pollar-sessions-modal {
3064
+ max-width: 100%;
3065
+ }
3066
+ .pollar-sessions-grid {
3067
+ grid-template-columns: 1fr;
3068
+ }
3069
+ .pollar-sessions-current-card {
3070
+ min-height: 200px;
3071
+ padding: 1.5rem 1rem;
3072
+ }
2039
3073
  }
2040
3074
 
2041
3075
  /* src/components/tx-history-modal/TxHistoryModal.css */
@@ -2192,95 +3226,213 @@
2192
3226
 
2193
3227
  /* src/components/wallet-balance-modal/WalletBalanceModal.css */
2194
3228
  .pollar-bal-modal {
2195
- max-width: 380px;
3229
+ display: flex;
3230
+ flex-direction: column;
3231
+ width: 100%;
3232
+ max-width: 400px;
3233
+ max-height: calc(100dvh - 2rem);
3234
+ overflow: hidden;
3235
+ padding: 1.5rem;
3236
+ }
3237
+ .pollar-bal-summary {
3238
+ flex: 0 0 auto;
3239
+ margin-bottom: 1rem;
3240
+ padding: 1rem 1.125rem 1.125rem;
3241
+ border-radius: 1rem;
3242
+ background:
3243
+ linear-gradient(
3244
+ 135deg,
3245
+ var(--pollar-accent),
3246
+ color-mix(in srgb, var(--pollar-accent) 68%, #0f172a));
3247
+ color: var(--pollar-btn-primary-fg, #ffffff);
3248
+ box-shadow: 0 12px 24px color-mix(in srgb, var(--pollar-accent) 18%, transparent);
3249
+ }
3250
+ .pollar-bal-summary-topline {
3251
+ display: flex;
3252
+ align-items: center;
3253
+ justify-content: space-between;
3254
+ gap: 0.75rem;
3255
+ }
3256
+ .pollar-bal-summary-label {
3257
+ font-size: 0.625rem;
3258
+ font-weight: 800;
3259
+ letter-spacing: 0.08em;
3260
+ opacity: 0.78;
3261
+ }
3262
+ .pollar-bal-summary-address {
3263
+ display: inline-flex;
3264
+ align-items: center;
3265
+ min-width: 0;
3266
+ gap: 0.35rem;
3267
+ padding: 0.25rem 0.35rem 0.25rem 0.55rem;
3268
+ border: 1px solid rgba(255, 255, 255, 0.22);
3269
+ border-radius: 999px;
3270
+ background: rgba(15, 23, 42, 0.2);
3271
+ font-family: monospace;
3272
+ font-size: 0.625rem;
3273
+ white-space: nowrap;
3274
+ }
3275
+ .pollar-bal-summary-copy {
3276
+ width: 20px;
3277
+ height: 20px;
3278
+ border: 0;
3279
+ border-radius: 50%;
3280
+ background: transparent;
3281
+ color: currentColor;
3282
+ }
3283
+ .pollar-bal-summary-copy:hover {
3284
+ border: 0;
3285
+ color: currentColor;
3286
+ background: rgba(255, 255, 255, 0.14);
3287
+ }
3288
+ .pollar-bal-summary-value {
3289
+ margin-top: 1rem;
3290
+ font-size: 1.75rem;
3291
+ font-weight: 750;
3292
+ letter-spacing: -0.04em;
3293
+ line-height: 1;
3294
+ }
3295
+ .pollar-bal-summary-unavailable {
3296
+ display: block;
3297
+ margin-top: 0.5rem;
3298
+ font-size: 0.6875rem;
3299
+ opacity: 0.78;
2196
3300
  }
2197
3301
  .pollar-bal-list {
2198
3302
  display: flex;
3303
+ flex: 1 1 auto;
3304
+ min-height: 0;
2199
3305
  flex-direction: column;
2200
- gap: 0.5rem;
2201
- margin-bottom: 1rem;
3306
+ overflow-y: auto;
3307
+ overscroll-behavior: contain;
3308
+ scrollbar-width: thin;
2202
3309
  }
2203
3310
  .pollar-bal-item {
2204
3311
  display: flex;
2205
3312
  align-items: center;
2206
3313
  justify-content: space-between;
2207
- background: var(--pollar-input-bg);
2208
- border: 1px solid var(--pollar-border);
2209
- border-radius: var(--pollar-card-border-radius, 10px);
2210
- padding: 0.75rem 1rem;
3314
+ min-height: 4.25rem;
3315
+ gap: 0.75rem;
3316
+ padding: 0.75rem 0.125rem;
3317
+ border-bottom: 1px solid var(--pollar-border);
3318
+ }
3319
+ .pollar-bal-item:first-child {
3320
+ padding-top: 0.375rem;
3321
+ }
3322
+ .pollar-bal-item:last-child {
3323
+ border-bottom: 0;
2211
3324
  }
2212
3325
  .pollar-bal-asset-info {
2213
3326
  display: flex;
3327
+ min-width: 0;
3328
+ flex: 1;
2214
3329
  flex-direction: column;
2215
- gap: 0.1875rem;
3330
+ gap: 0.25rem;
3331
+ }
3332
+ .pollar-bal-asset-leading {
3333
+ display: flex;
3334
+ align-items: center;
2216
3335
  min-width: 0;
3336
+ gap: 0.625rem;
2217
3337
  }
2218
- .pollar-bal-asset-code-row {
3338
+ .pollar-bal-asset-icon {
2219
3339
  display: inline-flex;
2220
3340
  align-items: center;
2221
- gap: 0.4375rem;
3341
+ justify-content: center;
3342
+ flex: 0 0 2rem;
3343
+ width: 2rem;
3344
+ height: 2rem;
3345
+ border-radius: 50%;
3346
+ background: color-mix(in srgb, var(--pollar-accent) 13%, var(--pollar-input-bg));
3347
+ color: var(--pollar-accent);
3348
+ font-size: 0.625rem;
3349
+ font-weight: 800;
3350
+ }
3351
+ .pollar-bal-asset-copy {
3352
+ display: flex;
3353
+ min-width: 0;
3354
+ flex-direction: column;
3355
+ gap: 0.125rem;
2222
3356
  }
2223
3357
  .pollar-bal-asset {
2224
- font-size: 0.875rem;
2225
- font-weight: 600;
3358
+ overflow: hidden;
2226
3359
  color: var(--pollar-text);
3360
+ font-size: 0.8125rem;
3361
+ font-weight: 700;
3362
+ text-overflow: ellipsis;
3363
+ white-space: nowrap;
3364
+ }
3365
+ .pollar-bal-asset-secondary {
3366
+ overflow: hidden;
3367
+ color: var(--pollar-muted);
3368
+ font-family: monospace;
3369
+ font-size: 0.625rem;
3370
+ text-overflow: ellipsis;
3371
+ white-space: nowrap;
3372
+ }
3373
+ .pollar-bal-asset-secondary .pollar-copy-btn {
3374
+ margin-left: 0.25rem;
3375
+ vertical-align: middle;
2227
3376
  }
2228
3377
  .pollar-bal-faucet-hint {
2229
- font-size: 0.6875rem;
3378
+ padding-left: 2.625rem;
2230
3379
  color: var(--pollar-muted);
3380
+ font-size: 0.625rem;
2231
3381
  }
2232
3382
  .pollar-bal-faucet-hint a {
2233
3383
  color: var(--pollar-accent);
2234
- text-decoration: none;
2235
3384
  font-weight: 600;
3385
+ text-decoration: none;
2236
3386
  }
2237
3387
  .pollar-bal-faucet-hint a:hover {
2238
3388
  text-decoration: underline;
2239
3389
  }
2240
3390
  .pollar-bal-faucet-net {
2241
- font-size: 0.625rem;
3391
+ font-size: 0.5625rem;
2242
3392
  opacity: 0.8;
2243
3393
  }
2244
- .pollar-bal-chain-tag {
2245
- font-size: 0.625rem;
2246
- font-weight: 600;
2247
- line-height: 1;
2248
- letter-spacing: 0.02em;
2249
- text-transform: uppercase;
2250
- padding: 0.1875rem 0.375rem;
2251
- border-radius: 4px;
2252
- color: var(--pollar-chain-color, var(--pollar-muted));
2253
- background: color-mix(in srgb, var(--pollar-chain-color, #6b7280) 14%, transparent);
2254
- border: 1px solid color-mix(in srgb, var(--pollar-chain-color, #6b7280) 34%, transparent);
2255
- }
2256
- .pollar-bal-issuer {
2257
- display: inline-flex;
2258
- align-items: center;
2259
- gap: 0.25rem;
2260
- }
2261
- .pollar-bal-issuer-addr {
2262
- font-size: 0.6875rem;
2263
- font-family: monospace;
2264
- color: var(--pollar-muted);
2265
- }
2266
3394
  .pollar-bal-amounts {
2267
3395
  display: flex;
3396
+ flex: 0 0 auto;
3397
+ min-width: 0;
2268
3398
  flex-direction: column;
2269
3399
  align-items: flex-end;
2270
3400
  gap: 0.125rem;
2271
3401
  }
2272
- .pollar-bal-amount {
2273
- font-size: 0.9375rem;
2274
- font-weight: 700;
2275
- color: var(--pollar-text);
3402
+ .pollar-bal-amount,
3403
+ .pollar-bal-available {
3404
+ max-width: 11rem;
3405
+ overflow: hidden;
2276
3406
  font-family: monospace;
2277
3407
  font-variant-numeric: tabular-nums;
3408
+ text-overflow: ellipsis;
3409
+ white-space: nowrap;
3410
+ }
3411
+ .pollar-bal-amount {
3412
+ color: var(--pollar-text);
3413
+ font-size: 0.75rem;
3414
+ font-weight: 700;
2278
3415
  }
2279
3416
  .pollar-bal-available {
2280
- font-size: 0.6875rem;
2281
3417
  color: var(--pollar-muted);
2282
- font-family: monospace;
2283
- font-variant-numeric: tabular-nums;
3418
+ font-size: 0.625rem;
3419
+ }
3420
+ @media (max-width: 480px) {
3421
+ .pollar-bal-modal {
3422
+ max-width: calc(100vw - 2rem);
3423
+ padding: 1.25rem;
3424
+ }
3425
+ .pollar-bal-summary-topline {
3426
+ align-items: flex-start;
3427
+ flex-direction: column;
3428
+ gap: 0.5rem;
3429
+ }
3430
+ .pollar-bal-summary-address {
3431
+ max-width: 100%;
3432
+ }
3433
+ .pollar-bal-item {
3434
+ min-height: 4rem;
3435
+ }
2284
3436
  }
2285
3437
 
2286
3438
  /* src/components/wallet-button/WalletButton.css */
@@ -2373,6 +3525,12 @@
2373
3525
  .pollar-wallet-dropdown-item.pollar-danger:hover {
2374
3526
  background: #fef2f2;
2375
3527
  }
3528
+ .pollar-wallet-dropdown-notice {
3529
+ padding: 8px 12px;
3530
+ font-size: 12px;
3531
+ line-height: 1.4;
3532
+ opacity: 0.8;
3533
+ }
2376
3534
  .pollar-wallet-dropdown-divider {
2377
3535
  height: 1px;
2378
3536
  background: rgba(0, 0, 0, 0.08);