@metropolle/design-system 1.2026.0-1.2.1231 → 1.2026.0-1.22.1449

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 (51) hide show
  1. package/README.md +2 -0
  2. package/dist/css/compat/back.css +12 -0
  3. package/dist/css/components.css +2285 -3
  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 +10 -0
  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/ModalHeader.d.ts.map +1 -1
  40. package/dist/react/components/react/ProfileCard/ProfileCard.d.ts +57 -0
  41. package/dist/react/components/react/ProfileCard/ProfileCard.d.ts.map +1 -0
  42. package/dist/react/components/react/ProfileCard/index.d.ts +3 -0
  43. package/dist/react/components/react/ProfileCard/index.d.ts.map +1 -0
  44. package/dist/react/components/react/index.d.ts +14 -0
  45. package/dist/react/components/react/index.d.ts.map +1 -1
  46. package/dist/react/index.d.ts +32 -18
  47. package/dist/react/index.esm.js +492 -37
  48. package/dist/react/index.esm.js.map +1 -1
  49. package/dist/react/index.js +499 -36
  50. package/dist/react/index.js.map +1 -1
  51. package/package.json +2 -1
@@ -162,6 +162,31 @@
162
162
  background: var(--mds-color-background-secondary);
163
163
  }
164
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
+
165
190
  .mds-button--glass {
166
191
  background: var(--mds-color-background-glass-light);
167
192
  color: var(--mds-color-text-primary);
@@ -178,6 +203,18 @@
178
203
  box-shadow: var(--mds-spacing-shadow-glass-lightHover);
179
204
  }
180
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
+
181
218
  /* Button Icons */
182
219
  .mds-button__icon {
183
220
  display: inline-flex;
@@ -894,6 +931,15 @@ html body div.mds-dropdown select.mds-select-themed {
894
931
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1);
895
932
  }
896
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
+
897
943
  /* Textarea specific styles */
898
944
  .mds-textarea {
899
945
  resize: vertical;
@@ -1070,8 +1116,10 @@ html[data-theme="light"] select.mds-input {
1070
1116
  border: 1px solid rgba(255, 255, 255, 0.15);
1071
1117
  border-radius: 8px;
1072
1118
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 8px rgba(0, 0, 0, 0.2);
1073
- overflow: hidden;
1119
+ overflow: hidden; /* Changed from auto to hidden - scroll is on .mds-select-options */
1074
1120
  animation: mds-select-dropdown-enter 0.15s ease-out;
1121
+ display: flex;
1122
+ flex-direction: column;
1075
1123
  }
1076
1124
 
1077
1125
  @keyframes mds-select-dropdown-enter {
@@ -1087,9 +1135,10 @@ html[data-theme="light"] select.mds-input {
1087
1135
 
1088
1136
  /* Select Search */
1089
1137
  .mds-select-search {
1090
- position: relative;
1138
+ flex-shrink: 0; /* Don't shrink in flex container */
1091
1139
  padding: 8px;
1092
1140
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
1141
+ background-color: var(--mds-dashboard-control-option-bg, #2a2a2a);
1093
1142
  }
1094
1143
 
1095
1144
  .mds-select-search__input {
@@ -1135,7 +1184,8 @@ html[data-theme="light"] select.mds-input {
1135
1184
  margin: 0;
1136
1185
  padding: 4px;
1137
1186
  overflow-y: auto;
1138
- max-height: inherit;
1187
+ flex: 1;
1188
+ min-height: 0; /* Required for flex scroll */
1139
1189
  }
1140
1190
 
1141
1191
  /* Select Option */
@@ -1245,6 +1295,7 @@ html[data-theme="light"] .mds-select-dropdown {
1245
1295
 
1246
1296
  html[data-theme="light"] .mds-select-search {
1247
1297
  border-bottom-color: rgba(0, 0, 0, 0.1);
1298
+ background-color: var(--mds-dashboard-control-option-bg, #ffffff);
1248
1299
  }
1249
1300
 
1250
1301
  html[data-theme="light"] .mds-select-search__input {
@@ -1343,6 +1394,145 @@ html[data-theme="light"] .mds-select-option--empty {
1343
1394
  gap: var(--mds-spacing-xl);
1344
1395
  }
1345
1396
 
1397
+ /* Dashboard Progress Bars */
1398
+ .mds-progress-row {
1399
+ display: flex;
1400
+ align-items: center;
1401
+ gap: 15px;
1402
+ }
1403
+
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;
1411
+ }
1412
+
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;
1421
+ }
1422
+
1423
+ .mds-progress-fill {
1424
+ height: 100%;
1425
+ border-radius: 4px;
1426
+ transition: width 0.3s ease;
1427
+ }
1428
+
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
+
1346
1536
  /* ========================================
1347
1537
  Layout Utility Classes - @back optimization
1348
1538
  ======================================== */
@@ -1799,3 +1989,2095 @@ html[data-theme="light"] .mds-navbar-user-badge {
1799
1989
  font-size: var(--mds-typography-fontSize-sm);
1800
1990
  word-break: break-all;
1801
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
+ /* Username Hierarchical Links */
3554
+ .mds-profile-card__username-link {
3555
+ color: inherit;
3556
+ text-decoration: none;
3557
+ transition: color 0.2s ease, text-shadow 0.2s ease;
3558
+ }
3559
+
3560
+ .mds-profile-card__username-link:hover {
3561
+ color: var(--mds-color-text-primary, rgba(255, 255, 255, 0.95));
3562
+ text-shadow: 0 0 8px var(--mds-color-accent-glow, rgba(139, 92, 246, 0.4));
3563
+ }
3564
+
3565
+ .mds-profile-card__username-separator {
3566
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.3));
3567
+ margin: 0 1px;
3568
+ }
3569
+
3570
+ .mds-profile-card__email {
3571
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3572
+ font-size: 14px;
3573
+ color: var(--mds-color-text-secondary, rgba(255, 255, 255, 0.7));
3574
+ letter-spacing: 0.04em;
3575
+ margin: 0 0 4px 0;
3576
+ }
3577
+
3578
+ .mds-profile-card__member {
3579
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3580
+ font-size: 11px;
3581
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.4));
3582
+ letter-spacing: 0.08em;
3583
+ text-transform: uppercase;
3584
+ }
3585
+
3586
+ /* =============================================================================
3587
+ Verification Section (Compact Variant)
3588
+ ============================================================================= */
3589
+
3590
+ .mds-profile-card__verification {
3591
+ display: flex;
3592
+ align-items: center;
3593
+ gap: 12px;
3594
+ margin-top: 8px;
3595
+ }
3596
+
3597
+ .mds-profile-card__verified-badge {
3598
+ display: inline-flex;
3599
+ align-items: center;
3600
+ gap: 6px;
3601
+ padding: 6px 12px;
3602
+ background: rgba(0, 212, 170, 0.1);
3603
+ border: 1px solid rgba(0, 212, 170, 0.2);
3604
+ border-radius: 100px;
3605
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3606
+ font-size: 10px;
3607
+ letter-spacing: 0.1em;
3608
+ text-transform: uppercase;
3609
+ color: #00d4aa;
3610
+ cursor: pointer;
3611
+ transition: all 0.2s ease;
3612
+ }
3613
+
3614
+ .mds-profile-card__verified-badge:hover {
3615
+ background: rgba(0, 212, 170, 0.15);
3616
+ border-color: rgba(0, 212, 170, 0.3);
3617
+ }
3618
+
3619
+ .mds-profile-card__verified-badge svg {
3620
+ width: 14px;
3621
+ height: 14px;
3622
+ fill: currentColor;
3623
+ }
3624
+
3625
+ .mds-profile-card__dots {
3626
+ display: flex;
3627
+ gap: 6px;
3628
+ }
3629
+
3630
+ .mds-profile-card__dot {
3631
+ width: 6px;
3632
+ height: 6px;
3633
+ border-radius: 50%;
3634
+ background: rgba(255, 255, 255, 0.15);
3635
+ transition: all 0.3s ease;
3636
+ }
3637
+
3638
+ .mds-profile-card__dot.active {
3639
+ background: #00d4aa;
3640
+ box-shadow: 0 0 8px rgba(0, 212, 170, 0.4);
3641
+ }
3642
+
3643
+ html[data-theme="light"] .mds-profile-card__dot {
3644
+ background: rgba(0, 0, 0, 0.15);
3645
+ }
3646
+
3647
+ /* =============================================================================
3648
+ Social Section (Full Variant)
3649
+ ============================================================================= */
3650
+
3651
+ .mds-profile-card__social {
3652
+ position: absolute;
3653
+ bottom: 27px;
3654
+ right: 27px;
3655
+ z-index: 10;
3656
+ }
3657
+
3658
+ .mds-profile-card__social-trigger {
3659
+ width: 22px;
3660
+ height: 22px;
3661
+ display: flex;
3662
+ align-items: center;
3663
+ justify-content: center;
3664
+ background: transparent;
3665
+ border: none;
3666
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3667
+ cursor: pointer;
3668
+ transition: all 0.2s ease;
3669
+ padding: 0;
3670
+ }
3671
+
3672
+ .mds-profile-card__social-trigger svg {
3673
+ width: 20px;
3674
+ height: 20px;
3675
+ fill: currentColor;
3676
+ transition: transform 0.3s ease;
3677
+ }
3678
+
3679
+ .mds-profile-card__social-trigger:hover {
3680
+ color: var(--mds-color-text-primary, #ffffff);
3681
+ }
3682
+
3683
+ .mds-profile-card__social-trigger:hover svg {
3684
+ transform: rotate(90deg);
3685
+ }
3686
+
3687
+ .mds-profile-card__social-popup {
3688
+ position: absolute;
3689
+ bottom: 0;
3690
+ right: 36px;
3691
+ display: flex;
3692
+ gap: 8px;
3693
+ padding: 12px;
3694
+ /* Liquid Glass popup */
3695
+ background: rgba(20, 20, 30, 0.75);
3696
+ backdrop-filter: blur(16px) saturate(140%);
3697
+ -webkit-backdrop-filter: blur(16px) saturate(140%);
3698
+ border-radius: 14px;
3699
+ border: 1px solid rgba(255, 255, 255, 0.1);
3700
+ box-shadow:
3701
+ 0 8px 24px rgba(0, 0, 0, 0.25),
3702
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
3703
+ z-index: 20;
3704
+ }
3705
+
3706
+ html[data-theme="light"] .mds-profile-card__social-popup {
3707
+ background: rgba(255, 255, 255, 0.7);
3708
+ border: 1px solid rgba(255, 255, 255, 0.9);
3709
+ box-shadow:
3710
+ 0 8px 24px rgba(0, 0, 0, 0.08),
3711
+ inset 0 1px 0 rgba(255, 255, 255, 1);
3712
+ }
3713
+
3714
+ .mds-profile-card__social-link {
3715
+ width: 38px;
3716
+ height: 38px;
3717
+ display: flex;
3718
+ align-items: center;
3719
+ justify-content: center;
3720
+ background: rgba(255, 255, 255, 0.05);
3721
+ border: 1px solid rgba(255, 255, 255, 0.08);
3722
+ border-radius: 10px;
3723
+ color: rgba(255, 255, 255, 0.7);
3724
+ text-decoration: none;
3725
+ transition: all 0.2s ease;
3726
+ }
3727
+
3728
+ .mds-profile-card__social-link:hover {
3729
+ background: rgba(255, 255, 255, 0.1);
3730
+ color: #ffffff;
3731
+ }
3732
+
3733
+ html[data-theme="light"] .mds-profile-card__social-link {
3734
+ background: rgba(0, 0, 0, 0.05);
3735
+ border-color: rgba(0, 0, 0, 0.08);
3736
+ color: rgba(0, 0, 0, 0.7);
3737
+ }
3738
+
3739
+ html[data-theme="light"] .mds-profile-card__social-link:hover {
3740
+ background: rgba(0, 0, 0, 0.1);
3741
+ color: #000000;
3742
+ }
3743
+
3744
+ .mds-profile-card__social-link svg {
3745
+ width: 18px;
3746
+ height: 18px;
3747
+ fill: currentColor;
3748
+ }
3749
+
3750
+ /* =============================================================================
3751
+ Dynamic Info Group (Full Variant)
3752
+ ============================================================================= */
3753
+
3754
+ .mds-profile-card__dynamic-group {
3755
+ position: absolute;
3756
+ right: 27px;
3757
+ top: 50%;
3758
+ transform: translateY(-40%);
3759
+ display: flex;
3760
+ align-items: center;
3761
+ gap: 10px;
3762
+ z-index: 10;
3763
+ }
3764
+
3765
+ .mds-profile-card__dynamic-info {
3766
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3767
+ font-size: 11px;
3768
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3769
+ letter-spacing: 0.08em;
3770
+ text-transform: uppercase;
3771
+ }
3772
+
3773
+ /* =============================================================================
3774
+ Verified Section (Full Variant)
3775
+ ============================================================================= */
3776
+
3777
+ .mds-profile-card__verified-section {
3778
+ position: relative;
3779
+ }
3780
+
3781
+ .mds-profile-card__verified-trigger {
3782
+ width: 22px;
3783
+ height: 22px;
3784
+ display: flex;
3785
+ align-items: center;
3786
+ justify-content: center;
3787
+ background: transparent;
3788
+ border: none;
3789
+ color: rgba(255, 255, 255, 0.7);
3790
+ cursor: pointer;
3791
+ transition: all 0.2s ease;
3792
+ padding: 0;
3793
+ }
3794
+
3795
+ html[data-theme="light"] .mds-profile-card__verified-trigger {
3796
+ color: rgba(0, 0, 0, 0.6);
3797
+ }
3798
+
3799
+ .mds-profile-card__verified-trigger:hover {
3800
+ color: var(--mds-color-text-primary, #ffffff);
3801
+ }
3802
+
3803
+ .mds-profile-card__verified-trigger svg {
3804
+ width: 18px;
3805
+ height: 18px;
3806
+ fill: currentColor;
3807
+ }
3808
+
3809
+ .mds-profile-card__verified-popup {
3810
+ position: absolute;
3811
+ top: calc(100% + 12px);
3812
+ right: 0;
3813
+ padding: 16px;
3814
+ /* Liquid Glass popup */
3815
+ background: rgba(20, 20, 30, 0.75);
3816
+ backdrop-filter: blur(16px) saturate(140%);
3817
+ -webkit-backdrop-filter: blur(16px) saturate(140%);
3818
+ border-radius: 14px;
3819
+ border: 1px solid rgba(255, 255, 255, 0.1);
3820
+ box-shadow:
3821
+ 0 8px 24px rgba(0, 0, 0, 0.25),
3822
+ inset 0 1px 0 rgba(255, 255, 255, 0.05);
3823
+ min-width: 180px;
3824
+ z-index: 20;
3825
+ }
3826
+
3827
+ html[data-theme="light"] .mds-profile-card__verified-popup {
3828
+ background: rgba(255, 255, 255, 0.7);
3829
+ border: 1px solid rgba(255, 255, 255, 0.9);
3830
+ box-shadow:
3831
+ 0 8px 24px rgba(0, 0, 0, 0.08),
3832
+ inset 0 1px 0 rgba(255, 255, 255, 1);
3833
+ }
3834
+
3835
+ .mds-profile-card__verified-header {
3836
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3837
+ font-size: 12px;
3838
+ font-weight: bold;
3839
+ color: #00d4aa;
3840
+ letter-spacing: 0.08em;
3841
+ text-transform: uppercase;
3842
+ margin-bottom: 14px;
3843
+ white-space: nowrap;
3844
+ }
3845
+
3846
+ .mds-profile-card__verified-stats {
3847
+ display: flex;
3848
+ flex-direction: column;
3849
+ gap: 10px;
3850
+ }
3851
+
3852
+ .mds-profile-card__stat-item {
3853
+ display: flex;
3854
+ justify-content: space-between;
3855
+ align-items: center;
3856
+ gap: 20px;
3857
+ }
3858
+
3859
+ .mds-profile-card__stat-label {
3860
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3861
+ font-size: 11px;
3862
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3863
+ letter-spacing: 0.06em;
3864
+ }
3865
+
3866
+ .mds-profile-card__stat-value {
3867
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3868
+ font-size: 11px;
3869
+ letter-spacing: 0.06em;
3870
+ text-transform: uppercase;
3871
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.5));
3872
+ }
3873
+
3874
+ .mds-profile-card__stat-value--verified {
3875
+ color: #00d4aa;
3876
+ }
3877
+
3878
+ .mds-profile-card__verified-date {
3879
+ font-family: 'OCR-B', 'OCR B Std', 'Courier New', monospace;
3880
+ font-size: 10px;
3881
+ color: var(--mds-color-text-tertiary, rgba(255, 255, 255, 0.4));
3882
+ letter-spacing: 0.06em;
3883
+ text-transform: uppercase;
3884
+ margin-top: 14px;
3885
+ padding-top: 10px;
3886
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
3887
+ }
3888
+
3889
+ html[data-theme="light"] .mds-profile-card__verified-date {
3890
+ border-top-color: rgba(0, 0, 0, 0.06);
3891
+ }
3892
+
3893
+ /* Info dots (for rotating info) */
3894
+ .mds-profile-card__info-dots {
3895
+ display: flex;
3896
+ flex-direction: column;
3897
+ gap: 10px;
3898
+ }
3899
+
3900
+ .mds-profile-card__info-dot {
3901
+ width: 5px;
3902
+ height: 5px;
3903
+ border-radius: 50%;
3904
+ background: rgba(255, 255, 255, 0.2);
3905
+ transition: all 0.3s ease;
3906
+ }
3907
+
3908
+ .mds-profile-card__info-dot.active {
3909
+ background: rgba(255, 255, 255, 0.8);
3910
+ transform: scale(1.3);
3911
+ }
3912
+
3913
+ html[data-theme="light"] .mds-profile-card__info-dot {
3914
+ background: rgba(0, 0, 0, 0.2);
3915
+ }
3916
+
3917
+ html[data-theme="light"] .mds-profile-card__info-dot.active {
3918
+ background: rgba(0, 0, 0, 0.7);
3919
+ }
3920
+
3921
+ /* =============================================================================
3922
+ Responsive
3923
+ ============================================================================= */
3924
+
3925
+ @media (max-width: 700px) {
3926
+ .mds-profile-card {
3927
+ grid-template-columns: 1fr;
3928
+ max-width: 400px;
3929
+ }
3930
+
3931
+ .mds-profile-card__photo {
3932
+ border-radius: 24px 24px 0 0;
3933
+ min-height: 280px;
3934
+ }
3935
+
3936
+ .mds-profile-card__content {
3937
+ border-left: none;
3938
+ border-top: 1px solid rgba(255, 255, 255, 0.06);
3939
+ padding: 20px;
3940
+ align-items: center;
3941
+ text-align: center;
3942
+ }
3943
+
3944
+ html[data-theme="light"] .mds-profile-card__content {
3945
+ border-top-color: rgba(0, 0, 0, 0.04);
3946
+ }
3947
+
3948
+ .mds-profile-card__identity,
3949
+ .mds-profile-card__details {
3950
+ text-align: center;
3951
+ }
3952
+
3953
+ .mds-profile-card__verification {
3954
+ justify-content: center;
3955
+ }
3956
+
3957
+ .mds-profile-card__dynamic-group {
3958
+ position: static;
3959
+ transform: none;
3960
+ justify-content: center;
3961
+ margin-top: 16px;
3962
+ }
3963
+
3964
+ .mds-profile-card__social {
3965
+ position: static;
3966
+ margin-top: 16px;
3967
+ }
3968
+ }
3969
+
3970
+ @media (max-width: 480px) {
3971
+ .mds-profile-card__name {
3972
+ font-size: 24px;
3973
+ }
3974
+
3975
+ .mds-profile-card__profession,
3976
+ .mds-profile-card__location,
3977
+ .mds-profile-card__username-detail {
3978
+ font-size: 14px;
3979
+ }
3980
+ }
3981
+
3982
+ /* =============================================================================
3983
+ Clickable Avatar
3984
+ ============================================================================= */
3985
+
3986
+ .mds-profile-card__avatar--clickable {
3987
+ cursor: pointer;
3988
+ transition: transform 0.2s ease, filter 0.2s ease;
3989
+ }
3990
+
3991
+ .mds-profile-card__avatar--clickable:hover {
3992
+ transform: scale(1.02);
3993
+ filter: brightness(1.05);
3994
+ }
3995
+
3996
+ .mds-profile-card__avatar--clickable:focus {
3997
+ outline: 2px solid var(--mds-color-accent-primary, #00d4ff);
3998
+ outline-offset: 2px;
3999
+ }
4000
+
4001
+ /* =============================================================================
4002
+ Photo Modal (Liquid Glass)
4003
+ ============================================================================= */
4004
+
4005
+ .mds-profile-card__photo-modal {
4006
+ position: fixed;
4007
+ inset: 0;
4008
+ z-index: 9999;
4009
+ display: flex;
4010
+ align-items: center;
4011
+ justify-content: center;
4012
+ padding: 24px;
4013
+ cursor: pointer;
4014
+ animation: mds-photo-modal-fade-in 0.25s ease-out;
4015
+ }
4016
+
4017
+ @keyframes mds-photo-modal-fade-in {
4018
+ from {
4019
+ opacity: 0;
4020
+ }
4021
+ to {
4022
+ opacity: 1;
4023
+ }
4024
+ }
4025
+
4026
+ .mds-profile-card__photo-modal-backdrop {
4027
+ position: absolute;
4028
+ inset: 0;
4029
+ background: rgba(10, 10, 15, 0.6);
4030
+ backdrop-filter: blur(20px) saturate(120%);
4031
+ -webkit-backdrop-filter: blur(20px) saturate(120%);
4032
+ }
4033
+
4034
+ html[data-theme="light"] .mds-profile-card__photo-modal-backdrop {
4035
+ background: rgba(255, 255, 255, 0.5);
4036
+ backdrop-filter: blur(20px) saturate(140%);
4037
+ -webkit-backdrop-filter: blur(20px) saturate(140%);
4038
+ }
4039
+
4040
+ .mds-profile-card__photo-modal-content {
4041
+ position: relative;
4042
+ display: flex;
4043
+ align-items: center;
4044
+ justify-content: center;
4045
+ max-width: 90vw;
4046
+ max-height: 90vh;
4047
+ animation: mds-photo-modal-scale-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);
4048
+ }
4049
+
4050
+ @keyframes mds-photo-modal-scale-in {
4051
+ from {
4052
+ opacity: 0;
4053
+ transform: scale(0.92);
4054
+ }
4055
+ to {
4056
+ opacity: 1;
4057
+ transform: scale(1);
4058
+ }
4059
+ }
4060
+
4061
+ .mds-profile-card__photo-modal-image {
4062
+ max-width: 100%;
4063
+ max-height: 90vh;
4064
+ -o-object-fit: contain;
4065
+ object-fit: contain;
4066
+ border-radius: 20px;
4067
+ /* Liquid Glass frame */
4068
+ background: rgba(255, 255, 255, 0.03);
4069
+ border: 1px solid rgba(255, 255, 255, 0.1);
4070
+ box-shadow:
4071
+ 0 25px 80px rgba(0, 0, 0, 0.4),
4072
+ 0 10px 30px rgba(0, 0, 0, 0.2),
4073
+ inset 0 1px 0 rgba(255, 255, 255, 0.1);
4074
+ }
4075
+
4076
+ html[data-theme="light"] .mds-profile-card__photo-modal-image {
4077
+ background: rgba(255, 255, 255, 0.1);
4078
+ border-color: rgba(255, 255, 255, 0.8);
4079
+ box-shadow:
4080
+ 0 25px 80px rgba(0, 0, 0, 0.15),
4081
+ 0 10px 30px rgba(0, 0, 0, 0.08),
4082
+ inset 0 1px 0 rgba(255, 255, 255, 1);
4083
+ }