@7365admin1/layer-common 3.2.7 → 3.2.8-staging.201

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 (283) hide show
  1. package/assets/css/primitives.css +1113 -0
  2. package/assets/css/screens.css +1097 -0
  3. package/assets/css/shell.css +258 -0
  4. package/assets/css/tokens.css +236 -0
  5. package/components/AcceptDialog.vue +17 -18
  6. package/components/AccessCard/AvailableStats.vue +24 -16
  7. package/components/AccessCardAddForm.vue +42 -42
  8. package/components/AccessCardAssignToUnitForm.vue +13 -21
  9. package/components/AccessCardDeleteDialog.vue +41 -39
  10. package/components/AccessCardDetailsDialog.vue +125 -79
  11. package/components/AccessCardPreviewDialog.vue +58 -84
  12. package/components/AccessCardQrTagging.vue +60 -63
  13. package/components/AccessCardReplaceForm.vue +27 -23
  14. package/components/AccessManagement.vue +86 -85
  15. package/components/AddEqupmentForm.vue +18 -22
  16. package/components/AddPassKeyToVisitor.vue +95 -73
  17. package/components/AppButton.vue +62 -0
  18. package/components/AppCard.vue +20 -0
  19. package/components/AppDateField.vue +49 -0
  20. package/components/AppField.vue +76 -0
  21. package/components/AppKpiTile.vue +65 -0
  22. package/components/AppSegmented.vue +38 -0
  23. package/components/AppSelect.vue +247 -0
  24. package/components/AreaChecklistHistoryLogs.vue +51 -44
  25. package/components/AreaChecklistHistoryMain.vue +14 -7
  26. package/components/AreaFormDialog.vue +71 -59
  27. package/components/AreaMain.vue +73 -107
  28. package/components/AttachmentsViewer.vue +84 -22
  29. package/components/AttendanceCheckInOutDialog.vue +85 -88
  30. package/components/AttendanceDetailsDialog.vue +57 -63
  31. package/components/AttendanceMain.vue +4 -3
  32. package/components/AttendanceMapSearchDialog.vue +42 -44
  33. package/components/AttendanceSettingsDialog.vue +79 -63
  34. package/components/Avatar/Main.vue +54 -2
  35. package/components/BillingMain.vue +26 -30
  36. package/components/BtnUploadFile.vue +53 -11
  37. package/components/BuildingForm.vue +34 -27
  38. package/components/BuildingManagement/buildings.vue +39 -39
  39. package/components/BuildingManagement/units.vue +26 -42
  40. package/components/BuildingUnitFormAdd.vue +20 -23
  41. package/components/BuildingUnitFormEdit.vue +8 -4
  42. package/components/BulletinBoardForm.vue +19 -24
  43. package/components/BulletinBoardManagement.vue +49 -57
  44. package/components/BulletinBoardView.vue +9 -6
  45. package/components/BulletinExpirationChip.vue +13 -4
  46. package/components/Button/Close.vue +2 -2
  47. package/components/CameraForm.vue +21 -22
  48. package/components/CameraMain.vue +50 -49
  49. package/components/Card/DeleteConfirmation.vue +24 -22
  50. package/components/Card/MemberInfoSummary.vue +28 -3
  51. package/components/Card/Toggle.vue +15 -3
  52. package/components/CardToolbar.vue +37 -0
  53. package/components/Carousel.vue +56 -36
  54. package/components/Chat/Bubbles.vue +43 -14
  55. package/components/Chat/Information.vue +49 -32
  56. package/components/Chat/ListCard.vue +38 -9
  57. package/components/Chat/Message.vue +41 -15
  58. package/components/Chat/Navigation.vue +27 -15
  59. package/components/Chat/SkeletonLoader.vue +9 -2
  60. package/components/ChecklistItemRow.vue +25 -1
  61. package/components/CleaningScheduleMain.vue +44 -49
  62. package/components/ClientDetailForm.vue +81 -56
  63. package/components/ClientMain.vue +92 -82
  64. package/components/ConfirmDialog.vue +14 -8
  65. package/components/Container/Standard.vue +9 -7
  66. package/components/CreateSubsciptionPlan.vue +148 -89
  67. package/components/DashboardEmptyState.vue +48 -3
  68. package/components/DashboardMain.vue +924 -676
  69. package/components/DashboardPanel.vue +84 -21
  70. package/components/DeliveryCompany.vue +34 -20
  71. package/components/Dialog/DeleteConfirmation.vue +20 -21
  72. package/components/Dialog/ReplaceAutofillPrompt.vue +19 -26
  73. package/components/Dialog/ReusablePrompt.vue +30 -29
  74. package/components/Dialog/UpdateMoreAction.vue +62 -59
  75. package/components/DocumentForm.vue +14 -21
  76. package/components/DocumentManagement.vue +162 -108
  77. package/components/DocumentViewer.vue +29 -12
  78. package/components/DrawImage.vue +29 -21
  79. package/components/EntryPass/QrTemplatePreview.vue +27 -16
  80. package/components/EntryPassInformation.vue +40 -10
  81. package/components/EntryPassMain.vue +49 -27
  82. package/components/EquipmentItemMain.vue +84 -97
  83. package/components/EquipmentManagementMain.vue +81 -103
  84. package/components/Facility/BookingSetup.vue +43 -52
  85. package/components/Feedback/Form.vue +26 -12
  86. package/components/FeedbackMain.vue +35 -49
  87. package/components/FileInput.vue +75 -58
  88. package/components/FileInputWithList.vue +59 -12
  89. package/components/FormDialog.vue +60 -21
  90. package/components/HidAccessLogDashboard.vue +512 -490
  91. package/components/HidCameraCaptureDialog.vue +216 -0
  92. package/components/HidEnabledGate.vue +67 -9
  93. package/components/HidIntercomManagement.vue +1322 -653
  94. package/components/HidQrCodeConfiguration.vue +1030 -258
  95. package/components/HidReaderForm.vue +142 -59
  96. package/components/HidReaderManagement.vue +211 -323
  97. package/components/HidServiceSettingsPanel.vue +44 -13
  98. package/components/HidUserEnrollment.vue +1185 -412
  99. package/components/HygieneUpdateMoreAction.vue +44 -44
  100. package/components/IncidentReport/Authorities.vue +30 -18
  101. package/components/IncidentReport/IncidentInformation.vue +10 -10
  102. package/components/IncidentReport/IncidentInformationDownload.vue +3 -4
  103. package/components/IncidentReport/affectedEntities.vue +41 -20
  104. package/components/Input/Date.vue +3 -0
  105. package/components/Input/DatePicker.vue +1 -2
  106. package/components/Input/DateTimePicker.vue +1 -1
  107. package/components/Input/File.vue +55 -10
  108. package/components/Input/FileV2.vue +39 -6
  109. package/components/Input/InputPhoneNumberV2.vue +2 -1
  110. package/components/Input/ListGroupSelection.vue +56 -8
  111. package/components/Input/NRICNumber.vue +1 -0
  112. package/components/Input/NewDate.vue +1 -0
  113. package/components/Input/Number.vue +1 -0
  114. package/components/Input/Password.vue +1 -0
  115. package/components/Input/PhoneNumber.vue +21 -1
  116. package/components/Input/VehicleNumber.vue +1 -0
  117. package/components/InputLabel.vue +2 -2
  118. package/components/InvitationClientForm.vue +21 -19
  119. package/components/InvitationForm.vue +15 -21
  120. package/components/InvitationMain.vue +46 -61
  121. package/components/Layout/Header.vue +263 -36
  122. package/components/Layout/NavigationDrawer.vue +300 -30
  123. package/components/ListItem.vue +33 -3
  124. package/components/LocalPagination.vue +27 -3
  125. package/components/ManageChecklistMain.vue +136 -86
  126. package/components/MemberInformation.vue +32 -16
  127. package/components/MemberMain.vue +113 -93
  128. package/components/MyAttendanceMain.vue +3 -5
  129. package/components/NavigationItem.vue +83 -3
  130. package/components/Nfc/NFCPatrolReportMain.vue +47 -33
  131. package/components/Nfc/NFCPatrolRouteForm.vue +18 -20
  132. package/components/Nfc/NFCPatrolRouteMain.vue +116 -103
  133. package/components/Nfc/NFCPatrolSettings.vue +14 -4
  134. package/components/Nfc/NFCTagForm.vue +22 -8
  135. package/components/Nfc/NFCTagMain.vue +41 -43
  136. package/components/Nfc/PatrolReport/DailyReportTab.vue +8 -1
  137. package/components/Nfc/PatrolReport/MonthlyReportTab.vue +8 -1
  138. package/components/Nfc/PatrolReport/MonthlyReportTable.vue +5 -3
  139. package/components/Nfc/PatrolReport/PatrolActivityTable.vue +26 -6
  140. package/components/Nfc/PatrolReport/PatrolReportTab.vue +8 -0
  141. package/components/Nfc/PatrolReport/PatrolRouteSummary.vue +41 -9
  142. package/components/Nfc/PatrolReport/RemarksDialog.vue +39 -9
  143. package/components/Nfc/PatrolReport/ReportEmptyState.vue +29 -9
  144. package/components/Nfc/PatrolReport/ReportFilters.vue +19 -10
  145. package/components/Nfc/PatrolReport/ReportLocationHeader.vue +32 -6
  146. package/components/Nfc/PatrolReport/SummaryReportTable.vue +28 -6
  147. package/components/NotificationSettings.vue +373 -0
  148. package/components/NumberSettingField.vue +9 -2
  149. package/components/OnlineFormConfigurationForm.vue +725 -237
  150. package/components/OnlineFormFill.vue +213 -106
  151. package/components/OnlineFormRenderPreview.vue +25 -30
  152. package/components/OnlineFormsConfiguration.vue +113 -109
  153. package/components/OrgViewDialog.vue +34 -16
  154. package/components/OvernightParkingAvailability.vue +49 -26
  155. package/components/OvernightParkingManagement.vue +78 -18
  156. package/components/PageHeader.vue +43 -0
  157. package/components/PassInformation.vue +109 -53
  158. package/components/PasswordConfirmation.vue +44 -26
  159. package/components/PeopleForm.vue +41 -20
  160. package/components/PhotoUpload.vue +110 -48
  161. package/components/PlaceholderComponent.vue +35 -19
  162. package/components/PlanActionsMenu.vue +12 -2
  163. package/components/PlanStatusBadge.vue +7 -8
  164. package/components/PlateNumberDisplay.vue +9 -6
  165. package/components/QrTemplate/PrintDialog.vue +66 -43
  166. package/components/RolePermissionFormCreate.vue +104 -79
  167. package/components/RolePermissionFormPreviewUpdate.vue +111 -109
  168. package/components/RolePermissionMain.vue +183 -81
  169. package/components/ScanVisitorQRCode.vue +99 -35
  170. package/components/ScheduleAreaMain.vue +34 -59
  171. package/components/ScheduleTaskForm.vue +61 -42
  172. package/components/ScheduleTaskMain.vue +56 -69
  173. package/components/SearchVehicleNumberUser.vue +39 -37
  174. package/components/ServiceProviderFormCreate.vue +29 -20
  175. package/components/ServiceProviderInvitationPrompt.vue +155 -0
  176. package/components/ServiceProviderMain.vue +601 -432
  177. package/components/Signature.vue +40 -34
  178. package/components/SignaturePad.vue +5 -29
  179. package/components/SiteSettings.vue +41 -11
  180. package/components/SiteSettingsWorkOrder.vue +61 -30
  181. package/components/SlideCardGroup.vue +35 -11
  182. package/components/Snackbar.vue +36 -3
  183. package/components/SpecificAttr.vue +18 -8
  184. package/components/StatusChip.vue +156 -0
  185. package/components/StockCard.vue +17 -12
  186. package/components/SubscriptionPlanTable.vue +207 -140
  187. package/components/SwitchContext.vue +201 -9
  188. package/components/TableHygiene.vue +36 -46
  189. package/components/TableList.vue +10 -10
  190. package/components/TableListSecondary.vue +105 -54
  191. package/components/TableMain.vue +251 -78
  192. package/components/TableV3.vue +61 -70
  193. package/components/TiptapEditor.vue +33 -40
  194. package/components/TiptapEditorQr.vue +5 -2
  195. package/components/Tooltip/Info.vue +69 -24
  196. package/components/UnitMain.vue +40 -60
  197. package/components/UnitPersonCard.vue +42 -13
  198. package/components/VehicleAddSelection.vue +48 -32
  199. package/components/VehicleForm.vue +112 -129
  200. package/components/VehicleManagement.vue +26 -12
  201. package/components/VehicleUpdateMoreAction.vue +59 -46
  202. package/components/VisitorDataFromScannedQRCodeForm.vue +90 -65
  203. package/components/VisitorForm.vue +774 -210
  204. package/components/VisitorFormSelection.vue +40 -37
  205. package/components/VisitorManagement.vue +239 -82
  206. package/components/VisitorPassKeyQRScanner.vue +65 -18
  207. package/components/VisitorSearchResultSummary.vue +60 -16
  208. package/components/VisitorSocketPopUp.vue +22 -14
  209. package/components/VisitorsReportPreview.vue +44 -29
  210. package/components/WorkOrder/Create.vue +26 -17
  211. package/components/WorkOrder/ListView.vue +38 -7
  212. package/components/WorkOrder/Main.vue +62 -59
  213. package/composables/useFeedback.ts +3 -3
  214. package/composables/useHidAmico.ts +269 -0
  215. package/composables/useHidNavigation.ts +2 -9
  216. package/composables/useMember.ts +3 -3
  217. package/composables/useNFCPatrolDailyReport.ts +13 -0
  218. package/composables/useNFCPatrolMonthlyReport.ts +22 -56
  219. package/composables/useNFCPatrolReport.ts +13 -0
  220. package/composables/useNotificationPreference.ts +87 -0
  221. package/composables/useOnlineFormPages.ts +2 -0
  222. package/composables/useRole.ts +22 -0
  223. package/composables/useServiceProvider.ts +3 -3
  224. package/composables/useServiceProviderInvitation.ts +145 -0
  225. package/composables/useSipWebPhone.ts +336 -0
  226. package/composables/useSubscriptionPlan.ts +62 -0
  227. package/composables/useThemePreference.ts +63 -0
  228. package/composables/useVisitor.ts +6 -1
  229. package/composables/useWebUsb.ts +127 -37
  230. package/composables/useWorkOrder.ts +17 -3
  231. package/error.vue +30 -6
  232. package/nuxt.config.ts +36 -0
  233. package/package.json +25 -4
  234. package/pages/[org]/[site]/access-mgmt/administrator/index.vue +2 -2
  235. package/pages/[org]/[site]/access-mgmt/{identity-mapping → hid-cards}/index.vue +2 -2
  236. package/pages/[org]/[site]/access-mgmt/intercom/index.vue +1 -1
  237. package/pages/notification-settings.vue +19 -0
  238. package/pages/payment-method-linked.vue +34 -10
  239. package/pages/require-customer.vue +48 -10
  240. package/pages/require-organization-membership.vue +32 -8
  241. package/pages/unauthorized.vue +29 -4
  242. package/plugins/secure-member.client.ts +21 -56
  243. package/plugins/vuetify.ts +69 -2
  244. package/types/nfc-patrol-report.ts +3 -2
  245. package/types/site.d.ts +71 -0
  246. package/types/subscription.ts +18 -11
  247. package/utils/breadcrumb.test.ts +108 -0
  248. package/utils/breadcrumb.ts +82 -0
  249. package/utils/dashboard.test.ts +118 -0
  250. package/utils/dashboard.ts +53 -0
  251. package/utils/data.test.ts +95 -0
  252. package/utils/data.ts +40 -2
  253. package/utils/hid-discover.test.ts +102 -0
  254. package/utils/list-page.test.ts +60 -0
  255. package/utils/list-page.ts +38 -0
  256. package/utils/materialSymbols.ts +363 -0
  257. package/utils/nav-sections.test.ts +190 -0
  258. package/utils/nav-sections.ts +151 -0
  259. package/utils/nfc-patrol-report.test.ts +130 -0
  260. package/utils/nfc-patrol-report.ts +101 -0
  261. package/utils/role.test.ts +69 -0
  262. package/utils/role.ts +10 -0
  263. package/utils/route-name.test.ts +85 -0
  264. package/utils/route-name.ts +24 -0
  265. package/utils/status.test.ts +110 -0
  266. package/utils/status.ts +135 -0
  267. package/utils/table-card.test.ts +84 -0
  268. package/utils/theme-aa-ledger.ts +148 -0
  269. package/utils/theme.test.ts +485 -7
  270. package/utils/theme.ts +295 -110
  271. package/.changeset/README.md +0 -8
  272. package/.changeset/config.json +0 -11
  273. package/.editorconfig +0 -12
  274. package/.github/workflows/main.yml +0 -17
  275. package/.github/workflows/publish-staging.yml +0 -47
  276. package/.github/workflows/publish.yml +0 -39
  277. package/PUBLISHING.md +0 -269
  278. package/components/HidIdentityMapping.vue +0 -975
  279. package/components/ScheduleTaskAreaFormDialog.vue +0 -144
  280. package/components/ScheduleTaskAreaUpdateMoreAction.vue +0 -109
  281. package/components/ScheduleTastTicketMain.vue +0 -182
  282. package/components/TableWithButton.vue +0 -94
  283. package/test/visitor-socket.test.mjs +0 -36
@@ -85,7 +85,7 @@
85
85
  <svg class="chevron" viewBox="0 0 10 6" fill="none">
86
86
  <path
87
87
  d="M1 1l4 4 4-4"
88
- stroke="#6B7280"
88
+ stroke="currentColor"
89
89
  stroke-width="1.4"
90
90
  stroke-linecap="round"
91
91
  />
@@ -107,7 +107,7 @@
107
107
  <svg class="chevron" viewBox="0 0 10 6" fill="none">
108
108
  <path
109
109
  d="M1 1l4 4 4-4"
110
- stroke="#6B7280"
110
+ stroke="currentColor"
111
111
  stroke-width="1.4"
112
112
  stroke-linecap="round"
113
113
  />
@@ -132,7 +132,7 @@
132
132
  <svg class="chevron" viewBox="0 0 10 6" fill="none">
133
133
  <path
134
134
  d="M1 1l4 4 4-4"
135
- stroke="#6B7280"
135
+ stroke="currentColor"
136
136
  stroke-width="1.4"
137
137
  stroke-linecap="round"
138
138
  />
@@ -150,7 +150,7 @@
150
150
  <svg class="chevron" viewBox="0 0 10 6" fill="none">
151
151
  <path
152
152
  d="M1 1l4 4 4-4"
153
- stroke="#6B7280"
153
+ stroke="currentColor"
154
154
  stroke-width="1.4"
155
155
  stroke-linecap="round"
156
156
  />
@@ -175,7 +175,7 @@
175
175
  <svg class="chevron" viewBox="0 0 10 6" fill="none">
176
176
  <path
177
177
  d="M1 1l4 4 4-4"
178
- stroke="#6B7280"
178
+ stroke="currentColor"
179
179
  stroke-width="1.4"
180
180
  stroke-linecap="round"
181
181
  />
@@ -200,13 +200,13 @@
200
200
  width="14"
201
201
  height="12"
202
202
  rx="2"
203
- stroke="#9CA3AF"
203
+ stroke="currentColor"
204
204
  stroke-width="1.3"
205
205
  />
206
- <path d="M1 7h14" stroke="#9CA3AF" stroke-width="1.3" />
206
+ <path d="M1 7h14" stroke="currentColor" stroke-width="1.3" />
207
207
  <path
208
208
  d="M5 1v3M11 1v3"
209
- stroke="#9CA3AF"
209
+ stroke="currentColor"
210
210
  stroke-width="1.3"
211
211
  stroke-linecap="round"
212
212
  />
@@ -224,13 +224,13 @@
224
224
  width="14"
225
225
  height="12"
226
226
  rx="2"
227
- stroke="#9CA3AF"
227
+ stroke="currentColor"
228
228
  stroke-width="1.3"
229
229
  />
230
- <path d="M1 7h14" stroke="#9CA3AF" stroke-width="1.3" />
230
+ <path d="M1 7h14" stroke="currentColor" stroke-width="1.3" />
231
231
  <path
232
232
  d="M5 1v3M11 1v3"
233
- stroke="#9CA3AF"
233
+ stroke="currentColor"
234
234
  stroke-width="1.3"
235
235
  stroke-linecap="round"
236
236
  />
@@ -581,12 +581,12 @@ watch(
581
581
  }
582
582
 
583
583
  .form-wrap {
584
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
584
+ font-family: var(--font-sans);
585
585
  font-size: 14px;
586
- color: #111827;
587
- background: #fff;
588
- border: 1px solid #e5e7eb;
589
- border-radius: 10px;
586
+ color: var(--text);
587
+ background: var(--card);
588
+ border: 1px solid var(--border);
589
+ border-radius: var(--r-card);
590
590
  padding: 24px 28px 32px;
591
591
  }
592
592
 
@@ -596,17 +596,17 @@ watch(
596
596
  align-items: flex-start;
597
597
  justify-content: space-between;
598
598
  padding-bottom: 18px;
599
- border-bottom: 1px solid #e5e7eb;
599
+ border-bottom: 1px solid var(--border);
600
600
  margin-bottom: 22px;
601
601
  }
602
602
  .header h2 {
603
603
  font-size: 20px;
604
604
  font-weight: 700;
605
- color: #111827;
605
+ color: var(--text);
606
606
  }
607
607
  .header p {
608
608
  font-size: 13px;
609
- color: #2563eb;
609
+ color: var(--accent-text);
610
610
  margin-top: 2px;
611
611
  }
612
612
  .actions {
@@ -618,7 +618,7 @@ watch(
618
618
  .btn-cancel,
619
619
  .btn-submit {
620
620
  border: none;
621
- border-radius: 20px;
621
+ border-radius: var(--r-pill);
622
622
  padding: 9px 22px;
623
623
  font-size: 13px;
624
624
  font-weight: 600;
@@ -626,15 +626,18 @@ watch(
626
626
  transition: opacity 0.15s;
627
627
  }
628
628
  .btn-cancel {
629
- background: #e5e7eb;
630
- color: #374151;
629
+ background: var(--border);
630
+ color: var(--text2);
631
631
  }
632
632
  .btn-cancel:hover {
633
633
  opacity: 0.85;
634
634
  }
635
+ /* `.btn-submit` was an exact copy of `.btn-cancel` - same grey fill, same ink -
636
+ so the form's primary action was indistinguishable from the one that throws
637
+ the edit away. It takes the design's accent fill and its white-safe pair. */
635
638
  .btn-submit {
636
- background: #e5e7eb;
637
- color: #374151;
639
+ background: var(--accent-strong);
640
+ color: var(--on-accent-strong);
638
641
  }
639
642
  .btn-submit:hover {
640
643
  opacity: 0.85;
@@ -647,7 +650,7 @@ watch(
647
650
  .section h3 {
648
651
  font-size: 15px;
649
652
  font-weight: 700;
650
- color: #111827;
653
+ color: var(--text);
651
654
  margin-bottom: 14px;
652
655
  }
653
656
 
@@ -669,29 +672,29 @@ watch(
669
672
  }
670
673
  .field label {
671
674
  font-size: 12px;
672
- color: #6b7280;
675
+ color: var(--text2);
673
676
  }
674
677
 
675
678
  .field input[type='text'],
676
679
  .field input[type='email'] {
677
680
  height: 38px;
678
- border: 1px solid #e5e7eb;
679
- border-radius: 8px;
681
+ border: 1px solid var(--border);
682
+ border-radius: var(--r-inner);
680
683
  padding: 0 12px;
681
684
  font-size: 13px;
682
- color: #111827;
683
- background: #fff;
685
+ color: var(--text);
686
+ background: var(--card);
684
687
  outline: none;
685
688
  }
686
689
  .field input:focus {
687
- border-color: #9ca3af;
690
+ border-color: var(--muted);
688
691
  }
689
692
  .field input::placeholder {
690
- color: #9ca3af;
693
+ color: var(--muted);
691
694
  }
692
695
  .field input:disabled {
693
- background: #f9fafb;
694
- color: #6b7280;
696
+ background: var(--bg);
697
+ color: var(--text2);
695
698
  }
696
699
 
697
700
  /* ===== SELECT ===== */
@@ -701,18 +704,18 @@ watch(
701
704
  .select-wrap select {
702
705
  width: 100%;
703
706
  height: 38px;
704
- border: 1px solid #e5e7eb;
705
- border-radius: 8px;
707
+ border: 1px solid var(--border);
708
+ border-radius: var(--r-inner);
706
709
  padding: 0 30px 0 12px;
707
710
  font-size: 13px;
708
- color: #111827;
709
- background: #fff;
711
+ color: var(--text);
712
+ background: var(--card);
710
713
  appearance: none;
711
714
  cursor: pointer;
712
715
  outline: none;
713
716
  }
714
717
  .select-wrap select:focus {
715
- border-color: #9ca3af;
718
+ border-color: var(--muted);
716
719
  }
717
720
  .select-wrap .chevron {
718
721
  position: absolute;
@@ -733,12 +736,12 @@ watch(
733
736
  .date-input input {
734
737
  width: 100%;
735
738
  height: 38px;
736
- border: 1px solid #e5e7eb;
737
- border-radius: 8px;
739
+ border: 1px solid var(--border);
740
+ border-radius: var(--r-inner);
738
741
  padding: 0 34px 0 12px;
739
742
  font-size: 13px;
740
- color: #6b7280;
741
- background: #f9fafb;
743
+ color: var(--text2);
744
+ background: var(--bg);
742
745
  outline: none;
743
746
  }
744
747
  .date-input svg {
@@ -750,7 +753,7 @@ watch(
750
753
  /* ===== HINT ===== */
751
754
  .hint {
752
755
  font-size: 11px;
753
- color: #9ca3af;
756
+ color: var(--text2);
754
757
  line-height: 1.4;
755
758
  }
756
759
  .hint-below {
@@ -766,13 +769,13 @@ watch(
766
769
  }
767
770
  .app-list li {
768
771
  font-size: 13px;
769
- color: #374151;
772
+ color: var(--text2);
770
773
  }
771
774
 
772
775
  /* ===== SITE TABLE ===== */
773
776
  .site-table {
774
- border: 1px solid #e5e7eb;
775
- border-radius: 8px;
777
+ border: 1px solid var(--border);
778
+ border-radius: var(--r-inner);
776
779
  overflow: hidden;
777
780
  }
778
781
  .site-table table {
@@ -784,12 +787,12 @@ watch(
784
787
  padding: 10px 16px;
785
788
  text-align: left;
786
789
  font-weight: 600;
787
- color: #374151;
788
- background: #f9fafb;
789
- border-bottom: 1px solid #e5e7eb;
790
+ color: var(--text2);
791
+ background: var(--bg);
792
+ border-bottom: 1px solid var(--border);
790
793
  }
791
794
  .site-table tbody tr {
792
- border-bottom: 1px solid #f3f4f6;
795
+ border-bottom: 1px solid var(--border);
793
796
  }
794
797
  .site-table tbody tr:last-child {
795
798
  border-bottom: none;
@@ -799,14 +802,14 @@ watch(
799
802
  }
800
803
  .site-table .td-name {
801
804
  font-weight: 500;
802
- color: #111827;
805
+ color: var(--text);
803
806
  }
804
807
  .site-table .td-muted {
805
- color: #6b7280;
808
+ color: var(--text2);
806
809
  }
807
810
  .site-table .empty {
808
811
  text-align: center;
809
- color: #9ca3af;
812
+ color: var(--text2);
810
813
  padding: 24px 0 !important;
811
814
  }
812
815
  .phone-input {
@@ -816,7 +819,7 @@ watch(
816
819
 
817
820
  .phone-input .prefix {
818
821
  width: 80px;
819
- background: #f3f4f6;
822
+ background: var(--bg);
820
823
  }
821
824
 
822
825
  .phone-input .number {
@@ -826,6 +829,28 @@ watch(
826
829
  .error {
827
830
  margin-top: 4px;
828
831
  font-size: 12px;
829
- color: #ef4444;
832
+ color: var(--err);
833
+ }
834
+
835
+ /*
836
+ * MEASURED at 360: the form overflowed the viewport by 147px in both themes.
837
+ * Its two-column grid, its 28px side padding and its header row are all fixed,
838
+ * and the component carries no media query at all - so on a phone the right
839
+ * column, the Submit button and half the site table sat off screen. One
840
+ * breakpoint, matching the shell's own mobile padding.
841
+ */
842
+ @media (max-width: 600px) {
843
+ .form-wrap {
844
+ padding: 16px 14px 22px;
845
+ }
846
+
847
+ .row {
848
+ grid-template-columns: 1fr;
849
+ }
850
+
851
+ .header {
852
+ flex-direction: column;
853
+ gap: 12px;
854
+ }
830
855
  }
831
856
  </style>