@metropolle/design-system 1.2025.1-2.5.1903 → 1.2026.0-1.10.2344

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.
Files changed (54) hide show
  1. package/dist/css/compat/back.css +12 -0
  2. package/dist/css/components.css +2594 -144
  3. package/dist/css/liquid-glass.css +468 -0
  4. package/dist/react/components/react/Button/Button.d.ts +1 -1
  5. package/dist/react/components/react/Button/Button.d.ts.map +1 -1
  6. package/dist/react/components/react/DataTable/DataTable.d.ts.map +1 -1
  7. package/dist/react/components/react/DataTable/TableHeader.d.ts.map +1 -1
  8. package/dist/react/components/react/DataTable/TableRow.d.ts.map +1 -1
  9. package/dist/react/components/react/DataTable/types.d.ts +2 -1
  10. package/dist/react/components/react/DataTable/types.d.ts.map +1 -1
  11. package/dist/react/components/react/DetailModal/DetailModal.d.ts +55 -0
  12. package/dist/react/components/react/DetailModal/DetailModal.d.ts.map +1 -0
  13. package/dist/react/components/react/DetailModal/index.d.ts +3 -0
  14. package/dist/react/components/react/DetailModal/index.d.ts.map +1 -0
  15. package/dist/react/components/react/FormField/FormField.d.ts +26 -0
  16. package/dist/react/components/react/FormField/FormField.d.ts.map +1 -0
  17. package/dist/react/components/react/FormField/index.d.ts +3 -0
  18. package/dist/react/components/react/FormField/index.d.ts.map +1 -0
  19. package/dist/react/components/react/FormGrid/FormGrid.d.ts +20 -0
  20. package/dist/react/components/react/FormGrid/FormGrid.d.ts.map +1 -0
  21. package/dist/react/components/react/FormGrid/index.d.ts +3 -0
  22. package/dist/react/components/react/FormGrid/index.d.ts.map +1 -0
  23. package/dist/react/components/react/FormModal/FormModal.d.ts +58 -0
  24. package/dist/react/components/react/FormModal/FormModal.d.ts.map +1 -0
  25. package/dist/react/components/react/FormModal/index.d.ts +3 -0
  26. package/dist/react/components/react/FormModal/index.d.ts.map +1 -0
  27. package/dist/react/components/react/FormSection/FormSection.d.ts +20 -0
  28. package/dist/react/components/react/FormSection/FormSection.d.ts.map +1 -0
  29. package/dist/react/components/react/FormSection/index.d.ts +3 -0
  30. package/dist/react/components/react/FormSection/index.d.ts.map +1 -0
  31. package/dist/react/components/react/GlassCard/GlassCard.d.ts +56 -6
  32. package/dist/react/components/react/GlassCard/GlassCard.d.ts.map +1 -1
  33. package/dist/react/components/react/GlassCard/index.d.ts +1 -1
  34. package/dist/react/components/react/GlassCard/index.d.ts.map +1 -1
  35. package/dist/react/components/react/InfoBox/InfoBox.d.ts +46 -0
  36. package/dist/react/components/react/InfoBox/InfoBox.d.ts.map +1 -0
  37. package/dist/react/components/react/InfoBox/index.d.ts +3 -0
  38. package/dist/react/components/react/InfoBox/index.d.ts.map +1 -0
  39. package/dist/react/components/react/Modal/Modal.d.ts.map +1 -1
  40. package/dist/react/components/react/Modal/ModalHeader.d.ts.map +1 -1
  41. package/dist/react/components/react/ProfileCard/ProfileCard.d.ts +55 -0
  42. package/dist/react/components/react/ProfileCard/ProfileCard.d.ts.map +1 -0
  43. package/dist/react/components/react/ProfileCard/index.d.ts +3 -0
  44. package/dist/react/components/react/ProfileCard/index.d.ts.map +1 -0
  45. package/dist/react/components/react/Select/Select.d.ts +61 -10
  46. package/dist/react/components/react/Select/Select.d.ts.map +1 -1
  47. package/dist/react/components/react/index.d.ts +15 -1
  48. package/dist/react/components/react/index.d.ts.map +1 -1
  49. package/dist/react/index.d.ts +32 -18
  50. package/dist/react/index.esm.js +826 -77
  51. package/dist/react/index.esm.js.map +1 -1
  52. package/dist/react/index.js +832 -75
  53. package/dist/react/index.js.map +1 -1
  54. package/package.json +5 -2
@@ -44,131 +44,11 @@
44
44
 
45
45
  /* =========================
46
46
  Modal Styles
47
+ NOTE: Modal styling is handled 100% via inline styles in Modal.tsx
48
+ (same approach as ProfileCard for visual consistency)
49
+ NO CSS classes are used for the modal card itself.
47
50
  ========================= */
48
51
 
49
- /* Modal overlay styles */
50
- .mds-modal-overlay,
51
- .modal-overlay {
52
- position: fixed !important;
53
- top: 0 !important;
54
- left: 0 !important;
55
- right: 0 !important;
56
- bottom: 0 !important;
57
- background-color: transparent !important;
58
- backdrop-filter: blur(4px) !important;
59
- z-index: 9999 !important;
60
- display: flex !important;
61
- align-items: center !important;
62
- justify-content: center !important;
63
- }
64
-
65
- /* Modal card styles - Liquid Glass Effect */
66
- .mds-modal-overlay .mds-modal-card,
67
- .modal-overlay .mds-modal-card {
68
- background: rgba(255, 255, 255, 0.3) !important;
69
- backdrop-filter: blur(20px) !important;
70
- -webkit-backdrop-filter: blur(20px) !important;
71
- border: 1px solid rgba(255, 255, 255, 0.4) !important;
72
- box-shadow:
73
- 0 8px 32px rgba(0, 0, 0, 0.2) !important,
74
- 0 0 0 1px rgba(255, 255, 255, 0.2) !important,
75
- inset 0 1px 0 rgba(255, 255, 255, 0.4) !important;
76
- color: var(--text-primary) !important;
77
- min-width: 320px !important;
78
- max-width: 600px !important;
79
- width: 90vw !important;
80
- border-radius: 16px !important;
81
- position: relative !important;
82
- overflow: hidden !important;
83
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
84
- transform: translate(0, 0) !important;
85
- }
86
-
87
- /* Inner glow effect */
88
- .mds-modal-overlay .mds-modal-card::before,
89
- .modal-overlay .mds-modal-card::before {
90
- content: '' !important;
91
- position: absolute !important;
92
- top: 0 !important;
93
- left: 0 !important;
94
- right: 0 !important;
95
- bottom: 0 !important;
96
- background: linear-gradient(
97
- 135deg,
98
- rgba(255, 255, 255, 0.1) 0%,
99
- rgba(255, 255, 255, 0.05) 50%,
100
- rgba(255, 255, 255, 0.02) 100%
101
- ) !important;
102
- border-radius: 16px !important;
103
- pointer-events: none !important;
104
- z-index: -1 !important;
105
- }
106
-
107
- /* Border glow */
108
- .mds-modal-overlay .mds-modal-card::after,
109
- .modal-overlay .mds-modal-card::after {
110
- content: '' !important;
111
- position: absolute !important;
112
- top: -1px !important;
113
- left: -1px !important;
114
- right: -1px !important;
115
- bottom: -1px !important;
116
- background: linear-gradient(
117
- 45deg,
118
- rgba(255, 255, 255, 0.3),
119
- rgba(255, 255, 255, 0.1),
120
- rgba(255, 255, 255, 0.05),
121
- rgba(255, 255, 255, 0.1),
122
- rgba(255, 255, 255, 0.3)
123
- ) !important;
124
- border-radius: 16px !important;
125
- z-index: -2 !important;
126
- opacity: 0.6 !important;
127
- animation: mdsLiquidBorder 3s ease-in-out infinite !important;
128
- }
129
-
130
- @keyframes mdsLiquidBorder {
131
- 0%, 100% { opacity: 0.6; transform: scale(1); }
132
- 50% { opacity: 0.8; transform: scale(1.02); }
133
- }
134
-
135
- /* No hover lift or color change */
136
- .mds-modal-overlay .mds-modal-card,
137
- .mds-modal-overlay .mds-modal-card:hover,
138
- .modal-overlay .mds-modal-card,
139
- .modal-overlay .mds-modal-card:hover {
140
- transform: none !important;
141
- }
142
- .mds-modal-overlay .mds-modal-card:hover::after,
143
- .modal-overlay .mds-modal-card:hover::after {
144
- opacity: 0.6 !important;
145
- animation-duration: 3s !important;
146
- }
147
-
148
- /* Light theme */
149
- html[data-theme="light"] .mds-modal-overlay .mds-modal-card,
150
- html[data-theme="light"] .modal-overlay .mds-modal-card {
151
- background: rgba(255, 255, 255, 0.35) !important;
152
- border: 1px solid rgba(255, 255, 255, 0.5) !important;
153
- box-shadow:
154
- 0 8px 32px rgba(0, 0, 0, 0.15) !important,
155
- 0 0 0 1px rgba(255, 255, 255, 0.3) !important,
156
- inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
157
- }
158
-
159
- /* Dark theme */
160
- html[data-theme="dark"] .mds-modal-overlay .mds-modal-card,
161
- html:not([data-theme]) .mds-modal-overlay .mds-modal-card,
162
- html[data-theme="dark"] .modal-overlay .mds-modal-card,
163
- html:not([data-theme]) .modal-overlay .mds-modal-card {
164
- background: rgba(30, 41, 59, 0.5) !important;
165
- border: 1px solid rgba(255, 255, 255, 0.35) !important;
166
- box-shadow:
167
- 0 8px 32px rgba(0, 0, 0, 0.5) !important,
168
- 0 0 0 1px rgba(255, 255, 255, 0.25) !important,
169
- inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
170
- }
171
-
172
52
  /* Header close button sizing + alignment */
173
53
  .mds-modal-header > button[aria-label="Fechar"] {
174
54
  /* Size and reset */
@@ -282,6 +162,31 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
282
162
  background: var(--mds-color-background-secondary);
283
163
  }
284
164
 
165
+ /* Subtle variant - minimal border, muted colors, perfect for navigation buttons */
166
+ .mds-button--subtle {
167
+ background: transparent;
168
+ border: 1px solid var(--mds-liquid-border-subtle, rgba(255, 255, 255, 0.12));
169
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.7));
170
+ }
171
+
172
+ .mds-button--subtle:hover:not(:disabled) {
173
+ background: var(--mds-liquid-bg-button, rgba(255, 255, 255, 0.08));
174
+ border-color: var(--mds-liquid-border-bright, rgba(255, 255, 255, 0.2));
175
+ color: var(--mds-color-text-primary);
176
+ }
177
+
178
+ /* Light theme adjustments for subtle */
179
+ html[data-theme="light"] .mds-button--subtle {
180
+ border-color: var(--mds-liquid-border-subtle, rgba(0, 0, 0, 0.12));
181
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.6));
182
+ }
183
+
184
+ html[data-theme="light"] .mds-button--subtle:hover:not(:disabled) {
185
+ background: var(--mds-liquid-bg-button, rgba(0, 0, 0, 0.05));
186
+ border-color: var(--mds-liquid-border-bright, rgba(0, 0, 0, 0.2));
187
+ color: var(--mds-color-text-primary);
188
+ }
189
+
285
190
  .mds-button--glass {
286
191
  background: var(--mds-color-background-glass-light);
287
192
  color: var(--mds-color-text-primary);
@@ -298,6 +203,18 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
298
203
  box-shadow: var(--mds-spacing-shadow-glass-lightHover);
299
204
  }
300
205
 
206
+ .mds-button--danger {
207
+ background: var(--mds-color-error, #dc2626);
208
+ color: #ffffff;
209
+ border: 1px solid transparent;
210
+ }
211
+
212
+ .mds-button--danger:hover:not(:disabled) {
213
+ background: #b91c1c;
214
+ transform: var(--mds-effects-transform-hoverUp);
215
+ box-shadow: 0 4px 12px rgba(220, 38, 38, 0.3);
216
+ }
217
+
301
218
  /* Button Icons */
302
219
  .mds-button__icon {
303
220
  display: inline-flex;
@@ -460,17 +377,59 @@ html:not([data-theme]) .modal-overlay .mds-modal-card {
460
377
  font-family: var(--mds-typography-fontFamily-brand);
461
378
  }
462
379
 
380
+ /* Brand Logo Size Variants - Consistent across all environments */
381
+ .mds-brand-logo--sm {
382
+ font-size: 1.5rem; /* 24px - Navbar size */
383
+ letter-spacing: -0.03rem;
384
+ }
385
+
386
+ .mds-brand-logo--md {
387
+ font-size: 2rem; /* 32px - Medium contexts */
388
+ letter-spacing: -0.04rem;
389
+ }
390
+
391
+ .mds-brand-logo--lg {
392
+ font-size: 2.125rem; /* 34px - Landing/hero contexts */
393
+ letter-spacing: var(--mds-typography-letterSpacing-brand);
394
+ }
395
+
396
+ /* Navbar-specific brand logo - always consistent size */
397
+ .navbar-brand-logo,
398
+ .navbar__brand-logo,
399
+ .login-brand-logo {
400
+ font-size: 1.5rem !important;
401
+ letter-spacing: -0.03rem !important;
402
+ font-weight: var(--mds-typography-fontWeight-bold) !important;
403
+ font-family: var(--mds-typography-fontFamily-brand) !important;
404
+ color: var(--mds-color-text-primary) !important;
405
+ }
406
+
463
407
  /* Brand Logo Responsive */
464
408
  @media (max-width: 768px) {
465
409
  .mds-text--brand,
466
410
  .mds-brand-logo,
467
- .mds-brand-logo--sm,
468
- .mds-brand-logo--md,
469
- .mds-brand-logo--lg,
470
411
  .logo-brand {
471
412
  font-size: 1.8rem;
472
413
  letter-spacing: var(--mds-typography-letterSpacing-tight);
473
414
  }
415
+
416
+ .mds-brand-logo--sm,
417
+ .navbar-brand-logo,
418
+ .navbar__brand-logo,
419
+ .login-brand-logo {
420
+ font-size: 1.25rem !important;
421
+ letter-spacing: -0.02rem !important;
422
+ }
423
+
424
+ .mds-brand-logo--md {
425
+ font-size: 1.5rem;
426
+ letter-spacing: -0.03rem;
427
+ }
428
+
429
+ .mds-brand-logo--lg {
430
+ font-size: 1.8rem;
431
+ letter-spacing: var(--mds-typography-letterSpacing-tight);
432
+ }
474
433
  }
475
434
 
476
435
  /* Glass Card - Enhanced styles (complementing base tokens.css) */
@@ -972,6 +931,15 @@ html body div.mds-dropdown select.mds-select-themed {
972
931
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
973
932
  }
974
933
 
934
+ /* Readonly input display (non-editable) */
935
+ .mds-input-readonly {
936
+ padding: 10px 12px;
937
+ background-color: rgba(255, 255, 255, 0.05);
938
+ border-radius: 6px;
939
+ color: var(--mds-color-text-secondary, var(--text-secondary));
940
+ font-size: 0.95rem;
941
+ }
942
+
975
943
  /* Textarea specific styles */
976
944
  .mds-textarea {
977
945
  resize: vertical;
@@ -994,6 +962,377 @@ html body div.mds-dropdown select.mds-select-themed {
994
962
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
995
963
  }
996
964
 
965
+ /* Select dropdown option styles for .mds-input - fixes Edge/Windows dropdown visibility */
966
+ select.mds-input {
967
+ -webkit-appearance: none;
968
+ -moz-appearance: none;
969
+ appearance: none;
970
+ color-scheme: dark; /* Forces OS to render dropdown with dark theme on Edge/Chrome Windows */
971
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23374151' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
972
+ background-position: right var(--mds-spacing-md) center;
973
+ background-repeat: no-repeat;
974
+ background-size: 16px;
975
+ padding-right: calc(var(--mds-spacing-md) + 24px);
976
+ cursor: pointer;
977
+ }
978
+
979
+ select.mds-input:disabled {
980
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239CA3AF' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
981
+ cursor: not-allowed;
982
+ }
983
+
984
+ select.mds-input option {
985
+ background-color: var(--mds-dashboard-control-option-bg) !important;
986
+ color: var(--mds-dashboard-control-option-color) !important;
987
+ padding: var(--mds-spacing-xs) var(--mds-spacing-sm) !important;
988
+ }
989
+
990
+ select.mds-input option:hover,
991
+ select.mds-input option:focus,
992
+ select.mds-input option:checked {
993
+ background-color: var(--mds-dashboard-control-option-bg-hover) !important;
994
+ color: var(--mds-dashboard-control-option-color-hover) !important;
995
+ }
996
+
997
+ /* Light theme override for select.mds-input */
998
+ html[data-theme="light"] select.mds-input {
999
+ color-scheme: light;
1000
+ }
1001
+
1002
+ /* ============================================
1003
+ Custom Select Component (JavaScript-rendered dropdown)
1004
+ Cross-browser compatible - works on Edge/Chrome Windows
1005
+ ============================================ */
1006
+
1007
+ /* Select Trigger Button */
1008
+ .mds-select-trigger {
1009
+ display: inline-flex;
1010
+ align-items: center;
1011
+ justify-content: space-between;
1012
+ gap: 8px;
1013
+ width: 100%;
1014
+ min-width: 0;
1015
+ max-width: 100%;
1016
+ box-sizing: border-box;
1017
+ padding: 10px 12px;
1018
+ font-family: var(--mds-typography-fontFamily-brand, system-ui, sans-serif);
1019
+ font-size: 0.95rem;
1020
+ line-height: 1.5;
1021
+ color: var(--mds-color-text-primary, #ffffff);
1022
+ background-color: rgba(255, 255, 255, 0.08);
1023
+ border: 1px solid rgba(255, 255, 255, 0.15);
1024
+ border-radius: 8px;
1025
+ cursor: pointer;
1026
+ transition: all 0.2s ease;
1027
+ text-align: left;
1028
+ outline: none;
1029
+ overflow: hidden;
1030
+ }
1031
+
1032
+ .mds-select-trigger:hover:not(:disabled) {
1033
+ background-color: rgba(255, 255, 255, 0.12);
1034
+ border-color: rgba(255, 255, 255, 0.25);
1035
+ }
1036
+
1037
+ .mds-select-trigger:focus:not(:disabled) {
1038
+ border-color: var(--mds-color-primary, #3b82f6);
1039
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
1040
+ }
1041
+
1042
+ .mds-select-trigger--open {
1043
+ border-color: var(--mds-color-primary, #3b82f6);
1044
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.25);
1045
+ }
1046
+
1047
+ .mds-select-trigger--disabled {
1048
+ opacity: 0.5;
1049
+ cursor: not-allowed;
1050
+ background-color: rgba(255, 255, 255, 0.04);
1051
+ }
1052
+
1053
+ .mds-select-trigger--loading {
1054
+ cursor: wait;
1055
+ }
1056
+
1057
+ .mds-select-trigger--error {
1058
+ border-color: var(--mds-color-error, #ef4444);
1059
+ }
1060
+
1061
+ .mds-select-trigger--error:focus {
1062
+ box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.25);
1063
+ }
1064
+
1065
+ .mds-select-trigger--full-width {
1066
+ width: 100%;
1067
+ }
1068
+
1069
+ /* Select Trigger Value */
1070
+ .mds-select-trigger__value {
1071
+ flex: 1;
1072
+ overflow: hidden;
1073
+ text-overflow: ellipsis;
1074
+ white-space: nowrap;
1075
+ }
1076
+
1077
+ .mds-select-trigger__placeholder {
1078
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1079
+ }
1080
+
1081
+ /* Select Trigger Icon */
1082
+ .mds-select-trigger__icon {
1083
+ display: flex;
1084
+ align-items: center;
1085
+ justify-content: center;
1086
+ flex-shrink: 0;
1087
+ width: 20px;
1088
+ height: 20px;
1089
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1090
+ transition: transform 0.2s ease;
1091
+ }
1092
+
1093
+ .mds-select-trigger--open .mds-select-trigger__icon {
1094
+ transform: rotate(180deg);
1095
+ }
1096
+
1097
+ .mds-select-chevron {
1098
+ width: 16px;
1099
+ height: 16px;
1100
+ }
1101
+
1102
+ .mds-select-spinner {
1103
+ width: 16px;
1104
+ height: 16px;
1105
+ animation: mds-select-spin 1s linear infinite;
1106
+ }
1107
+
1108
+ @keyframes mds-select-spin {
1109
+ from { transform: rotate(0deg); }
1110
+ to { transform: rotate(360deg); }
1111
+ }
1112
+
1113
+ /* Select Dropdown */
1114
+ .mds-select-dropdown {
1115
+ background-color: var(--mds-dashboard-control-option-bg, #2a2a2a);
1116
+ border: 1px solid rgba(255, 255, 255, 0.15);
1117
+ border-radius: 8px;
1118
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
1119
+ overflow-y: auto;
1120
+ overflow-x: hidden;
1121
+ animation: mds-select-dropdown-enter 0.15s ease-out;
1122
+ }
1123
+
1124
+ @keyframes mds-select-dropdown-enter {
1125
+ from {
1126
+ opacity: 0;
1127
+ transform: translateY(-4px);
1128
+ }
1129
+ to {
1130
+ opacity: 1;
1131
+ transform: translateY(0);
1132
+ }
1133
+ }
1134
+
1135
+ /* Select Search */
1136
+ .mds-select-search {
1137
+ position: sticky;
1138
+ top: 0;
1139
+ z-index: 1;
1140
+ padding: 8px;
1141
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1142
+ background-color: var(--mds-dashboard-control-option-bg, #2a2a2a);
1143
+ }
1144
+
1145
+ .mds-select-search__input {
1146
+ width: 100%;
1147
+ padding: 8px 12px 8px 36px;
1148
+ font-family: var(--mds-typography-fontFamily-brand, system-ui, sans-serif);
1149
+ font-size: 0.9rem;
1150
+ color: var(--mds-color-text-primary, #ffffff);
1151
+ background-color: rgba(255, 255, 255, 0.08);
1152
+ border: 1px solid rgba(255, 255, 255, 0.15);
1153
+ border-radius: 6px;
1154
+ outline: none;
1155
+ transition: all 0.2s ease;
1156
+ }
1157
+
1158
+ .mds-select-search__input:focus {
1159
+ border-color: var(--mds-color-primary, #3b82f6);
1160
+ background-color: rgba(255, 255, 255, 0.12);
1161
+ }
1162
+
1163
+ .mds-select-search__input::-moz-placeholder {
1164
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1165
+ }
1166
+
1167
+ .mds-select-search__input::placeholder {
1168
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1169
+ }
1170
+
1171
+ .mds-select-search__icon {
1172
+ position: absolute;
1173
+ left: 20px;
1174
+ top: 50%;
1175
+ transform: translateY(-50%);
1176
+ width: 16px;
1177
+ height: 16px;
1178
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1179
+ pointer-events: none;
1180
+ }
1181
+
1182
+ /* Select Options List */
1183
+ .mds-select-options {
1184
+ list-style: none;
1185
+ margin: 0;
1186
+ padding: 4px;
1187
+ overflow-y: auto;
1188
+ max-height: inherit;
1189
+ }
1190
+
1191
+ /* Select Option */
1192
+ .mds-select-option {
1193
+ display: flex;
1194
+ align-items: center;
1195
+ justify-content: space-between;
1196
+ gap: 8px;
1197
+ padding: 10px 12px;
1198
+ font-size: 0.95rem;
1199
+ color: var(--mds-dashboard-control-option-color, #ffffff);
1200
+ background-color: transparent;
1201
+ border-radius: 6px;
1202
+ cursor: pointer;
1203
+ transition: background-color 0.15s ease;
1204
+ }
1205
+
1206
+ .mds-select-option:hover,
1207
+ .mds-select-option--highlighted {
1208
+ background-color: var(--mds-dashboard-control-option-bg-hover, #505050);
1209
+ }
1210
+
1211
+ .mds-select-option--selected {
1212
+ color: var(--mds-color-primary, #3b82f6);
1213
+ font-weight: 500;
1214
+ }
1215
+
1216
+ .mds-select-option--disabled {
1217
+ opacity: 0.5;
1218
+ cursor: not-allowed;
1219
+ }
1220
+
1221
+ .mds-select-option--disabled:hover {
1222
+ background-color: transparent;
1223
+ }
1224
+
1225
+ .mds-select-option--empty {
1226
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.5));
1227
+ font-style: italic;
1228
+ cursor: default;
1229
+ }
1230
+
1231
+ .mds-select-option--empty:hover {
1232
+ background-color: transparent;
1233
+ }
1234
+
1235
+ .mds-select-option__label {
1236
+ flex: 1;
1237
+ overflow: hidden;
1238
+ text-overflow: ellipsis;
1239
+ white-space: nowrap;
1240
+ }
1241
+
1242
+ .mds-select-option__check {
1243
+ flex-shrink: 0;
1244
+ width: 16px;
1245
+ height: 16px;
1246
+ color: var(--mds-color-primary, #3b82f6);
1247
+ }
1248
+
1249
+ /* Select Size Variants */
1250
+ .mds-select--sm .mds-select-trigger {
1251
+ padding: 6px 10px;
1252
+ font-size: 0.85rem;
1253
+ }
1254
+
1255
+ .mds-select--sm .mds-select-option {
1256
+ padding: 6px 10px;
1257
+ font-size: 0.85rem;
1258
+ }
1259
+
1260
+ .mds-select--lg .mds-select-trigger {
1261
+ padding: 14px 16px;
1262
+ font-size: 1.05rem;
1263
+ }
1264
+
1265
+ .mds-select--lg .mds-select-option {
1266
+ padding: 12px 16px;
1267
+ font-size: 1.05rem;
1268
+ }
1269
+
1270
+ /* Light Theme Overrides */
1271
+ html[data-theme="light"] .mds-select-trigger {
1272
+ color: var(--mds-color-text-primary, #1a1a1a);
1273
+ background-color: rgba(0, 0, 0, 0.04);
1274
+ border-color: rgba(0, 0, 0, 0.15);
1275
+ }
1276
+
1277
+ html[data-theme="light"] .mds-select-trigger:hover:not(:disabled) {
1278
+ background-color: rgba(0, 0, 0, 0.08);
1279
+ border-color: rgba(0, 0, 0, 0.25);
1280
+ }
1281
+
1282
+ html[data-theme="light"] .mds-select-trigger__placeholder {
1283
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1284
+ }
1285
+
1286
+ html[data-theme="light"] .mds-select-trigger__icon {
1287
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1288
+ }
1289
+
1290
+ html[data-theme="light"] .mds-select-dropdown {
1291
+ background-color: var(--mds-dashboard-control-option-bg, #ffffff);
1292
+ border-color: rgba(0, 0, 0, 0.15);
1293
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15), 0 2px 8px rgba(0, 0, 0, 0.1);
1294
+ }
1295
+
1296
+ html[data-theme="light"] .mds-select-search {
1297
+ border-bottom-color: rgba(0, 0, 0, 0.1);
1298
+ background-color: var(--mds-dashboard-control-option-bg, #ffffff);
1299
+ }
1300
+
1301
+ html[data-theme="light"] .mds-select-search__input {
1302
+ color: var(--mds-color-text-primary, #1a1a1a);
1303
+ background-color: rgba(0, 0, 0, 0.04);
1304
+ border-color: rgba(0, 0, 0, 0.15);
1305
+ }
1306
+
1307
+ html[data-theme="light"] .mds-select-search__input:focus {
1308
+ background-color: rgba(0, 0, 0, 0.02);
1309
+ }
1310
+
1311
+ html[data-theme="light"] .mds-select-search__input::-moz-placeholder {
1312
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1313
+ }
1314
+
1315
+ html[data-theme="light"] .mds-select-search__input::placeholder {
1316
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1317
+ }
1318
+
1319
+ html[data-theme="light"] .mds-select-search__icon {
1320
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1321
+ }
1322
+
1323
+ html[data-theme="light"] .mds-select-option {
1324
+ color: var(--mds-dashboard-control-option-color, #1a1a1a);
1325
+ }
1326
+
1327
+ html[data-theme="light"] .mds-select-option:hover,
1328
+ html[data-theme="light"] .mds-select-option--highlighted {
1329
+ background-color: var(--mds-dashboard-control-option-bg-hover, #f0f7ff);
1330
+ }
1331
+
1332
+ html[data-theme="light"] .mds-select-option--empty {
1333
+ color: var(--mds-color-text-secondary, rgba(0, 0, 0, 0.5));
1334
+ }
1335
+
997
1336
  /* Label styles */
998
1337
  .mds-label {
999
1338
  display: block;
@@ -1055,33 +1394,172 @@ html body div.mds-dropdown select.mds-select-themed {
1055
1394
  gap: var(--mds-spacing-xl);
1056
1395
  }
1057
1396
 
1058
- /* ========================================
1059
- Layout Utility Classes - @back optimization
1060
- ======================================== */
1061
-
1062
- /* Flexbox utilities */
1063
- .mds-flex {
1397
+ /* Dashboard Progress Bars */
1398
+ .mds-progress-row {
1064
1399
  display: flex;
1400
+ align-items: center;
1401
+ gap: 15px;
1065
1402
  }
1066
1403
 
1067
- .mds-flex-col {
1068
- display: flex;
1069
- flex-direction: column;
1404
+ .mds-progress-label {
1405
+ width: 120px;
1406
+ font-size: 0.9rem;
1407
+ color: var(--mds-color-text-secondary);
1408
+ overflow: hidden;
1409
+ text-overflow: ellipsis;
1410
+ white-space: nowrap;
1070
1411
  }
1071
1412
 
1072
- .mds-flex-center {
1073
- display: flex;
1074
- align-items: center;
1075
- justify-content: center;
1413
+ .mds-progress-label--wide { width: 200px; }
1414
+
1415
+ .mds-progress-track {
1416
+ flex: 1;
1417
+ height: 8px;
1418
+ background: var(--mds-color-border, rgba(128, 128, 128, 0.2));
1419
+ border-radius: 4px;
1420
+ overflow: hidden;
1076
1421
  }
1077
1422
 
1078
- .mds-flex-between {
1079
- display: flex;
1080
- align-items: center;
1081
- justify-content: space-between;
1423
+ .mds-progress-fill {
1424
+ height: 100%;
1425
+ border-radius: 4px;
1426
+ transition: width 0.3s ease;
1082
1427
  }
1083
1428
 
1084
- .mds-flex-start {
1429
+ .mds-progress-fill--blue { background: linear-gradient(90deg, #007bff, #0056b3); }
1430
+ .mds-progress-fill--green { background: linear-gradient(90deg, #28a745, #20c997); }
1431
+ .mds-progress-fill--yellow { background: linear-gradient(90deg, #ffc107, #fd7e14); }
1432
+
1433
+ .mds-progress-value {
1434
+ width: 60px;
1435
+ text-align: right;
1436
+ font-size: 0.9rem;
1437
+ color: var(--mds-color-text-primary);
1438
+ font-weight: 500;
1439
+ }
1440
+
1441
+ /* Dashboard Stat Items (themed) */
1442
+ .mds-stat-box {
1443
+ padding: 15px;
1444
+ background: var(--mds-stat-box-bg, rgba(255, 255, 255, 0.05));
1445
+ border-radius: 8px;
1446
+ text-align: center;
1447
+ border: var(--mds-stat-box-border, none);
1448
+ }
1449
+
1450
+ html[data-theme="light"] .mds-stat-box {
1451
+ --mds-stat-box-bg: rgba(0, 0, 0, 0.03);
1452
+ --mds-stat-box-border: 1px solid rgba(0, 0, 0, 0.1);
1453
+ }
1454
+
1455
+ .mds-stat-box__value {
1456
+ font-size: 1.5rem;
1457
+ font-weight: 600;
1458
+ margin-bottom: 5px;
1459
+ color: var(--mds-color-text-primary);
1460
+ }
1461
+
1462
+ .mds-stat-box__label {
1463
+ font-size: 0.8rem;
1464
+ color: var(--mds-color-text-secondary);
1465
+ }
1466
+
1467
+ /* Dashboard Activity Items */
1468
+ .mds-activity-item {
1469
+ display: flex;
1470
+ align-items: center;
1471
+ gap: 15px;
1472
+ padding: 15px;
1473
+ background: var(--mds-color-border-light, rgba(128, 128, 128, 0.1));
1474
+ border-radius: 8px;
1475
+ transition: all 0.3s ease;
1476
+ }
1477
+
1478
+ .mds-activity-icon {
1479
+ font-size: 1.5rem;
1480
+ width: 40px;
1481
+ height: 40px;
1482
+ display: flex;
1483
+ align-items: center;
1484
+ justify-content: center;
1485
+ background: var(--mds-color-border, rgba(128, 128, 128, 0.2));
1486
+ border-radius: 8px;
1487
+ }
1488
+
1489
+ .mds-activity-content { flex: 1; }
1490
+
1491
+ .mds-activity-text {
1492
+ font-size: 0.9rem;
1493
+ color: var(--mds-color-text-primary);
1494
+ margin-bottom: 5px;
1495
+ }
1496
+
1497
+ .mds-activity-time {
1498
+ font-size: 0.8rem;
1499
+ color: var(--mds-color-text-tertiary, var(--mds-color-text-secondary));
1500
+ }
1501
+
1502
+ .mds-activity-status {
1503
+ padding: 4px 12px;
1504
+ border-radius: 12px;
1505
+ font-size: 0.8rem;
1506
+ font-weight: 500;
1507
+ background: rgba(40, 167, 69, 0.2);
1508
+ color: #28a745;
1509
+ }
1510
+
1511
+ /* Dashboard Card Header */
1512
+ .mds-card-header {
1513
+ margin-bottom: 25px;
1514
+ font-size: 1.5rem;
1515
+ font-weight: 600;
1516
+ color: inherit;
1517
+ }
1518
+
1519
+ .mds-card-header--sm { font-size: 1.25rem; margin-bottom: 15px; }
1520
+
1521
+ /* Card Title/Subtitle */
1522
+ .mds-card-title {
1523
+ margin: 0 0 0.5rem 0;
1524
+ font-size: 1.25rem;
1525
+ font-weight: 600;
1526
+ color: var(--mds-color-text-primary, inherit);
1527
+ }
1528
+
1529
+ .mds-card-subtitle {
1530
+ margin: 0;
1531
+ font-size: 0.9rem;
1532
+ opacity: 0.8;
1533
+ color: var(--mds-color-text-secondary, inherit);
1534
+ }
1535
+
1536
+ /* ========================================
1537
+ Layout Utility Classes - @back optimization
1538
+ ======================================== */
1539
+
1540
+ /* Flexbox utilities */
1541
+ .mds-flex {
1542
+ display: flex;
1543
+ }
1544
+
1545
+ .mds-flex-col {
1546
+ display: flex;
1547
+ flex-direction: column;
1548
+ }
1549
+
1550
+ .mds-flex-center {
1551
+ display: flex;
1552
+ align-items: center;
1553
+ justify-content: center;
1554
+ }
1555
+
1556
+ .mds-flex-between {
1557
+ display: flex;
1558
+ align-items: center;
1559
+ justify-content: space-between;
1560
+ }
1561
+
1562
+ .mds-flex-start {
1085
1563
  display: flex;
1086
1564
  align-items: flex-start;
1087
1565
  justify-content: flex-start;
@@ -1511,3 +1989,1975 @@ html[data-theme="light"] .mds-navbar-user-badge {
1511
1989
  font-size: var(--mds-typography-fontSize-sm);
1512
1990
  word-break: break-all;
1513
1991
  }
1992
+
1993
+ /* ========================================
1994
+ Settings Page Components - PROC-007 Fase 3
1995
+ ======================================== */
1996
+
1997
+ /* Page container */
1998
+ .mds-page-container {
1999
+ max-width: 1200px;
2000
+ margin: 0 auto;
2001
+ padding: var(--mds-spacing-lg);
2002
+ display: flex;
2003
+ flex-direction: column;
2004
+ gap: var(--mds-spacing-lg);
2005
+ }
2006
+
2007
+ /* Tabs Navigation */
2008
+ .mds-tabs {
2009
+ display: flex;
2010
+ flex-wrap: wrap;
2011
+ gap: 4px;
2012
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
2013
+ padding-bottom: 0;
2014
+ }
2015
+
2016
+ html[data-theme="light"] .mds-tabs {
2017
+ border-bottom-color: rgba(0, 0, 0, 0.1);
2018
+ }
2019
+
2020
+ .mds-tab {
2021
+ padding: 12px 20px;
2022
+ border: none;
2023
+ background: transparent;
2024
+ color: var(--mds-color-text-secondary);
2025
+ cursor: pointer;
2026
+ font-size: 0.95rem;
2027
+ font-weight: 400;
2028
+ font-family: var(--mds-typography-fontFamily-brand);
2029
+ border-bottom: 2px solid transparent;
2030
+ margin-bottom: -1px;
2031
+ transition: all 0.2s;
2032
+ white-space: nowrap;
2033
+ }
2034
+
2035
+ .mds-tab:hover {
2036
+ color: var(--mds-color-text-primary);
2037
+ }
2038
+
2039
+ .mds-tab--active {
2040
+ background: rgba(59, 130, 246, 0.1);
2041
+ color: var(--mds-color-info);
2042
+ font-weight: 600;
2043
+ border-bottom-color: var(--mds-color-info);
2044
+ }
2045
+
2046
+ /* Settings Card (bordered sections) */
2047
+ .mds-settings-card {
2048
+ padding: 20px;
2049
+ border: 1px solid rgba(255, 255, 255, 0.1);
2050
+ border-radius: 12px;
2051
+ background: rgba(255, 255, 255, 0.05);
2052
+ }
2053
+
2054
+ html[data-theme="light"] .mds-settings-card {
2055
+ border-color: rgba(0, 0, 0, 0.1);
2056
+ background: rgba(0, 0, 0, 0.02);
2057
+ }
2058
+
2059
+ /* Key-Value Pair Display */
2060
+ .mds-kv-row {
2061
+ display: flex;
2062
+ justify-content: space-between;
2063
+ align-items: center;
2064
+ padding: 2px 0;
2065
+ font-size: 0.9rem;
2066
+ }
2067
+
2068
+ .mds-kv-label {
2069
+ color: var(--mds-color-text-secondary);
2070
+ }
2071
+
2072
+ .mds-kv-value {
2073
+ font-weight: 600;
2074
+ color: var(--mds-color-text-primary);
2075
+ }
2076
+
2077
+ /* Status Box (colored background indicators) */
2078
+ .mds-status-box {
2079
+ display: flex;
2080
+ align-items: center;
2081
+ gap: 12px;
2082
+ padding: 16px;
2083
+ border-radius: 8px;
2084
+ border: 1px solid;
2085
+ }
2086
+
2087
+ .mds-status-box--loading {
2088
+ background-color: rgba(156, 163, 175, 0.1);
2089
+ border-color: rgba(156, 163, 175, 0.2);
2090
+ }
2091
+
2092
+ .mds-status-box--success {
2093
+ background-color: rgba(16, 185, 129, 0.1);
2094
+ border-color: rgba(16, 185, 129, 0.2);
2095
+ }
2096
+
2097
+ .mds-status-box--error {
2098
+ background-color: rgba(239, 68, 68, 0.1);
2099
+ border-color: rgba(239, 68, 68, 0.2);
2100
+ }
2101
+
2102
+ .mds-status-box--warning {
2103
+ background-color: rgba(245, 158, 11, 0.1);
2104
+ border-color: rgba(245, 158, 11, 0.2);
2105
+ }
2106
+
2107
+ .mds-status-box--info {
2108
+ background-color: rgba(59, 130, 246, 0.1);
2109
+ border-color: rgba(59, 130, 246, 0.2);
2110
+ }
2111
+
2112
+ .mds-status-box__icon {
2113
+ font-size: 1.5rem;
2114
+ }
2115
+
2116
+ .mds-status-box__content {
2117
+ flex: 1;
2118
+ }
2119
+
2120
+ .mds-status-box__title {
2121
+ font-weight: 600;
2122
+ }
2123
+
2124
+ .mds-status-box__title--loading { color: var(--mds-color-text-secondary); }
2125
+ .mds-status-box__title--success { color: var(--mds-color-success); }
2126
+ .mds-status-box__title--error { color: var(--mds-color-error); }
2127
+ .mds-status-box__title--warning { color: var(--mds-color-warning); }
2128
+ .mds-status-box__title--info { color: var(--mds-color-info); }
2129
+
2130
+ .mds-status-box__subtitle {
2131
+ font-size: 0.85rem;
2132
+ color: var(--mds-color-text-secondary);
2133
+ margin-top: 4px;
2134
+ }
2135
+
2136
+ /* Info Panel (blue informational box) */
2137
+ .mds-info-panel {
2138
+ padding: 16px;
2139
+ border-radius: 8px;
2140
+ background-color: rgba(59, 130, 246, 0.1);
2141
+ border: 1px solid rgba(59, 130, 246, 0.2);
2142
+ }
2143
+
2144
+ .mds-info-panel__header {
2145
+ display: flex;
2146
+ align-items: center;
2147
+ gap: 8px;
2148
+ margin-bottom: 8px;
2149
+ }
2150
+
2151
+ .mds-info-panel__icon {
2152
+ font-size: 1.2rem;
2153
+ }
2154
+
2155
+ .mds-info-panel__title {
2156
+ font-weight: 600;
2157
+ color: var(--mds-color-text-primary);
2158
+ }
2159
+
2160
+ .mds-info-panel__content {
2161
+ font-size: 0.85rem;
2162
+ color: var(--mds-color-text-secondary);
2163
+ line-height: 1.5;
2164
+ }
2165
+
2166
+ /* Error Panel (red error box) */
2167
+ .mds-error-panel {
2168
+ padding: 12px 16px;
2169
+ border-radius: 8px;
2170
+ background-color: rgba(239, 68, 68, 0.1);
2171
+ border: 1px solid rgba(239, 68, 68, 0.3);
2172
+ color: var(--mds-color-error);
2173
+ }
2174
+
2175
+ /* Danger Section (for delete account, etc.) */
2176
+ .mds-danger-section {
2177
+ padding: 20px;
2178
+ border: 1px solid rgba(239, 68, 68, 0.3);
2179
+ border-radius: 12px;
2180
+ background-color: rgba(239, 68, 68, 0.05);
2181
+ }
2182
+
2183
+ .mds-danger-section__title {
2184
+ color: var(--mds-color-error);
2185
+ margin-bottom: 8px;
2186
+ }
2187
+
2188
+ /* Section Header with Icon */
2189
+ .mds-section-header {
2190
+ display: flex;
2191
+ align-items: center;
2192
+ gap: 16px;
2193
+ margin-bottom: 20px;
2194
+ }
2195
+
2196
+ .mds-section-header__icon {
2197
+ font-size: 2rem;
2198
+ }
2199
+
2200
+ .mds-section-header__content {
2201
+ flex: 1;
2202
+ }
2203
+
2204
+ .mds-section-header__title {
2205
+ margin-bottom: 4px;
2206
+ }
2207
+
2208
+ .mds-section-header__subtitle {
2209
+ color: var(--mds-color-text-secondary);
2210
+ }
2211
+
2212
+ /* Grid layouts */
2213
+ .mds-grid-auto {
2214
+ display: grid;
2215
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
2216
+ gap: 20px;
2217
+ }
2218
+
2219
+ .mds-grid-auto-sm {
2220
+ display: grid;
2221
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
2222
+ gap: 16px;
2223
+ }
2224
+
2225
+ /* Notification/Alert variants */
2226
+ .mds-notification {
2227
+ padding: 16px;
2228
+ border-radius: 8px;
2229
+ display: flex;
2230
+ align-items: center;
2231
+ gap: 12px;
2232
+ }
2233
+
2234
+ .mds-notification--success {
2235
+ background-color: rgba(16, 185, 129, 0.1);
2236
+ border-left: 4px solid var(--mds-color-success);
2237
+ }
2238
+
2239
+ .mds-notification--error {
2240
+ background-color: rgba(239, 68, 68, 0.1);
2241
+ border-left: 4px solid var(--mds-color-error);
2242
+ }
2243
+
2244
+ .mds-notification__icon {
2245
+ font-size: 1.2rem;
2246
+ }
2247
+
2248
+ /* Search counter */
2249
+ .mds-search-counter {
2250
+ font-size: 0.9rem;
2251
+ color: var(--mds-color-text-secondary);
2252
+ font-weight: 500;
2253
+ white-space: nowrap;
2254
+ }
2255
+
2256
+ /* Width utilities */
2257
+ .mds-w-full { width: 100%; }
2258
+ .mds-w-auto { width: auto; }
2259
+ .mds-max-w-sm { max-width: 400px; }
2260
+ .mds-max-w-md { max-width: 600px; }
2261
+ .mds-max-w-lg { max-width: 800px; }
2262
+
2263
+ /* Margin auto utilities */
2264
+ .mds-ml-auto { margin-left: auto; }
2265
+ .mds-mr-auto { margin-right: auto; }
2266
+ .mds-mx-auto { margin-left: auto; margin-right: auto; }
2267
+
2268
+ /* Margin top utilities */
2269
+ .mds-mt-xs { margin-top: var(--mds-spacing-xs); }
2270
+ .mds-mt-sm { margin-top: var(--mds-spacing-sm); }
2271
+ .mds-mt-md { margin-top: var(--mds-spacing-md); }
2272
+ .mds-mt-lg { margin-top: var(--mds-spacing-lg); }
2273
+ .mds-mt-xl { margin-top: var(--mds-spacing-xl); }
2274
+
2275
+ /* Text utilities */
2276
+ .mds-text-secondary { color: var(--mds-color-text-secondary); }
2277
+ .mds-text-success { color: var(--mds-color-success); }
2278
+ .mds-text-error { color: var(--mds-color-error); }
2279
+ .mds-text-warning { color: var(--mds-color-warning); }
2280
+ .mds-text-info { color: var(--mds-color-info); }
2281
+
2282
+ .mds-text-sm { font-size: 0.85rem; }
2283
+ .mds-text-xs { font-size: 0.75rem; }
2284
+ .mds-text-lg { font-size: 1.1rem; }
2285
+
2286
+ .mds-font-medium { font-weight: 500; }
2287
+ .mds-font-semibold { font-weight: 600; }
2288
+ .mds-font-bold { font-weight: 700; }
2289
+
2290
+ /* Box sizing */
2291
+ .mds-box-border { box-sizing: border-box; }
2292
+
2293
+ /* Overflow */
2294
+ .mds-overflow-hidden { overflow: hidden; }
2295
+
2296
+ /* Zero padding */
2297
+ .mds-p-0 { padding: 0; }
2298
+
2299
+ /* ============================================
2300
+ PROC-007 Phase 5: Deep Cleanup Classes
2301
+ ============================================ */
2302
+
2303
+ /* ---------- Badges (Status Indicators) ---------- */
2304
+ .mds-badge {
2305
+ display: inline-flex;
2306
+ align-items: center;
2307
+ justify-content: center;
2308
+ padding: 4px 10px;
2309
+ font-size: 12px;
2310
+ font-weight: 500;
2311
+ line-height: 1;
2312
+ border-radius: 12px;
2313
+ white-space: nowrap;
2314
+ }
2315
+
2316
+ .mds-badge--sm {
2317
+ padding: 2px 8px;
2318
+ font-size: 11px;
2319
+ }
2320
+
2321
+ .mds-badge--lg {
2322
+ padding: 6px 14px;
2323
+ font-size: 13px;
2324
+ }
2325
+
2326
+ .mds-badge--success {
2327
+ background-color: rgba(16, 185, 129, 0.15);
2328
+ color: var(--mds-color-success, #10b981);
2329
+ }
2330
+
2331
+ .mds-badge--warning {
2332
+ background-color: rgba(245, 158, 11, 0.15);
2333
+ color: var(--mds-color-warning, #f59e0b);
2334
+ }
2335
+
2336
+ .mds-badge--danger {
2337
+ background-color: rgba(239, 68, 68, 0.15);
2338
+ color: var(--mds-color-error, #ef4444);
2339
+ }
2340
+
2341
+ .mds-badge--info {
2342
+ background-color: rgba(59, 130, 246, 0.15);
2343
+ color: var(--mds-color-info, #3b82f6);
2344
+ }
2345
+
2346
+ .mds-badge--neutral {
2347
+ background-color: rgba(156, 163, 175, 0.15);
2348
+ color: var(--mds-color-text-secondary, #9ca3af);
2349
+ }
2350
+
2351
+ /* ---------- Code/Monospace Elements ---------- */
2352
+ .mds-code {
2353
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2354
+ font-size: 12px;
2355
+ background-color: rgba(0, 0, 0, 0.1);
2356
+ padding: 2px 6px;
2357
+ border-radius: 4px;
2358
+ }
2359
+
2360
+ .mds-code-block {
2361
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2362
+ font-size: 12px;
2363
+ background-color: rgba(0, 0, 0, 0.2);
2364
+ padding: 12px 16px;
2365
+ border-radius: 8px;
2366
+ overflow-x: auto;
2367
+ white-space: pre;
2368
+ margin: 0;
2369
+ }
2370
+
2371
+ .mds-code-box {
2372
+ background-color: rgba(0, 0, 0, 0.15);
2373
+ border: 1px solid rgba(255, 255, 255, 0.1);
2374
+ border-radius: 8px;
2375
+ padding: 12px 16px;
2376
+ overflow: auto;
2377
+ max-height: 300px;
2378
+ }
2379
+
2380
+ .mds-code-box pre {
2381
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2382
+ font-size: 11px;
2383
+ line-height: 1.5;
2384
+ margin: 0;
2385
+ white-space: pre-wrap;
2386
+ word-break: break-all;
2387
+ color: var(--mds-color-text-primary);
2388
+ }
2389
+
2390
+ /* ---------- Diff Display (Audit Logs) ---------- */
2391
+ .mds-diff {
2392
+ display: grid;
2393
+ grid-template-columns: 1fr auto 1fr;
2394
+ gap: 12px;
2395
+ align-items: center;
2396
+ }
2397
+
2398
+ .mds-diff-label {
2399
+ font-size: 11px;
2400
+ color: var(--mds-color-text-secondary);
2401
+ margin-bottom: 4px;
2402
+ }
2403
+
2404
+ .mds-diff-value {
2405
+ padding: 8px 12px;
2406
+ border-radius: 6px;
2407
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2408
+ font-size: 12px;
2409
+ word-break: break-all;
2410
+ }
2411
+
2412
+ .mds-diff-before {
2413
+ background-color: rgba(239, 68, 68, 0.1);
2414
+ border: 1px solid rgba(239, 68, 68, 0.2);
2415
+ color: var(--mds-color-error);
2416
+ }
2417
+
2418
+ .mds-diff-after {
2419
+ background-color: rgba(16, 185, 129, 0.1);
2420
+ border: 1px solid rgba(16, 185, 129, 0.2);
2421
+ color: var(--mds-color-success);
2422
+ }
2423
+
2424
+ .mds-diff-arrow {
2425
+ color: var(--mds-color-text-secondary);
2426
+ font-size: 18px;
2427
+ }
2428
+
2429
+ /* ---------- Change Item (Field Change in Audit) ---------- */
2430
+ .mds-change-item {
2431
+ background-color: rgba(255, 255, 255, 0.03);
2432
+ border: 1px solid rgba(255, 255, 255, 0.1);
2433
+ border-radius: 8px;
2434
+ padding: 12px;
2435
+ }
2436
+
2437
+ .mds-change-item--modified {
2438
+ background-color: rgba(59, 130, 246, 0.05);
2439
+ border-color: rgba(59, 130, 246, 0.2);
2440
+ }
2441
+
2442
+ .mds-change-header {
2443
+ display: flex;
2444
+ align-items: center;
2445
+ gap: 8px;
2446
+ margin-bottom: 8px;
2447
+ }
2448
+
2449
+ .mds-change-field {
2450
+ color: var(--mds-color-text-secondary);
2451
+ font-size: 12px;
2452
+ font-weight: 600;
2453
+ text-transform: capitalize;
2454
+ }
2455
+
2456
+ .mds-change-type {
2457
+ font-size: 10px;
2458
+ padding: 2px 6px;
2459
+ border-radius: 4px;
2460
+ font-weight: 500;
2461
+ }
2462
+
2463
+ .mds-change-type--modified {
2464
+ background-color: rgba(59, 130, 246, 0.2);
2465
+ color: var(--mds-color-info);
2466
+ }
2467
+
2468
+ .mds-change-type--added {
2469
+ background-color: rgba(16, 185, 129, 0.2);
2470
+ color: var(--mds-color-success);
2471
+ }
2472
+
2473
+ .mds-change-type--removed {
2474
+ background-color: rgba(239, 68, 68, 0.2);
2475
+ color: var(--mds-color-error);
2476
+ }
2477
+
2478
+ /* ---------- Table Utilities ---------- */
2479
+ .mds-table {
2480
+ width: 100%;
2481
+ border-collapse: collapse;
2482
+ }
2483
+
2484
+ .mds-th {
2485
+ padding: 14px 16px;
2486
+ text-align: left;
2487
+ font-weight: 600;
2488
+ font-size: 0.85rem;
2489
+ color: var(--mds-color-text-primary);
2490
+ background-color: rgba(255, 255, 255, 0.05);
2491
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
2492
+ }
2493
+
2494
+ .mds-th--center { text-align: center; }
2495
+ .mds-th--right { text-align: right; }
2496
+
2497
+ .mds-td {
2498
+ padding: 12px 16px;
2499
+ color: var(--mds-color-text-primary);
2500
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
2501
+ }
2502
+
2503
+ .mds-td--center { text-align: center; }
2504
+ .mds-td--right { text-align: right; }
2505
+ .mds-td--secondary { color: var(--mds-color-text-secondary); }
2506
+ .mds-td--small { font-size: 0.9rem; }
2507
+
2508
+ .mds-tr:hover {
2509
+ background-color: rgba(255, 255, 255, 0.03);
2510
+ }
2511
+
2512
+ .mds-tr--striped:nth-child(even) {
2513
+ background-color: rgba(255, 255, 255, 0.02);
2514
+ }
2515
+
2516
+ .mds-table-empty {
2517
+ padding: 40px;
2518
+ text-align: center;
2519
+ color: var(--mds-color-text-secondary);
2520
+ }
2521
+
2522
+ /* ---------- Action Button Groups ---------- */
2523
+ .mds-action-group {
2524
+ display: flex;
2525
+ gap: 2px;
2526
+ justify-content: center;
2527
+ align-items: center;
2528
+ }
2529
+
2530
+ .mds-action-btn {
2531
+ padding: 6px 10px;
2532
+ font-size: 12px;
2533
+ font-weight: 500;
2534
+ border: none;
2535
+ border-radius: 6px;
2536
+ cursor: pointer;
2537
+ transition: all 0.2s ease;
2538
+ display: flex;
2539
+ align-items: center;
2540
+ gap: 4px;
2541
+ }
2542
+
2543
+ .mds-action-btn--view {
2544
+ background-color: rgba(59, 130, 246, 0.15);
2545
+ color: var(--mds-color-info);
2546
+ }
2547
+
2548
+ .mds-action-btn--view:hover {
2549
+ background-color: rgba(59, 130, 246, 0.25);
2550
+ }
2551
+
2552
+ .mds-action-btn--edit {
2553
+ background-color: rgba(245, 158, 11, 0.15);
2554
+ color: var(--mds-color-warning);
2555
+ }
2556
+
2557
+ .mds-action-btn--edit:hover {
2558
+ background-color: rgba(245, 158, 11, 0.25);
2559
+ }
2560
+
2561
+ .mds-action-btn--delete {
2562
+ background-color: rgba(239, 68, 68, 0.15);
2563
+ color: var(--mds-color-error);
2564
+ }
2565
+
2566
+ .mds-action-btn--delete:hover {
2567
+ background-color: rgba(239, 68, 68, 0.25);
2568
+ }
2569
+
2570
+ /* ---------- Avatar/User Icon ---------- */
2571
+ .mds-avatar {
2572
+ display: flex;
2573
+ align-items: center;
2574
+ justify-content: center;
2575
+ width: 40px;
2576
+ height: 40px;
2577
+ border-radius: 50%;
2578
+ background-color: rgba(59, 130, 246, 0.15);
2579
+ color: var(--mds-color-info);
2580
+ font-weight: 600;
2581
+ font-size: 1rem;
2582
+ }
2583
+
2584
+ .mds-avatar--sm {
2585
+ width: 32px;
2586
+ height: 32px;
2587
+ font-size: 0.85rem;
2588
+ }
2589
+
2590
+ .mds-avatar--lg {
2591
+ width: 56px;
2592
+ height: 56px;
2593
+ font-size: 1.5rem;
2594
+ }
2595
+
2596
+ /* ---------- User Row (Table Cell with Avatar) ---------- */
2597
+ .mds-user-row {
2598
+ display: flex;
2599
+ align-items: center;
2600
+ gap: 12px;
2601
+ }
2602
+
2603
+ .mds-user-row__avatar {
2604
+ width: 32px;
2605
+ height: 32px;
2606
+ border-radius: 50%;
2607
+ -o-object-fit: cover;
2608
+ object-fit: cover;
2609
+ }
2610
+
2611
+ .mds-user-row__fallback {
2612
+ width: 32px;
2613
+ height: 32px;
2614
+ border-radius: 50%;
2615
+ background-color: rgba(59, 130, 246, 0.15);
2616
+ color: var(--mds-color-info);
2617
+ display: flex;
2618
+ align-items: center;
2619
+ justify-content: center;
2620
+ font-weight: 600;
2621
+ font-size: 14px;
2622
+ }
2623
+
2624
+ /* ---------- Link Styles ---------- */
2625
+ .mds-link {
2626
+ color: var(--mds-color-info, #3b82f6);
2627
+ text-decoration: none;
2628
+ transition: color 0.2s ease;
2629
+ }
2630
+
2631
+ .mds-link:hover {
2632
+ text-decoration: underline;
2633
+ }
2634
+
2635
+ .mds-link--underline {
2636
+ text-decoration: underline;
2637
+ }
2638
+
2639
+ /* ---------- Cookie Banner ---------- */
2640
+ .mds-cookie-banner {
2641
+ position: fixed;
2642
+ bottom: 0;
2643
+ left: 0;
2644
+ right: 0;
2645
+ z-index: 9999;
2646
+ padding: 1rem;
2647
+ transition: transform 0.3s ease-out, opacity 0.3s ease-out;
2648
+ }
2649
+
2650
+ .mds-cookie-banner--hidden {
2651
+ transform: translateY(100%);
2652
+ opacity: 0;
2653
+ }
2654
+
2655
+ .mds-cookie-banner--visible {
2656
+ transform: translateY(0);
2657
+ opacity: 1;
2658
+ }
2659
+
2660
+ .mds-cookie-banner__content {
2661
+ max-width: 600px;
2662
+ margin: 0 auto;
2663
+ padding: 1.25rem;
2664
+ background: var(--mds-liquid-bg-elevated);
2665
+ backdrop-filter: blur(20px) saturate(180%);
2666
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
2667
+ border-radius: 12px;
2668
+ border: 1px solid var(--mds-liquid-border-subtle);
2669
+ box-shadow: var(--mds-liquid-shadow-floating);
2670
+ }
2671
+
2672
+ .mds-cookie-banner__title {
2673
+ margin: 0 0 0.5rem 0;
2674
+ font-size: 1rem;
2675
+ font-weight: 600;
2676
+ color: var(--mds-color-text-primary);
2677
+ }
2678
+
2679
+ .mds-cookie-banner__text {
2680
+ margin: 0;
2681
+ font-size: 0.875rem;
2682
+ color: var(--mds-color-text-secondary);
2683
+ line-height: 1.5;
2684
+ }
2685
+
2686
+ .mds-cookie-banner__actions {
2687
+ display: flex;
2688
+ gap: 0.75rem;
2689
+ flex-wrap: wrap;
2690
+ justify-content: flex-end;
2691
+ }
2692
+
2693
+ /* ---------- Ghost Button (for banners) ---------- */
2694
+ .mds-btn-ghost {
2695
+ padding: 0.625rem 1.25rem;
2696
+ font-size: 0.875rem;
2697
+ font-weight: 500;
2698
+ color: var(--mds-color-text-secondary);
2699
+ background: transparent;
2700
+ border: 1px solid var(--mds-liquid-border-subtle, rgba(255, 255, 255, 0.3));
2701
+ border-radius: 8px;
2702
+ cursor: pointer;
2703
+ transition: all 0.2s ease;
2704
+ }
2705
+
2706
+ .mds-btn-ghost:hover {
2707
+ background: var(--mds-liquid-bg-hover, rgba(255, 255, 255, 0.1));
2708
+ }
2709
+
2710
+ .mds-btn-solid {
2711
+ padding: 0.625rem 1.25rem;
2712
+ font-size: 0.875rem;
2713
+ font-weight: 500;
2714
+ color: white;
2715
+ background: var(--mds-color-primary, #007AFF);
2716
+ border: none;
2717
+ border-radius: 8px;
2718
+ cursor: pointer;
2719
+ transition: all 0.2s ease;
2720
+ }
2721
+
2722
+ .mds-btn-solid:hover {
2723
+ opacity: 0.9;
2724
+ }
2725
+
2726
+ /* ---------- Icon Buttons (Action Buttons in Tables) ---------- */
2727
+ .mds-icon-btn {
2728
+ background: transparent;
2729
+ border: none;
2730
+ padding: 6px;
2731
+ border-radius: 4px;
2732
+ cursor: pointer;
2733
+ display: flex;
2734
+ align-items: center;
2735
+ justify-content: center;
2736
+ transition: all 0.2s ease;
2737
+ }
2738
+
2739
+ .mds-icon-btn:disabled {
2740
+ cursor: not-allowed;
2741
+ opacity: 0.5;
2742
+ }
2743
+
2744
+ .mds-icon-btn--info {
2745
+ color: var(--mds-color-info);
2746
+ }
2747
+
2748
+ .mds-icon-btn--info:hover:not(:disabled) {
2749
+ background-color: rgba(59, 130, 246, 0.15);
2750
+ }
2751
+
2752
+ .mds-icon-btn--success {
2753
+ color: var(--mds-color-success);
2754
+ }
2755
+
2756
+ .mds-icon-btn--success:hover:not(:disabled) {
2757
+ background-color: rgba(16, 185, 129, 0.15);
2758
+ }
2759
+
2760
+ .mds-icon-btn--danger {
2761
+ color: var(--mds-color-error);
2762
+ }
2763
+
2764
+ .mds-icon-btn--danger:hover:not(:disabled) {
2765
+ background-color: rgba(239, 68, 68, 0.15);
2766
+ }
2767
+
2768
+ .mds-icon-btn--secondary {
2769
+ color: var(--mds-color-text-secondary);
2770
+ }
2771
+
2772
+ .mds-icon-btn--secondary:hover:not(:disabled) {
2773
+ background-color: rgba(255, 255, 255, 0.1);
2774
+ }
2775
+
2776
+ /* ---------- Username Code Display ---------- */
2777
+ .mds-username {
2778
+ background-color: rgba(59, 130, 246, 0.1);
2779
+ color: var(--mds-color-info);
2780
+ padding: 4px 8px;
2781
+ border-radius: 4px;
2782
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2783
+ font-weight: 600;
2784
+ font-size: 0.85rem;
2785
+ cursor: pointer;
2786
+ transition: all 0.2s ease;
2787
+ }
2788
+
2789
+ .mds-username:hover {
2790
+ background-color: rgba(59, 130, 246, 0.2);
2791
+ transform: scale(1.02);
2792
+ }
2793
+
2794
+ /* ---------- ID Row (Compact Identity Display) ---------- */
2795
+ .mds-id-row {
2796
+ background-color: rgba(255, 255, 255, 0.04);
2797
+ }
2798
+
2799
+ .mds-id-row td {
2800
+ padding: 4px 16px;
2801
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
2802
+ }
2803
+
2804
+ .mds-id-text {
2805
+ color: var(--mds-color-text-secondary);
2806
+ font-size: 0.65rem;
2807
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2808
+ letter-spacing: 0.02em;
2809
+ opacity: 0.7;
2810
+ }
2811
+
2812
+ /* ---------- Data Row (Table Row with Hover) ---------- */
2813
+ .mds-data-row {
2814
+ transition: background-color 0.2s;
2815
+ }
2816
+
2817
+ .mds-data-row:hover {
2818
+ background-color: rgba(255, 255, 255, 0.03);
2819
+ }
2820
+
2821
+ /* ---------- Search Input Container ---------- */
2822
+ .mds-search-row {
2823
+ margin-top: 16px;
2824
+ display: flex;
2825
+ align-items: center;
2826
+ gap: 12px;
2827
+ }
2828
+
2829
+ /* ---------- Overflow X Auto ---------- */
2830
+ .mds-overflow-x-auto {
2831
+ overflow-x: auto;
2832
+ }
2833
+
2834
+ /* ---------- Modal Overlay ---------- */
2835
+ .mds-modal-overlay {
2836
+ position: fixed;
2837
+ inset: 0;
2838
+ display: flex;
2839
+ align-items: center;
2840
+ justify-content: center;
2841
+ z-index: 1000;
2842
+ padding: 24px;
2843
+ }
2844
+
2845
+ .mds-modal-overlay--dark {
2846
+ background-color: rgba(0, 0, 0, 0.6);
2847
+ backdrop-filter: blur(12px) saturate(120%);
2848
+ -webkit-backdrop-filter: blur(12px) saturate(120%);
2849
+ }
2850
+
2851
+ .mds-modal-overlay--light {
2852
+ background-color: rgba(255, 255, 255, 0.2);
2853
+ backdrop-filter: blur(12px) saturate(120%);
2854
+ -webkit-backdrop-filter: blur(12px) saturate(120%);
2855
+ }
2856
+
2857
+ /* ---------- Grid Layouts ---------- */
2858
+ .mds-grid-2 {
2859
+ display: grid;
2860
+ grid-template-columns: repeat(2, 1fr);
2861
+ gap: 12px;
2862
+ }
2863
+
2864
+ .mds-grid-3 {
2865
+ display: grid;
2866
+ grid-template-columns: repeat(3, 1fr);
2867
+ gap: 12px;
2868
+ }
2869
+
2870
+ .mds-grid-4 {
2871
+ display: grid;
2872
+ grid-template-columns: repeat(4, 1fr);
2873
+ gap: 10px;
2874
+ }
2875
+
2876
+ .mds-grid-2-1-1 {
2877
+ display: grid;
2878
+ grid-template-columns: 2fr 1fr 1fr;
2879
+ gap: 12px;
2880
+ }
2881
+
2882
+ .mds-grid-2-1 {
2883
+ display: grid;
2884
+ grid-template-columns: 2fr 1fr;
2885
+ gap: 12px;
2886
+ }
2887
+
2888
+ /* Gap Variants for Grids */
2889
+ .mds-grid-gap-md { gap: 16px; }
2890
+ .mds-grid--2 { display: grid; grid-template-columns: repeat(2, 1fr); }
2891
+ .mds-grid--3 { display: grid; grid-template-columns: repeat(3, 1fr); }
2892
+ .mds-grid--auto-fit { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
2893
+
2894
+ /* Font Weight Utilities */
2895
+ .mds-fw-400 { font-weight: 400; }
2896
+ .mds-fw-500 { font-weight: 500; }
2897
+ .mds-fw-600 { font-weight: 600; }
2898
+ .mds-fw-700 { font-weight: 700; }
2899
+
2900
+ /* ---------- Info Card (Compact Info Display) ---------- */
2901
+ .mds-info-card {
2902
+ padding: 12px;
2903
+ border-radius: 10px;
2904
+ display: flex;
2905
+ flex-direction: column;
2906
+ justify-content: center;
2907
+ }
2908
+
2909
+ .mds-info-card--primary {
2910
+ background-color: rgba(59, 130, 246, 0.1);
2911
+ border-left: 3px solid var(--mds-color-info);
2912
+ }
2913
+
2914
+ .mds-info-card--subtle {
2915
+ background-color: rgba(255, 255, 255, 0.03);
2916
+ border-left: 3px solid rgba(0, 212, 255, 0.5);
2917
+ }
2918
+
2919
+ .mds-info-card__label {
2920
+ font-size: 0.7rem;
2921
+ margin-bottom: 2px;
2922
+ text-transform: uppercase;
2923
+ letter-spacing: 0.05em;
2924
+ color: var(--mds-color-text-secondary);
2925
+ }
2926
+
2927
+ .mds-info-card__value {
2928
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
2929
+ letter-spacing: 0.5px;
2930
+ font-size: 0.95rem;
2931
+ }
2932
+
2933
+ /* ---------- Meta Row (Inline Meta Display) ---------- */
2934
+ .mds-meta-row {
2935
+ padding: 10px 12px;
2936
+ background-color: rgba(255, 255, 255, 0.03);
2937
+ border-radius: 10px;
2938
+ display: flex;
2939
+ gap: 16px;
2940
+ font-size: 0.8rem;
2941
+ flex-wrap: wrap;
2942
+ }
2943
+
2944
+ /* ---------- Preview Box ---------- */
2945
+ .mds-preview-box {
2946
+ padding: 12px 16px;
2947
+ border-radius: 8px;
2948
+ margin-bottom: 16px;
2949
+ border-left: 4px solid var(--mds-color-info);
2950
+ background-color: rgba(59, 130, 246, 0.1);
2951
+ }
2952
+
2953
+ .mds-preview-box--warning {
2954
+ background-color: rgba(234, 179, 8, 0.1);
2955
+ border-left-color: var(--mds-color-warning);
2956
+ }
2957
+
2958
+ /* ---------- Read-Only Field ---------- */
2959
+ .mds-readonly-field {
2960
+ padding: 8px 10px;
2961
+ background-color: rgba(255, 255, 255, 0.05);
2962
+ border-radius: 6px;
2963
+ color: var(--mds-color-text-secondary);
2964
+ font-size: 0.85rem;
2965
+ }
2966
+
2967
+ /* ---------- Flex Utilities ---------- */
2968
+ .mds-flex-1 { flex: 1; }
2969
+ .mds-align-stretch { align-items: stretch; }
2970
+
2971
+ /* ---------- User Header Layout (Photo + Info Cards) ---------- */
2972
+ .mds-user-header {
2973
+ display: flex;
2974
+ gap: 16px;
2975
+ margin-bottom: 16px;
2976
+ align-items: stretch;
2977
+ }
2978
+
2979
+ .mds-user-header__info {
2980
+ flex: 1;
2981
+ display: flex;
2982
+ flex-direction: column;
2983
+ gap: 8px;
2984
+ }
2985
+
2986
+ .mds-user-header__cards {
2987
+ display: flex;
2988
+ gap: 8px;
2989
+ flex: 1;
2990
+ }
2991
+
2992
+ /* ---------- Info Card Value Variants ---------- */
2993
+ .mds-info-card__value--body {
2994
+ font-size: 0.9rem;
2995
+ color: var(--mds-color-text-primary);
2996
+ }
2997
+
2998
+ .mds-info-card__value--small {
2999
+ font-size: 0.75rem;
3000
+ color: var(--mds-color-text-secondary);
3001
+ }
3002
+
3003
+ /* ---------- Helper Text ---------- */
3004
+ .mds-helper-text {
3005
+ font-size: 0.75rem;
3006
+ margin-top: 2px;
3007
+ display: block;
3008
+ }
3009
+
3010
+ .mds-helper-text--checking {
3011
+ color: var(--mds-color-text-secondary);
3012
+ }
3013
+
3014
+ .mds-helper-text--success {
3015
+ color: var(--mds-color-success);
3016
+ }
3017
+
3018
+ .mds-helper-text--error {
3019
+ color: var(--mds-color-error);
3020
+ }
3021
+
3022
+ /* ---------- Info Banner (Full-width info/warning) ---------- */
3023
+ .mds-info-banner {
3024
+ padding: 10px 12px;
3025
+ border-radius: 6px;
3026
+ border-left: 3px solid var(--mds-color-info);
3027
+ background-color: rgba(59, 130, 246, 0.1);
3028
+ }
3029
+
3030
+ .mds-info-banner--warning {
3031
+ background-color: rgba(234, 179, 8, 0.1);
3032
+ border-left-color: var(--mds-color-warning);
3033
+ }
3034
+
3035
+ /* ---------- Preview Label/Value ---------- */
3036
+ .mds-preview-box__label {
3037
+ font-size: 0.8rem;
3038
+ margin-bottom: 4px;
3039
+ color: var(--mds-color-text-secondary);
3040
+ }
3041
+
3042
+ .mds-preview-box__value {
3043
+ font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace;
3044
+ letter-spacing: 0.5px;
3045
+ font-size: 1rem;
3046
+ }
3047
+
3048
+ /* ---------- Text Utilities ---------- */
3049
+ .mds-text-sm { font-size: 0.8rem; }
3050
+ .mds-text-xs { font-size: 0.75rem; }
3051
+ .mds-text-primary { color: var(--mds-color-text-primary); }
3052
+ .mds-text-secondary { color: var(--mds-color-text-secondary); }
3053
+ .mds-text-success { color: var(--mds-color-success); }
3054
+ .mds-text-error { color: var(--mds-color-error); }
3055
+ .mds-text-warning { color: var(--mds-color-warning); }
3056
+
3057
+ /* Link Utilities */
3058
+ .mds-link-primary { color: var(--mds-color-primary); text-decoration: none; }
3059
+ .mds-link-primary:hover { opacity: 0.8; }
3060
+ .mds-underline { text-decoration: underline; }
3061
+ .mds-no-underline { text-decoration: none; }
3062
+
3063
+ /* ---------- Width Utilities ---------- */
3064
+ .mds-full-width { width: 100%; }
3065
+
3066
+ /* ---------- Alignment Utilities ---------- */
3067
+ .mds-align-self-start { align-self: flex-start; }
3068
+ .mds-align-self-center { align-self: center; }
3069
+ .mds-align-self-end { align-self: flex-end; }
3070
+ .mds-text-center { text-align: center; }
3071
+
3072
+ /* ---------- Flex Wrap Utilities ---------- */
3073
+ .mds-flex-wrap { flex-wrap: wrap; }
3074
+
3075
+ /* ---------- Max Width Utilities ---------- */
3076
+ .mds-max-w-sm { max-width: 300px; }
3077
+ .mds-max-w-md { max-width: 400px; }
3078
+ .mds-max-w-lg { max-width: 500px; }
3079
+ .mds-max-w-xl { max-width: 600px; }
3080
+ .mds-max-w-2xl { max-width: 800px; }
3081
+ .mds-max-w-3xl { max-width: 1000px; }
3082
+
3083
+ /* ---------- Border Utilities ---------- */
3084
+ .mds-border-bottom { border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
3085
+
3086
+ /* ---------- Table Container ---------- */
3087
+ .mds-table-container { overflow-x: auto; }
3088
+
3089
+ /* ---------- Table Row Variants ---------- */
3090
+ .mds-tr--header { background-color: rgba(255, 255, 255, 0.05); }
3091
+ .mds-tr--hoverable {
3092
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
3093
+ transition: background-color 0.2s;
3094
+ }
3095
+ .mds-tr--hoverable:hover { background-color: rgba(255, 255, 255, 0.03); }
3096
+
3097
+ /* ---------- Table Cell Variants ---------- */
3098
+ .mds-td--empty {
3099
+ padding: 40px;
3100
+ text-align: center;
3101
+ color: var(--mds-color-text-secondary);
3102
+ }
3103
+
3104
+ /* ---------- Code Variants ---------- */
3105
+ .mds-code--info {
3106
+ background-color: rgba(59, 130, 246, 0.1);
3107
+ color: var(--mds-color-info);
3108
+ font-weight: 600;
3109
+ }
3110
+
3111
+ /* ---------- Badge Variants ---------- */
3112
+ .mds-badge--accent {
3113
+ background-color: rgba(147, 51, 234, 0.1);
3114
+ color: var(--mds-color-accent, #9333ea);
3115
+ }
3116
+
3117
+ /* ---------- User Cell (Email + ID) ---------- */
3118
+ .mds-user-cell {
3119
+ display: flex;
3120
+ flex-direction: column;
3121
+ gap: 2px;
3122
+ }
3123
+ .mds-user-cell__email {
3124
+ font-weight: 500;
3125
+ color: var(--mds-color-text-primary);
3126
+ }
3127
+ .mds-user-cell__id {
3128
+ font-size: 0.75rem;
3129
+ color: var(--mds-color-text-secondary);
3130
+ }
3131
+
3132
+ /* ---------- Pending Item (Invitation/Request Row) ---------- */
3133
+ .mds-pending-item {
3134
+ display: flex;
3135
+ align-items: center;
3136
+ justify-content: space-between;
3137
+ padding: 12px 16px;
3138
+ background-color: rgba(255, 255, 255, 0.03);
3139
+ border-radius: 8px;
3140
+ border-left: 3px solid var(--mds-color-warning);
3141
+ }
3142
+
3143
+ /* ---------- Text Size Utilities ---------- */
3144
+ .mds-text-lg { font-size: 1.2rem; }
3145
+
3146
+ /* ---------- Font Utilities ---------- */
3147
+ .mds-font-mono { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; }
3148
+ .mds-font-semibold { font-weight: 600; }
3149
+ .mds-font-medium { font-weight: 500; }
3150
+
3151
+ /* ---------- Settings Section Layout ---------- */
3152
+ .mds-settings-container {
3153
+ display: flex;
3154
+ flex-direction: column;
3155
+ gap: 24px;
3156
+ width: 100%;
3157
+ }
3158
+
3159
+ .mds-settings-card {
3160
+ padding: 24px;
3161
+ width: 100%;
3162
+ box-sizing: border-box;
3163
+ }
3164
+
3165
+ .mds-settings-header {
3166
+ display: flex;
3167
+ align-items: center;
3168
+ gap: 16px;
3169
+ margin-bottom: 20px;
3170
+ }
3171
+
3172
+ .mds-settings-header__icon {
3173
+ font-size: 2rem;
3174
+ }
3175
+
3176
+ .mds-settings-grid {
3177
+ display: grid;
3178
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
3179
+ gap: 20px;
3180
+ }
3181
+
3182
+ /* ---------- Settings Panel ---------- */
3183
+ .mds-settings-panel {
3184
+ padding: 20px;
3185
+ border: 1px solid rgba(255, 255, 255, 0.1);
3186
+ border-radius: 12px;
3187
+ }
3188
+
3189
+ .mds-settings-panel__title {
3190
+ margin-bottom: 8px;
3191
+ }
3192
+
3193
+ .mds-settings-panel__description {
3194
+ margin-bottom: 16px;
3195
+ }
3196
+
3197
+ /* ---------- Key-Value Row ---------- */
3198
+ .mds-kv-list {
3199
+ display: flex;
3200
+ flex-direction: column;
3201
+ gap: 12px;
3202
+ }
3203
+
3204
+ .mds-kv-row {
3205
+ display: flex;
3206
+ align-items: center;
3207
+ justify-content: space-between;
3208
+ }
3209
+
3210
+ .mds-kv-label {
3211
+ color: var(--mds-color-text-secondary);
3212
+ }
3213
+
3214
+ .mds-kv-value {
3215
+ font-weight: 600;
3216
+ }
3217
+
3218
+ /* ---------- Info Box Header ---------- */
3219
+ .mds-info-header {
3220
+ display: flex;
3221
+ align-items: center;
3222
+ gap: 8px;
3223
+ margin-bottom: 8px;
3224
+ }
3225
+
3226
+ .mds-info-header__icon {
3227
+ font-size: 1.2rem;
3228
+ }
3229
+
3230
+ /* ---------- Margin Utilities ---------- */
3231
+ .mds-mb-xs { margin-bottom: 4px; }
3232
+ .mds-mb-sm { margin-bottom: var(--mds-spacing-sm); }
3233
+ .mds-mb-md { margin-bottom: var(--mds-spacing-md); }
3234
+ .mds-mb-lg { margin-bottom: var(--mds-spacing-lg); }
3235
+ .mds-mt-sm { margin-top: var(--mds-spacing-sm); }
3236
+ .mds-pt-sm { padding-top: var(--mds-spacing-sm); }
3237
+
3238
+ /* ---------- Border Utilities ---------- */
3239
+ .mds-border-top { border-top: 1px solid rgba(255, 255, 255, 0.1); }
3240
+
3241
+ /* ---------- Display Utilities ---------- */
3242
+ .mds-block { display: block; }
3243
+
3244
+ /* ---------- Flex Alignment Utilities ---------- */
3245
+ .mds-justify-center { justify-content: center; }
3246
+ .mds-justify-between { justify-content: space-between; }
3247
+ .mds-justify-start { justify-content: flex-start; }
3248
+ .mds-justify-end { justify-content: flex-end; }
3249
+
3250
+ /* ---------- Extra Padding Utilities ---------- */
3251
+ .mds-p-2xl { padding: 2.5rem; }
3252
+ .mds-p-3xl { padding: 3rem; }
3253
+
3254
+ /* ---------- Margin Zero Utilities ---------- */
3255
+ .mds-m-0 { margin: 0; }
3256
+ .mds-mt-0 { margin-top: 0; }
3257
+ .mds-mb-0 { margin-bottom: 0; }
3258
+
3259
+ /* ---------- Text Size Utilities ---------- */
3260
+ .mds-text-4xl { font-size: 4rem; }
3261
+ .mds-text-3xl { font-size: 3rem; }
3262
+ .mds-text-2xl { font-size: 2rem; }
3263
+
3264
+ /* ---------- Min Height Utilities ---------- */
3265
+ .mds-min-h-400 { min-height: 400px; }
3266
+ .mds-min-h-300 { min-height: 300px; }
3267
+ .mds-min-h-200 { min-height: 200px; }
3268
+
3269
+ /* ---------- Text Color Utilities ---------- */
3270
+ .mds-text-inherit { color: inherit; }
3271
+
3272
+ /* ---------- Text Transform Utilities ---------- */
3273
+ .mds-capitalize { text-transform: capitalize; }
3274
+
3275
+ /* ---------- Sidebar Utilities ---------- */
3276
+ .mds-sidebar-icon { font-size: 1.25rem; }
3277
+ .mds-sidebar-scroll { flex: 1; overflow-y: auto; padding-top: 0.5rem; position: relative; }
3278
+ .mds-sidebar-item { position: relative; }
3279
+ .mds-sidebar-footer { margin-top: auto; padding: 0.5rem 0; display: flex; justify-content: center; }
3280
+ .mds-mt-xs { margin-top: 0.25rem; }
3281
+ .mds-mt-md { margin-top: var(--mds-spacing-md); }
3282
+ .mds-mt-lg { margin-top: var(--mds-spacing-lg); }
3283
+
3284
+ /* ---------- Legal Page Layout ---------- */
3285
+ .mds-legal-page {
3286
+ min-height: 100vh;
3287
+ padding: 2rem;
3288
+ background-color: var(--mds-color-bg);
3289
+ color: var(--mds-color-text-primary);
3290
+ }
3291
+
3292
+ .mds-legal-container {
3293
+ max-width: 800px;
3294
+ margin: 0 auto;
3295
+ }
3296
+
3297
+ .mds-legal-back-link {
3298
+ display: inline-flex;
3299
+ align-items: center;
3300
+ gap: 0.5rem;
3301
+ color: var(--mds-color-info);
3302
+ text-decoration: none;
3303
+ font-size: 0.875rem;
3304
+ margin-bottom: 1.5rem;
3305
+ transition: opacity 0.2s;
3306
+ }
3307
+ .mds-legal-back-link:hover { opacity: 0.8; }
3308
+
3309
+ .mds-legal-title {
3310
+ font-size: 1.75rem;
3311
+ font-weight: 600;
3312
+ color: var(--mds-color-text-primary);
3313
+ margin-bottom: 0.5rem;
3314
+ }
3315
+
3316
+ .mds-legal-updated {
3317
+ font-size: 0.875rem;
3318
+ color: var(--mds-color-text-secondary);
3319
+ margin-bottom: 2rem;
3320
+ }
3321
+
3322
+ .mds-legal-sections {
3323
+ display: flex;
3324
+ flex-direction: column;
3325
+ gap: 1.5rem;
3326
+ }
3327
+
3328
+ .mds-legal-section-title {
3329
+ font-size: 1.125rem;
3330
+ font-weight: 600;
3331
+ color: var(--mds-color-text-primary);
3332
+ margin-bottom: 0.75rem;
3333
+ }
3334
+
3335
+ .mds-legal-section-content {
3336
+ font-size: 0.9375rem;
3337
+ line-height: 1.6;
3338
+ color: var(--mds-color-text-secondary);
3339
+ }
3340
+
3341
+ .mds-legal-list {
3342
+ margin-top: 0.5rem;
3343
+ padding-left: 1.5rem;
3344
+ }
3345
+
3346
+ .mds-legal-glass-card {
3347
+ max-width: 800px;
3348
+ margin: 0 auto;
3349
+ padding: 2rem;
3350
+ background: var(--mds-liquid-bg-elevated);
3351
+ backdrop-filter: blur(20px) saturate(180%);
3352
+ -webkit-backdrop-filter: blur(20px) saturate(180%);
3353
+ border-radius: 16px;
3354
+ border: 1px solid var(--mds-liquid-border-subtle);
3355
+ }
3356
+
3357
+ .mds-legal-gradient-bg {
3358
+ min-height: 100vh;
3359
+ padding: 2rem;
3360
+ background: var(--mds-liquid-gradient);
3361
+ color: var(--mds-color-text-primary);
3362
+ }
3363
+ /**
3364
+ * ProfileCard Component Styles
3365
+ * Passport-style profile card with Liquid Glass aesthetic
3366
+ * Supports light/dark themes via data-theme attribute
3367
+ *
3368
+ * @package @metropolle/design-system
3369
+ */
3370
+
3371
+ /* =============================================================================
3372
+ Main Card
3373
+ ============================================================================= */
3374
+
3375
+ .mds-profile-card {
3376
+ --mds-profile-card-photo-width: 280px;
3377
+
3378
+ position: relative;
3379
+ display: grid;
3380
+ grid-template-columns: var(--mds-profile-card-photo-width) 1fr;
3381
+ gap: 0;
3382
+ /* Liquid Glass */
3383
+ background: rgba(255, 255, 255, 0.03);
3384
+ backdrop-filter: blur(24px) saturate(140%);
3385
+ -webkit-backdrop-filter: blur(24px) saturate(140%);
3386
+ border-radius: 24px;
3387
+ border: 1px solid rgba(255, 255, 255, 0.08);
3388
+ box-shadow:
3389
+ 0 12px 40px rgba(0, 0, 0, 0.3),
3390
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
3391
+ overflow: visible;
3392
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3393
+ max-width: 800px;
3394
+ width: 100%;
3395
+ animation: mds-profile-card-reveal 0.7s cubic-bezier(0.16, 1, 0.3, 1) forwards;
3396
+ }
3397
+
3398
+ @keyframes mds-profile-card-reveal {
3399
+ from {
3400
+ opacity: 0;
3401
+ transform: translateY(20px) scale(0.98);
3402
+ }
3403
+ to {
3404
+ opacity: 1;
3405
+ transform: translateY(0) scale(1);
3406
+ }
3407
+ }
3408
+
3409
+ /* Light theme */
3410
+ html[data-theme="light"] .mds-profile-card {
3411
+ background: rgba(255, 255, 255, 0.15);
3412
+ border: 1px solid rgba(255, 255, 255, 0.8);
3413
+ box-shadow:
3414
+ 0 8px 32px rgba(0, 0, 0, 0.08),
3415
+ inset 0 1px 0 rgba(255, 255, 255, 1);
3416
+ }
3417
+
3418
+ /* =============================================================================
3419
+ Grain Overlay
3420
+ ============================================================================= */
3421
+
3422
+ .mds-profile-card__grain {
3423
+ position: absolute;
3424
+ inset: 0;
3425
+ border-radius: 24px;
3426
+ opacity: 0.12;
3427
+ mix-blend-mode: overlay;
3428
+ pointer-events: none;
3429
+ z-index: 5;
3430
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
3431
+ }
3432
+
3433
+ html[data-theme="light"] .mds-profile-card__grain {
3434
+ opacity: 0.05;
3435
+ }
3436
+
3437
+ /* =============================================================================
3438
+ Photo Section
3439
+ ============================================================================= */
3440
+
3441
+ .mds-profile-card__photo {
3442
+ position: relative;
3443
+ overflow: hidden;
3444
+ z-index: 2;
3445
+ border-radius: 24px 0 0 24px;
3446
+ min-height: 272px;
3447
+ background-color: rgba(26, 26, 46, 0.1);
3448
+ }
3449
+
3450
+ html[data-theme="light"] .mds-profile-card__photo {
3451
+ background-color: rgba(255, 255, 255, 0.05);
3452
+ }
3453
+
3454
+ .mds-profile-card__avatar {
3455
+ width: 100%;
3456
+ height: 100%;
3457
+ -o-object-fit: cover;
3458
+ object-fit: cover;
3459
+ -o-object-position: center top;
3460
+ object-position: center top;
3461
+ display: block;
3462
+ }
3463
+
3464
+ .mds-profile-card__photo-slot {
3465
+ width: 100%;
3466
+ height: 100%;
3467
+ display: flex;
3468
+ align-items: center;
3469
+ justify-content: center;
3470
+ min-height: 272px;
3471
+ }
3472
+
3473
+ /* =============================================================================
3474
+ Content Section
3475
+ ============================================================================= */
3476
+
3477
+ .mds-profile-card__content {
3478
+ position: relative;
3479
+ display: flex;
3480
+ flex-direction: column;
3481
+ justify-content: center;
3482
+ align-items: flex-start;
3483
+ padding: 27px;
3484
+ border-left: 1px solid rgba(255, 255, 255, 0.06);
3485
+ z-index: 2;
3486
+ gap: 16px;
3487
+ }
3488
+
3489
+ html[data-theme="light"] .mds-profile-card__content {
3490
+ border-left-color: rgba(0, 0, 0, 0.04);
3491
+ }
3492
+
3493
+ /* =============================================================================
3494
+ Identity Block
3495
+ ============================================================================= */
3496
+
3497
+ .mds-profile-card__identity {
3498
+ width: 100%;
3499
+ margin-bottom: 20px;
3500
+ }
3501
+
3502
+ .mds-profile-card__name {
3503
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3504
+ font-size: 32px;
3505
+ font-weight: normal;
3506
+ color: var(--mds-color-text-primary, #ffffff);
3507
+ margin: 0 0 5px 0;
3508
+ letter-spacing: 0.06em;
3509
+ text-transform: uppercase;
3510
+ line-height: 1.2;
3511
+ }
3512
+
3513
+ .mds-profile-card__profession {
3514
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3515
+ font-size: 18px;
3516
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.7));
3517
+ letter-spacing: 0.1em;
3518
+ text-transform: uppercase;
3519
+ margin: 5px 0 0 0;
3520
+ }
3521
+
3522
+ .mds-profile-card__username {
3523
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3524
+ font-size: 15px;
3525
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3526
+ letter-spacing: 0.06em;
3527
+ margin: 0;
3528
+ }
3529
+
3530
+ /* =============================================================================
3531
+ Details Block
3532
+ ============================================================================= */
3533
+
3534
+ .mds-profile-card__details {
3535
+ width: 100%;
3536
+ }
3537
+
3538
+ .mds-profile-card__location {
3539
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3540
+ font-size: 18px;
3541
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3542
+ letter-spacing: 0.06em;
3543
+ margin: 0 0 5px 0;
3544
+ }
3545
+
3546
+ .mds-profile-card__username-detail {
3547
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3548
+ font-size: 18px;
3549
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3550
+ letter-spacing: 0.06em;
3551
+ }
3552
+
3553
+ .mds-profile-card__email {
3554
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3555
+ font-size: 14px;
3556
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.7));
3557
+ letter-spacing: 0.04em;
3558
+ margin: 0 0 4px 0;
3559
+ }
3560
+
3561
+ .mds-profile-card__member {
3562
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3563
+ font-size: 11px;
3564
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.4));
3565
+ letter-spacing: 0.08em;
3566
+ text-transform: uppercase;
3567
+ }
3568
+
3569
+ /* =============================================================================
3570
+ Verification Section (Compact Variant)
3571
+ ============================================================================= */
3572
+
3573
+ .mds-profile-card__verification {
3574
+ display: flex;
3575
+ align-items: center;
3576
+ gap: 12px;
3577
+ margin-top: 8px;
3578
+ }
3579
+
3580
+ .mds-profile-card__verified-badge {
3581
+ display: inline-flex;
3582
+ align-items: center;
3583
+ gap: 6px;
3584
+ padding: 6px 12px;
3585
+ background: rgba(0, 212, 170, 0.1);
3586
+ border: 1px solid rgba(0, 212, 170, 0.2);
3587
+ border-radius: 100px;
3588
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3589
+ font-size: 10px;
3590
+ letter-spacing: 0.1em;
3591
+ text-transform: uppercase;
3592
+ color: #00d4aa;
3593
+ cursor: pointer;
3594
+ transition: all 0.2s ease;
3595
+ }
3596
+
3597
+ .mds-profile-card__verified-badge:hover {
3598
+ background: rgba(0, 212, 170, 0.15);
3599
+ border-color: rgba(0, 212, 170, 0.3);
3600
+ }
3601
+
3602
+ .mds-profile-card__verified-badge svg {
3603
+ width: 14px;
3604
+ height: 14px;
3605
+ fill: currentColor;
3606
+ }
3607
+
3608
+ .mds-profile-card__dots {
3609
+ display: flex;
3610
+ gap: 6px;
3611
+ }
3612
+
3613
+ .mds-profile-card__dot {
3614
+ width: 6px;
3615
+ height: 6px;
3616
+ border-radius: 50%;
3617
+ background: rgba(255, 255, 255, 0.15);
3618
+ transition: all 0.3s ease;
3619
+ }
3620
+
3621
+ .mds-profile-card__dot.active {
3622
+ background: #00d4aa;
3623
+ box-shadow: 0 0 8px rgba(0, 212, 170, 0.4);
3624
+ }
3625
+
3626
+ html[data-theme="light"] .mds-profile-card__dot {
3627
+ background: rgba(0, 0, 0, 0.15);
3628
+ }
3629
+
3630
+ /* =============================================================================
3631
+ Social Section (Full Variant)
3632
+ ============================================================================= */
3633
+
3634
+ .mds-profile-card__social {
3635
+ position: absolute;
3636
+ bottom: 27px;
3637
+ right: 27px;
3638
+ z-index: 10;
3639
+ }
3640
+
3641
+ .mds-profile-card__social-trigger {
3642
+ width: 22px;
3643
+ height: 22px;
3644
+ display: flex;
3645
+ align-items: center;
3646
+ justify-content: center;
3647
+ background: transparent;
3648
+ border: none;
3649
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3650
+ cursor: pointer;
3651
+ transition: all 0.2s ease;
3652
+ padding: 0;
3653
+ }
3654
+
3655
+ .mds-profile-card__social-trigger svg {
3656
+ width: 20px;
3657
+ height: 20px;
3658
+ fill: currentColor;
3659
+ transition: transform 0.3s ease;
3660
+ }
3661
+
3662
+ .mds-profile-card__social-trigger:hover {
3663
+ color: var(--mds-color-text-primary, #ffffff);
3664
+ }
3665
+
3666
+ .mds-profile-card__social-trigger:hover svg {
3667
+ transform: rotate(90deg);
3668
+ }
3669
+
3670
+ .mds-profile-card__social-popup {
3671
+ position: absolute;
3672
+ bottom: 0;
3673
+ right: 36px;
3674
+ display: flex;
3675
+ gap: 8px;
3676
+ padding: 12px;
3677
+ /* Liquid Glass popup */
3678
+ background: rgba(20, 20, 30, 0.75);
3679
+ backdrop-filter: blur(16px) saturate(140%);
3680
+ -webkit-backdrop-filter: blur(16px) saturate(140%);
3681
+ border-radius: 14px;
3682
+ border: 1px solid rgba(255, 255, 255, 0.1);
3683
+ box-shadow:
3684
+ 0 8px 24px rgba(0, 0, 0, 0.25),
3685
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
3686
+ z-index: 20;
3687
+ }
3688
+
3689
+ html[data-theme="light"] .mds-profile-card__social-popup {
3690
+ background: rgba(255, 255, 255, 0.7);
3691
+ border: 1px solid rgba(255, 255, 255, 0.9);
3692
+ box-shadow:
3693
+ 0 8px 24px rgba(0, 0, 0, 0.08),
3694
+ inset 0 1px 0 rgba(255, 255, 255, 1);
3695
+ }
3696
+
3697
+ .mds-profile-card__social-link {
3698
+ width: 38px;
3699
+ height: 38px;
3700
+ display: flex;
3701
+ align-items: center;
3702
+ justify-content: center;
3703
+ background: rgba(255, 255, 255, 0.05);
3704
+ border: 1px solid rgba(255, 255, 255, 0.08);
3705
+ border-radius: 10px;
3706
+ color: rgba(255, 255, 255, 0.7);
3707
+ text-decoration: none;
3708
+ transition: all 0.2s ease;
3709
+ }
3710
+
3711
+ .mds-profile-card__social-link:hover {
3712
+ background: rgba(255, 255, 255, 0.1);
3713
+ color: #ffffff;
3714
+ }
3715
+
3716
+ html[data-theme="light"] .mds-profile-card__social-link {
3717
+ background: rgba(0, 0, 0, 0.05);
3718
+ border-color: rgba(0, 0, 0, 0.08);
3719
+ color: rgba(0, 0, 0, 0.7);
3720
+ }
3721
+
3722
+ html[data-theme="light"] .mds-profile-card__social-link:hover {
3723
+ background: rgba(0, 0, 0, 0.1);
3724
+ color: #000000;
3725
+ }
3726
+
3727
+ .mds-profile-card__social-link svg {
3728
+ width: 18px;
3729
+ height: 18px;
3730
+ fill: currentColor;
3731
+ }
3732
+
3733
+ /* =============================================================================
3734
+ Dynamic Info Group (Full Variant)
3735
+ ============================================================================= */
3736
+
3737
+ .mds-profile-card__dynamic-group {
3738
+ position: absolute;
3739
+ right: 27px;
3740
+ top: 50%;
3741
+ transform: translateY(-40%);
3742
+ display: flex;
3743
+ align-items: center;
3744
+ gap: 10px;
3745
+ z-index: 10;
3746
+ }
3747
+
3748
+ .mds-profile-card__dynamic-info {
3749
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3750
+ font-size: 11px;
3751
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3752
+ letter-spacing: 0.08em;
3753
+ text-transform: uppercase;
3754
+ }
3755
+
3756
+ /* =============================================================================
3757
+ Verified Section (Full Variant)
3758
+ ============================================================================= */
3759
+
3760
+ .mds-profile-card__verified-section {
3761
+ position: relative;
3762
+ }
3763
+
3764
+ .mds-profile-card__verified-trigger {
3765
+ width: 22px;
3766
+ height: 22px;
3767
+ display: flex;
3768
+ align-items: center;
3769
+ justify-content: center;
3770
+ background: transparent;
3771
+ border: none;
3772
+ color: rgba(255, 255, 255, 0.7);
3773
+ cursor: pointer;
3774
+ transition: all 0.2s ease;
3775
+ padding: 0;
3776
+ }
3777
+
3778
+ html[data-theme="light"] .mds-profile-card__verified-trigger {
3779
+ color: rgba(0, 0, 0, 0.6);
3780
+ }
3781
+
3782
+ .mds-profile-card__verified-trigger:hover {
3783
+ color: var(--mds-color-text-primary, #ffffff);
3784
+ }
3785
+
3786
+ .mds-profile-card__verified-trigger svg {
3787
+ width: 18px;
3788
+ height: 18px;
3789
+ fill: currentColor;
3790
+ }
3791
+
3792
+ .mds-profile-card__verified-popup {
3793
+ position: absolute;
3794
+ top: calc(100% + 12px);
3795
+ right: 0;
3796
+ padding: 16px;
3797
+ /* Liquid Glass popup */
3798
+ background: rgba(20, 20, 30, 0.75);
3799
+ backdrop-filter: blur(16px) saturate(140%);
3800
+ -webkit-backdrop-filter: blur(16px) saturate(140%);
3801
+ border-radius: 14px;
3802
+ border: 1px solid rgba(255, 255, 255, 0.1);
3803
+ box-shadow:
3804
+ 0 8px 24px rgba(0, 0, 0, 0.25),
3805
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
3806
+ min-width: 180px;
3807
+ z-index: 20;
3808
+ }
3809
+
3810
+ html[data-theme="light"] .mds-profile-card__verified-popup {
3811
+ background: rgba(255, 255, 255, 0.7);
3812
+ border: 1px solid rgba(255, 255, 255, 0.9);
3813
+ box-shadow:
3814
+ 0 8px 24px rgba(0, 0, 0, 0.08),
3815
+ inset 0 1px 0 rgba(255, 255, 255, 1);
3816
+ }
3817
+
3818
+ .mds-profile-card__verified-header {
3819
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3820
+ font-size: 12px;
3821
+ font-weight: bold;
3822
+ color: #00d4aa;
3823
+ letter-spacing: 0.08em;
3824
+ text-transform: uppercase;
3825
+ margin-bottom: 14px;
3826
+ white-space: nowrap;
3827
+ }
3828
+
3829
+ .mds-profile-card__verified-stats {
3830
+ display: flex;
3831
+ flex-direction: column;
3832
+ gap: 10px;
3833
+ }
3834
+
3835
+ .mds-profile-card__stat-item {
3836
+ display: flex;
3837
+ justify-content: space-between;
3838
+ align-items: center;
3839
+ gap: 20px;
3840
+ }
3841
+
3842
+ .mds-profile-card__stat-label {
3843
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3844
+ font-size: 11px;
3845
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3846
+ letter-spacing: 0.06em;
3847
+ }
3848
+
3849
+ .mds-profile-card__stat-value {
3850
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3851
+ font-size: 11px;
3852
+ letter-spacing: 0.06em;
3853
+ text-transform: uppercase;
3854
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3855
+ }
3856
+
3857
+ .mds-profile-card__stat-value--verified {
3858
+ color: #00d4aa;
3859
+ }
3860
+
3861
+ .mds-profile-card__verified-date {
3862
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3863
+ font-size: 10px;
3864
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.4));
3865
+ letter-spacing: 0.06em;
3866
+ text-transform: uppercase;
3867
+ margin-top: 14px;
3868
+ padding-top: 10px;
3869
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
3870
+ }
3871
+
3872
+ html[data-theme="light"] .mds-profile-card__verified-date {
3873
+ border-top-color: rgba(0, 0, 0, 0.06);
3874
+ }
3875
+
3876
+ /* Info dots (for rotating info) */
3877
+ .mds-profile-card__info-dots {
3878
+ display: flex;
3879
+ flex-direction: column;
3880
+ gap: 10px;
3881
+ }
3882
+
3883
+ .mds-profile-card__info-dot {
3884
+ width: 5px;
3885
+ height: 5px;
3886
+ border-radius: 50%;
3887
+ background: rgba(255, 255, 255, 0.2);
3888
+ transition: all 0.3s ease;
3889
+ }
3890
+
3891
+ .mds-profile-card__info-dot.active {
3892
+ background: rgba(255, 255, 255, 0.8);
3893
+ transform: scale(1.3);
3894
+ }
3895
+
3896
+ html[data-theme="light"] .mds-profile-card__info-dot {
3897
+ background: rgba(0, 0, 0, 0.2);
3898
+ }
3899
+
3900
+ html[data-theme="light"] .mds-profile-card__info-dot.active {
3901
+ background: rgba(0, 0, 0, 0.7);
3902
+ }
3903
+
3904
+ /* =============================================================================
3905
+ Responsive
3906
+ ============================================================================= */
3907
+
3908
+ @media (max-width: 700px) {
3909
+ .mds-profile-card {
3910
+ grid-template-columns: 1fr;
3911
+ max-width: 400px;
3912
+ }
3913
+
3914
+ .mds-profile-card__photo {
3915
+ border-radius: 24px 24px 0 0;
3916
+ min-height: 280px;
3917
+ }
3918
+
3919
+ .mds-profile-card__content {
3920
+ border-left: none;
3921
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
3922
+ padding: 20px;
3923
+ align-items: center;
3924
+ text-align: center;
3925
+ }
3926
+
3927
+ html[data-theme="light"] .mds-profile-card__content {
3928
+ border-top-color: rgba(0, 0, 0, 0.04);
3929
+ }
3930
+
3931
+ .mds-profile-card__identity,
3932
+ .mds-profile-card__details {
3933
+ text-align: center;
3934
+ }
3935
+
3936
+ .mds-profile-card__verification {
3937
+ justify-content: center;
3938
+ }
3939
+
3940
+ .mds-profile-card__dynamic-group {
3941
+ position: static;
3942
+ transform: none;
3943
+ justify-content: center;
3944
+ margin-top: 16px;
3945
+ }
3946
+
3947
+ .mds-profile-card__social {
3948
+ position: static;
3949
+ margin-top: 16px;
3950
+ }
3951
+ }
3952
+
3953
+ @media (max-width: 480px) {
3954
+ .mds-profile-card__name {
3955
+ font-size: 24px;
3956
+ }
3957
+
3958
+ .mds-profile-card__profession,
3959
+ .mds-profile-card__location,
3960
+ .mds-profile-card__username-detail {
3961
+ font-size: 14px;
3962
+ }
3963
+ }