es-application-template 0.0.8 → 0.0.15

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 (48) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +50 -9
  3. package/dist/api/index.d.ts +14 -0
  4. package/dist/appearance/core/contrast.d.ts +30 -0
  5. package/dist/appearance/core/defaults.d.ts +5 -0
  6. package/dist/appearance/core/grid.d.ts +7 -0
  7. package/dist/appearance/core/index.d.ts +14 -0
  8. package/dist/appearance/core/migrate.d.ts +2 -0
  9. package/dist/appearance/core/options.d.ts +125 -0
  10. package/dist/appearance/core/presets.d.ts +22 -0
  11. package/dist/appearance/core/ranges.d.ts +313 -0
  12. package/dist/appearance/core/runtime.d.ts +4 -0
  13. package/dist/appearance/core/theme-constants.d.ts +13 -0
  14. package/dist/appearance/core/theme-presets.d.ts +3 -0
  15. package/dist/appearance/core/theme-types.d.ts +37 -0
  16. package/dist/appearance/core/theme-utils.d.ts +8 -0
  17. package/dist/appearance/core/types.d.ts +231 -0
  18. package/dist/appearance/core/validate.d.ts +5 -0
  19. package/dist/appearance/runtime/AppearanceRuntime.d.ts +6 -0
  20. package/dist/appearance/runtime/bootstrap.d.ts +4 -0
  21. package/dist/components/sidebar/index.d.ts +1 -0
  22. package/dist/config/config-document.d.ts +3 -2
  23. package/dist/config/use-runtime-config.d.ts +2 -1
  24. package/dist/config/use-runtime-identity.d.ts +1 -0
  25. package/dist/domain/constants/index.d.ts +8 -0
  26. package/dist/index.js +5463 -1155
  27. package/dist/index.js.map +1 -1
  28. package/dist/index.mjs +5474 -1170
  29. package/dist/index.mjs.map +1 -1
  30. package/dist/management/appearance/appearance-mode-control.d.ts +8 -0
  31. package/dist/management/appearance/appearance-number-field.d.ts +15 -0
  32. package/dist/management/appearance/appearance-preview.d.ts +12 -0
  33. package/dist/management/appearance/appearance-primitives.d.ts +95 -0
  34. package/dist/management/appearance/appearance-theme-library.d.ts +22 -0
  35. package/dist/management/appearance/appearance-theme-modal.d.ts +27 -0
  36. package/dist/management/appearance/appearance-workspace.d.ts +16 -0
  37. package/dist/management/appearance/index.d.ts +3 -0
  38. package/dist/management/appearance/use-appearance-theme-library.d.ts +25 -0
  39. package/dist/management/setting-keys/config-tree/setting-key-convention.d.ts +56 -0
  40. package/dist/package/index.d.ts +6 -1
  41. package/dist/styles/index.css +4696 -233
  42. package/package.json +3 -3
  43. package/dist/index.cjs +0 -6743
  44. package/dist/index.cjs.map +0 -1
  45. package/dist/styles.css +0 -438
  46. package/dist/styles.css.map +0 -1
  47. package/dist/views/es-application-template/management/setting-keys/config-tree/ConfigTreeGridEditor.d.ts +0 -14
  48. package/dist/views/es-application-template/management/setting-keys/config-tree/TreeSelect.d.ts +0 -10
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  /* Package-owned styles only. Host ADMIN styles live outside es-application-template. */
2
3
  .becoxy-admin {
3
4
  min-width: 0;
@@ -137,301 +138,4763 @@
137
138
  display: none;
138
139
  }
139
140
  }
140
- .config-feature-tree-select .select__option {
141
- padding-left: 8px;
142
- padding-right: 8px;
141
+ /* Appearance dependency closure from the pilot host. Original selectors/declarations/order retained. */
142
+ .becoxy-settings-page {
143
+ --be-page-inline-padding: var(--be-content-padding);
144
+ --be-page-block-padding: var(--be-content-padding);
145
+ --be-settings-inline-padding: var(--be-page-inline-padding);
146
+ --be-settings-block-padding: var(--be-page-block-padding);
147
+ --be-settings-gap: var(--be-section-gap);
148
+ display: grid;
149
+ grid-template-rows: auto minmax(0, 1fr);
150
+ width: 100%;
151
+ min-width: 0;
152
+ height: 100%;
153
+ overflow: hidden;
154
+ background-color: var(--be-background);
155
+ container-name: be-settings;
156
+ container-type: inline-size;
143
157
  }
144
158
 
145
- .config-feature-tree-select__option {
146
- display: flex;
147
- align-items: center;
148
- min-width: 0;
159
+ .bx-color-field__picker.form-control-color {
160
+ width: 42px;
161
+ height: 38px;
162
+ padding: 3px;
163
+ background-color: var(--be-surface);
164
+ border: 1px solid var(--be-input-border);
165
+ border-radius: var(--be-input-radius);
166
+ box-shadow: none !important;
149
167
  }
150
168
 
151
- .config-feature-tree-select__toggle,
152
- .config-feature-tree-select__toggle-spacer {
153
- display: inline-flex;
154
- align-items: center;
155
- justify-content: center;
156
- flex: 0 0 22px;
157
- width: 22px;
158
- height: 22px;
159
- margin-right: 2px;
169
+ .bx-color-field__picker.form-control-color:focus {
170
+ border-color: var(--be-input-border);
171
+ box-shadow: none !important;
160
172
  }
161
173
 
162
- .config-feature-tree-select__toggle {
174
+ .bx-color-field__picker.form-control-color::-webkit-color-swatch-wrapper {
163
175
  padding: 0;
176
+ }
177
+
178
+ .bx-color-field__picker.form-control-color::-webkit-color-swatch {
164
179
  border: 0;
165
- border-radius: 4px;
166
- background: transparent;
167
- color: inherit;
168
- line-height: 1;
169
- cursor: pointer;
180
+ border-radius: calc(var(--be-input-radius) - 3px);
170
181
  }
171
- .config-feature-tree-select__toggle:hover, .config-feature-tree-select__toggle:focus-visible {
172
- background: rgba(var(--be-primary-rgb, 115, 103, 240), 0.12);
173
- outline: none;
182
+
183
+ .bx-color-field__picker.form-control-color::-moz-color-swatch {
184
+ border: 0;
185
+ border-radius: calc(var(--be-input-radius) - 3px);
174
186
  }
175
187
 
176
- .config-feature-tree-select__label {
188
+ .becoxy-settings-page__fixed {
189
+ position: relative;
190
+ z-index: 2;
191
+ width: 100%;
177
192
  min-width: 0;
178
- overflow: hidden;
179
- text-overflow: ellipsis;
180
- white-space: nowrap;
181
- }
182
- .customizer.config-tree-rules-drawer {
183
- width: min(1000px, 100vw);
184
- max-width: 100vw;
185
- color: #000 !important;
186
- background: #fff !important;
187
- }
188
- .customizer.config-tree-rules-drawer .config-key-sample-layout,
189
- .customizer.config-tree-rules-drawer .config-key-sample-content,
190
- .customizer.config-tree-rules-drawer .config-key-sample-toolbar,
191
- .customizer.config-tree-rules-drawer .table,
192
- .customizer.config-tree-rules-drawer .table thead th,
193
- .customizer.config-tree-rules-drawer .table tbody td {
194
- color: #000 !important;
195
- background: #fff !important;
193
+ background-color: var(--be-surface);
194
+ border-bottom: 1px solid var(--be-border);
196
195
  }
197
- .customizer.config-tree-rules-drawer .modal-title,
198
- .customizer.config-tree-rules-drawer h6,
199
- .customizer.config-tree-rules-drawer th,
200
- .customizer.config-tree-rules-drawer td,
201
- .customizer.config-tree-rules-drawer strong,
202
- .customizer.config-tree-rules-drawer .config-key-sample-text,
203
- .customizer.config-tree-rules-drawer .config-key-sample-empty,
204
- .customizer.config-tree-rules-drawer .form-control {
205
- color: #000 !important;
196
+
197
+ .becoxy-settings-page__header {
198
+ gap: var(--be-gutter);
199
+ min-height: 58px;
200
+ padding: var(--be-settings-block-padding) var(--be-settings-inline-padding);
201
+ color: var(--be-text-primary);
202
+ background-color: var(--be-surface);
206
203
  }
207
- .customizer.config-tree-rules-drawer .config-key-sample-text {
208
- padding: 0;
209
- background: transparent !important;
210
- font-family: monospace;
211
- font-size: 12px;
212
- overflow-wrap: anywhere;
204
+
205
+ .becoxy-settings-page__actions {
206
+ gap: var(--be-card-gap);
213
207
  }
214
- .customizer.config-tree-rules-drawer .config-key-sample-copy-row {
208
+
209
+ .becoxy-settings-page__tabs {
215
210
  display: flex;
216
- align-items: center;
217
- justify-content: space-between;
218
- gap: 8px;
211
+ flex-wrap: nowrap;
212
+ width: 100%;
213
+ min-width: 0;
214
+ margin: 0;
215
+ overflow-x: auto;
216
+ overflow-y: hidden;
217
+ background-color: var(--be-surface);
218
+ scrollbar-width: thin;
219
+ scrollbar-color: var(--be-scrollbar-thumb) transparent;
220
+ overscroll-behavior-x: contain;
221
+ -webkit-overflow-scrolling: touch;
219
222
  }
220
- .customizer.config-tree-rules-drawer .config-key-sample-copy-row + .config-key-sample-copy-row {
221
- margin-top: 2px;
223
+
224
+ .becoxy-settings-page__tabs::-webkit-scrollbar {
225
+ height: 4px;
222
226
  }
223
- .customizer.config-tree-rules-drawer .config-key-sample-copy-button {
224
- display: inline-flex;
225
- flex: 0 0 28px;
226
- width: 28px;
227
- height: 28px;
228
- align-items: center;
229
- justify-content: center;
230
- padding: 0;
231
- color: #000;
227
+
228
+ .becoxy-settings-page__tabs::-webkit-scrollbar-track {
232
229
  background: transparent;
233
- border: 0;
234
- border-radius: 4px;
235
- cursor: pointer;
236
230
  }
237
- .customizer.config-tree-rules-drawer .config-key-sample-copy-button:hover {
238
- background: #f2f2f2;
231
+
232
+ .becoxy-settings-page__tabs::-webkit-scrollbar-thumb {
233
+ border-radius: 999px;
234
+ background: var(--be-scrollbar-thumb);
239
235
  }
240
- .customizer.config-tree-rules-drawer .config-key-sample-copy-button:focus-visible {
241
- outline: 2px solid #000;
242
- outline-offset: 1px;
236
+
237
+ .becoxy-settings-page__tabs .nav-item,
238
+ .becoxy-settings-page__tab-item {
239
+ flex: 0 0 auto !important;
240
+ width: auto;
241
+ min-width: max-content;
243
242
  }
244
- .customizer.config-tree-rules-drawer .form-control::placeholder {
245
- color: #000;
246
- opacity: 1;
243
+
244
+ .becoxy-settings-page__tabs .nav-link,
245
+ .becoxy-settings-page__tab-link {
246
+ width: auto;
247
+ min-height: var(--be-tab-height);
248
+ min-width: max-content;
249
+ padding-inline: 13px;
250
+ overflow: visible;
251
+ text-overflow: clip;
252
+ white-space: nowrap;
247
253
  }
248
- .customizer.config-tree-rules-drawer .select__single-value,
249
- .customizer.config-tree-rules-drawer .select__placeholder,
250
- .customizer.config-tree-rules-drawer .select__input-container,
251
- .customizer.config-tree-rules-drawer .select__option {
252
- color: #000 !important;
254
+
255
+ .becoxy-settings-page__scroll {
256
+ width: 100%;
257
+ min-width: 0;
258
+ min-height: 0;
259
+ background-color: var(--be-background);
253
260
  }
254
- @charset "UTF-8";
255
- .bx-shortcut-management {
261
+
262
+ .becoxy-settings-page__fit {
256
263
  display: flex;
257
264
  flex: 1 1 auto;
258
265
  flex-direction: column;
259
266
  width: 100%;
260
- height: 100%;
261
267
  min-width: 0;
262
268
  min-height: 0;
263
269
  overflow: hidden;
264
- /*
265
- * TEMP COMPACT DENSITY — chỉ màn Quản lý phím tắt.
266
- * Tạm hardcode theo yêu cầu review hiện tại.
267
- * Không ảnh hưởng Grid global / es-grid-template.
268
- */
269
- }
270
- .bx-shortcut-management .ui-rc-grid-thead .ui-rc-grid-row {
271
- height: 30px !important;
272
- min-height: 30px !important;
270
+ background-color: var(--be-background);
273
271
  }
274
- .bx-shortcut-management .ui-rc-grid-thead .ui-rc-grid-cell {
275
- height: 30px !important;
276
- min-height: 30px !important;
277
- padding: 0 8px !important;
272
+
273
+ .becoxy-settings-page__scroll-view {
274
+ overflow-x: hidden !important;
275
+ overflow-y: scroll !important;
276
+ overscroll-behavior: contain;
278
277
  }
279
- .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row.ui-rc-grid-row-parent {
280
- height: 30px !important;
281
- min-height: 30px !important;
278
+
279
+ .becoxy-settings-page__content {
280
+ width: 100%;
281
+ min-width: 0;
282
+ min-height: 100%;
283
+ padding: var(--be-settings-block-padding) var(--be-settings-inline-padding);
284
+ background-color: var(--be-background);
282
285
  }
283
- .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row.ui-rc-grid-row-parent .ui-rc-grid-cell {
284
- height: 30px !important;
285
- min-height: 30px !important;
286
- padding: 0 8px !important;
286
+
287
+ .becoxy-settings-page__content--fit {
288
+ display: flex;
289
+ flex-direction: column;
290
+ gap: var(--be-settings-gap);
291
+ height: 100%;
292
+ min-height: 0;
293
+ padding-bottom: var(--be-settings-block-padding);
294
+ overflow: hidden;
287
295
  }
288
- .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row:not(.ui-rc-grid-row-parent) {
289
- height: 32px !important;
290
- min-height: 32px !important;
291
- max-height: 32px !important;
296
+
297
+ @media (max-width: 679.98px) {
298
+ .becoxy-settings-page__header {
299
+ align-items: flex-start !important;
300
+ min-height: auto;
301
+ }
302
+ .becoxy-settings-page__tabs {
303
+ display: flex;
304
+ overflow-x: auto;
305
+ overflow-y: hidden;
306
+ scroll-snap-type: x proximity;
307
+ }
308
+ .becoxy-settings-page__tabs .nav-item,
309
+ .becoxy-settings-page__tab-item {
310
+ flex: 0 0 auto !important;
311
+ min-width: max-content;
312
+ scroll-snap-align: start;
313
+ }
314
+ .becoxy-settings-page__tabs .nav-link,
315
+ .becoxy-settings-page__tab-link {
316
+ padding-inline: 12px;
317
+ }
292
318
  }
293
- .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row:not(.ui-rc-grid-row-parent) .ui-rc-grid-cell {
294
- height: 32px !important;
295
- min-height: 0 !important;
296
- max-height: 32px !important;
297
- padding: 0 8px !important;
298
- overflow: hidden;
299
- line-height: 16px;
319
+ .becoxy-admin-standard {
320
+ color: var(--be-text-primary);
300
321
  }
301
- .bx-shortcut-management .bx-shortcut-feature {
302
- min-width: 0;
303
- overflow: hidden;
304
- text-overflow: ellipsis;
305
- white-space: nowrap;
306
- line-height: 16px;
322
+
323
+ .becoxy-admin-standard .card-header {
324
+ min-height: 44px;
325
+ padding: var(--be-card-gap) var(--be-card-padding);
326
+ border-bottom: 1px solid var(--be-border);
307
327
  }
308
- .bx-shortcut-management .bx-shortcut-group-title {
328
+
329
+ .becoxy-admin-standard .card-header .card-title {
330
+ color: var(--be-heading-text);
331
+ font-size: 14px;
309
332
  font-weight: 600;
310
- line-height: 16px;
311
- color: var(--be-text-primary, inherit);
312
333
  }
313
- .bx-shortcut-management .bx-shortcut-capture-wrap {
314
- display: inline-flex;
315
- align-items: center;
316
- gap: 2px;
317
- max-width: 100%;
318
- min-width: 0;
319
- height: 22px;
320
- line-height: 1;
334
+
335
+ .becoxy-admin-standard .card-body {
336
+ padding: var(--be-card-padding);
321
337
  }
322
- .bx-shortcut-management .bx-shortcut-capture {
323
- display: inline-flex;
324
- align-items: center;
325
- min-width: 124px;
326
- height: 22px;
327
- min-height: 22px;
328
- padding: 0 6px;
329
- border: 1px solid var(--be-border-color, #d8d8d8);
330
- border-radius: 4px;
331
- background: var(--be-surface-color, #fff);
332
- color: var(--be-text-color, #212529);
333
- line-height: 1;
334
- text-align: left;
338
+
339
+ .becoxy-admin-standard .becoxy-settings-page__header,
340
+ .becoxy-admin-standard.becoxy-admin-list-page .becoxy-admin-list-page__header {
341
+ min-height: 44px;
335
342
  }
336
- .bx-shortcut-management .bx-shortcut-capture:hover, .bx-shortcut-management .bx-shortcut-capture.is-capturing {
337
- border-color: var(--be-primary, #7367f0);
338
- color: var(--be-primary, #7367f0);
343
+
344
+ .becoxy-admin-standard .becoxy-settings-page__tabs .nav-link {
345
+ min-height: var(--be-tab-height);
346
+ padding-top: 8px;
347
+ padding-bottom: 8px;
348
+ font-size: 13px;
349
+ font-weight: 500;
339
350
  }
340
- .bx-shortcut-management .bx-shortcut-capture.is-capturing {
341
- box-shadow: 0 0 0 2px rgba(115, 103, 240, 0.12);
351
+
352
+ .becoxy-admin-standard .becoxy-settings-page__content,
353
+ .becoxy-admin-standard.becoxy-admin-list-page {
354
+ background: var(--be-background);
342
355
  }
343
- .bx-shortcut-management .bx-shortcut-capture:disabled {
344
- cursor: not-allowed;
345
- opacity: 0.55;
356
+
357
+ .becoxy-admin-standard .becoxy-settings-page__content--fit,
358
+ .becoxy-admin-standard .becoxy-admin-list-page__content {
359
+ min-height: 0;
360
+ overflow: hidden;
346
361
  }
347
- .bx-shortcut-management .bx-shortcut-clear {
348
- display: inline-flex;
349
- align-items: center;
350
- justify-content: center;
351
- width: 18px;
352
- height: 18px;
353
- padding: 0;
354
- border: 0;
355
- border-radius: 4px;
356
- background: transparent;
357
- color: var(--be-text-color, #212529);
358
- line-height: 1;
359
- opacity: 1;
362
+
363
+ /* Runtime Theme
364
+ *
365
+ * 1. Tokens / base
366
+ * 2. Typography and colors
367
+ * 3. Controls
368
+ * 4. Navigation compatibility
369
+ * 5. Surface / card / modal
370
+ * 6. Light / dark states
371
+ * 7. Third-party compatibility overrides
372
+ */
373
+ :root {
374
+ --be-primary: #eb4619;
375
+ --be-primary-rgb: 235, 70, 25;
376
+ --be-primary-hover: #cf3e16;
377
+ --be-primary-active: #bc3814;
378
+ --be-primary-soft: #fdf9f7;
379
+ --be-primary-contrast: #ffffff;
380
+ --be-primary-hover-contrast: #ffffff;
381
+ --be-primary-active-contrast: #ffffff;
382
+ --be-tab-active-color: #eb4619;
383
+ --be-brand-accent: #eb4619;
384
+ --be-brand-accent-rgb: 235, 70, 25;
385
+ --be-secondary: #10b981;
386
+ --be-secondary-rgb: 16, 185, 129;
387
+ --be-secondary-hover: #0ea072;
388
+ --be-secondary-active: #0d9467;
389
+ --be-secondary-contrast: #ffffff;
390
+ --be-secondary-hover-contrast: #ffffff;
391
+ --be-secondary-active-contrast: #ffffff;
392
+ --be-success: #22c55e;
393
+ --be-success-rgb: 34, 197, 94;
394
+ --be-success-hover: #1ead53;
395
+ --be-success-active: #1b9e4b;
396
+ --be-success-contrast: #ffffff;
397
+ --be-warning: #f59e0b;
398
+ --be-warning-rgb: 245, 158, 11;
399
+ --be-warning-hover: #d88b0a;
400
+ --be-warning-active: #c47e09;
401
+ --be-warning-contrast: #000000;
402
+ --be-danger: #ef4444;
403
+ --be-danger-rgb: 239, 68, 68;
404
+ --be-danger-hover: #d23c3c;
405
+ --be-danger-active: #bf3636;
406
+ --be-danger-contrast: #ffffff;
407
+ --be-danger-hover-contrast: #ffffff;
408
+ --be-danger-active-contrast: #ffffff;
409
+ --be-info: #06b6d4;
410
+ --be-info-rgb: 6, 182, 212;
411
+ --be-info-hover: #05a0ba;
412
+ --be-info-active: #0591aa;
413
+ --be-info-contrast: #000000;
414
+ --be-background: #ffffff;
415
+ --be-surface: #ffffff;
416
+ --be-surface-contrast: #111827;
417
+ --be-surface-secondary: #ffffff;
418
+ --be-text-primary: #000000;
419
+ --be-heading-text: #000000;
420
+ --be-text-secondary: #475569;
421
+ --be-text-muted: #64748b;
422
+ --be-placeholder: #94a3b8;
423
+ --be-border: #e2e8f0;
424
+ --be-layout-divider: #dfe3e8;
425
+ --be-input-border: #cbd5e1;
426
+ --be-hover-background: #f8fafc;
427
+ --be-active-background: #fff1ec;
428
+ --be-disabled-background: #f1f5f9;
429
+ --be-navbar-background: #ffffff;
430
+ --be-navbar-text: #000000;
431
+ --be-sidebar-background: #ffffff;
432
+ --be-sidebar-text: #000000;
433
+ --be-sidebar-muted-text: #64748b;
434
+ --be-sidebar-hover-background: #fef2ef;
435
+ --be-sidebar-hover-text: #111827;
436
+ --be-sidebar-active-background: #fde9e3;
437
+ --be-sidebar-active-text: #a93212;
438
+ --be-sidebar-accent-text: #a93212;
439
+ --be-sidebar-active-indicator: #eb4619;
440
+ --be-sidebar-brand-background: #ffffff;
441
+ --be-sidebar-brand-text: #000000;
442
+ --be-sidebar-brand-border: #e2e8f0;
443
+ --be-sidebar-brand-toggle: #eb4619;
444
+ --be-sidebar-group-text: #000000;
445
+ --be-link-color: #eb4619;
446
+ --be-scrollbar-thumb: #94a3b8;
447
+ --be-scrollbar-track: #f1f5f9;
448
+ --be-font-family: 'Segoe UI', Arial, sans-serif;
449
+ --be-font-size-base: 14px;
450
+ --be-line-height-base: 1.45;
451
+ --be-body-font-weight: 400;
452
+ --be-page-title-size: 20px;
453
+ --be-page-title-weight: 600;
454
+ --be-section-title-size: 16px;
455
+ --be-section-title-weight: 600;
456
+ --be-card-title-size: 14px;
457
+ --be-card-title-weight: 600;
458
+ --be-menu-font-size: 13px;
459
+ --be-menu-font-weight: 400;
460
+ --be-form-label-size: 12px;
461
+ --be-form-label-weight: 500;
462
+ --be-small-font-size: 12px;
463
+ --be-letter-spacing: 0px;
464
+ --be-control-height: 28px;
465
+ --be-button-height: 30px;
466
+ --be-button-radius: 0px;
467
+ --be-input-radius: 5px;
468
+ --be-card-radius: 6px;
469
+ --be-modal-radius: 5px;
470
+ --be-dropdown-radius: 5px;
471
+ --be-button-padding-x: 14px;
472
+ --be-card-padding: 21px;
473
+ --be-card-gap: 12px;
474
+ --be-card-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
475
+ --be-dropdown-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
476
+ --be-focus-ring-size: 3px;
477
+ --be-transition-duration: 180ms;
478
+ --be-tab-height: 30px;
479
+ --be-tab-radius: 0px;
480
+ --be-checkbox-size: 18px;
481
+ --be-switch-height: 24px;
482
+ --be-grid-font-size: 13px;
483
+ --be-grid-row-height: 40px;
484
+ --be-grid-header-height: 38px;
485
+ --be-grid-cell-padding-x: 8px;
486
+ --be-grid-cell-padding-y: 5px;
487
+ --be-grid-header-padding-x: 9px;
488
+ --be-grid-header-padding-y: 6px;
489
+ --be-grid-header-font-weight: 600;
490
+ --be-grid-pager-height: 46px;
491
+ --be-grid-border-width: 1px;
492
+ --be-grid-border-horizontal-width: 1px;
493
+ --be-grid-border-vertical-width: 1px;
494
+ --be-grid-radius: 4px;
495
+ --be-grid-shadow: none;
496
+ --be-grid-background: #ffffff;
497
+ --be-grid-text: #000000;
498
+ --be-grid-header-background: #fafbfc;
499
+ --be-grid-header-text: #000000;
500
+ --be-grid-striped-background: #f7f7f7;
501
+ --be-grid-hover-background: #f2f5f8;
502
+ --be-grid-selected-background: #fff1ec;
503
+ --be-grid-selected-text: #000000;
504
+ --be-grid-active-cell-background: #ffe4d9;
505
+ --be-grid-border: #e0e0e0;
506
+ --be-grid-group-background: #f8fafc;
507
+ --be-grid-group-text: #475569;
508
+ --be-grid-footer-background: #fafbfc;
509
+ --be-grid-footer-text: #475569;
510
+ --be-scrollbar-width: 6px;
511
+ --be-sidebar-width: 240px;
512
+ --be-sidebar-collapsed-width: 72px;
513
+ --be-navbar-height: 60px;
514
+ --be-footer-height: 40px;
515
+ --be-content-padding: 8px;
516
+ --be-gutter: 12px;
517
+ --be-section-gap: 12px;
518
+ --be-menu-item-height: 38px;
519
+ --be-menu-indent: 16px;
520
+ --be-menu-group-spacing: 12px;
521
+ --be-menu-icon-size: 16px;
522
+ --be-menu-active-radius: 6px;
523
+ --bs-primary: var(--be-primary);
524
+ --bs-primary-rgb: var(--be-primary-rgb);
525
+ --bs-secondary: var(--be-secondary);
526
+ --bs-success: var(--be-success);
527
+ --bs-warning: var(--be-warning);
528
+ --bs-danger: var(--be-danger);
529
+ --bs-info: var(--be-info);
360
530
  }
361
- .bx-shortcut-management .bx-shortcut-clear:hover {
362
- background: rgba(0, 0, 0, 0.05);
363
- color: var(--be-danger, #ea5455);
531
+
532
+ /* Shared Appearance.grid adapters. Explicit component props and inline custom
533
+ * properties still win over these scoped defaults. */
534
+ .be-appearance-grid {
535
+ color: var(--be-grid-text);
536
+ font-family: var(--be-font-family);
537
+ font-size: var(--be-grid-font-size);
538
+ background: var(--be-grid-background);
539
+ border: var(--be-grid-border-width) solid var(--be-grid-border);
540
+ border-radius: var(--be-grid-radius);
541
+ box-shadow: var(--be-grid-shadow);
542
+ overflow: hidden;
364
543
  }
365
- .bx-shortcut-management .bx-shortcut-clear:disabled {
366
- cursor: not-allowed;
367
- opacity: 0.45;
544
+
545
+ .be-appearance-grid .e-grid,
546
+ .be-appearance-grid .e-treegrid {
547
+ color: var(--be-grid-text);
548
+ font-family: var(--be-font-family) !important;
549
+ font-size: var(--be-grid-font-size) !important;
550
+ background: var(--be-grid-background);
551
+ border: 0 !important;
368
552
  }
369
- .bx-shortcut-management .bx-shortcut-key {
370
- display: inline-flex;
371
- align-items: center;
372
- height: 20px;
373
- min-height: 20px;
374
- padding: 0 6px;
375
- border: 1px solid var(--be-border-color, #d8d8d8);
376
- border-radius: 4px;
377
- color: var(--be-text-color, #212529);
378
- line-height: 1;
379
- white-space: nowrap;
553
+
554
+ .be-appearance-grid .e-gridheader {
555
+ min-height: var(--be-grid-header-height);
556
+ color: var(--be-grid-header-text);
557
+ background: var(--be-grid-header-background) !important;
558
+ border-bottom: var(--be-grid-border-horizontal-width) solid var(--be-grid-border) !important;
380
559
  }
381
- .bx-shortcut-management .bx-shortcut-key--locked,
382
- .bx-shortcut-management .bx-shortcut-state {
383
- color: var(--be-text-color, #212529);
384
- opacity: 1;
560
+
561
+ .be-appearance-grid .e-gridheader .e-headercell {
562
+ height: var(--be-grid-header-height) !important;
563
+ padding: var(--be-grid-header-padding-y) var(--be-grid-header-padding-x) !important;
564
+ color: var(--be-grid-header-text) !important;
565
+ font-weight: var(--be-grid-header-font-weight) !important;
566
+ background: var(--be-grid-header-background) !important;
567
+ border-color: var(--be-grid-border) !important;
385
568
  }
386
- .bx-shortcut-management .bx-shortcut-state {
387
- line-height: 16px;
388
- white-space: nowrap;
569
+
570
+ .be-appearance-grid.grid-header-height-auto .e-gridheader .e-headercell {
571
+ height: auto !important;
572
+ min-height: var(--be-grid-header-height);
389
573
  }
390
- .bx-shortcut-management .bx-shortcut-row-action {
391
- display: inline-flex;
392
- align-items: center;
393
- justify-content: center;
394
- width: 20px;
574
+
575
+ .be-appearance-grid .e-rowcell,
576
+ .be-appearance-grid .e-templatecell {
577
+ padding: var(--be-grid-cell-padding-y) var(--be-grid-cell-padding-x) !important;
578
+ color: var(--be-grid-text) !important;
579
+ font-size: var(--be-grid-font-size) !important;
580
+ background: var(--be-grid-background);
581
+ border-color: var(--be-grid-border) !important;
582
+ }
583
+
584
+ .be-appearance-grid.grid-table-striped .e-row.e-altrow .e-rowcell:not(.e-active):not(.e-selectionbackground):not(.e-cellselectionbackground) {
585
+ background: var(--be-grid-striped-background) !important;
586
+ }
587
+
588
+ .be-appearance-grid.grid-table-hover .e-row:hover .e-rowcell:not(.e-active):not(.e-selectionbackground):not(.e-cellselectionbackground) {
589
+ background: var(--be-grid-hover-background) !important;
590
+ }
591
+
592
+ .be-appearance-grid .e-rowcell.e-selectionbackground,
593
+ .be-appearance-grid .e-rowcell.e-active,
594
+ .be-appearance-grid td.e-active {
595
+ color: var(--be-grid-selected-text) !important;
596
+ background: var(--be-grid-selected-background) !important;
597
+ }
598
+
599
+ .be-appearance-grid .e-cellselectionbackground {
600
+ background: var(--be-grid-active-cell-background) !important;
601
+ }
602
+
603
+ .be-appearance-grid .e-groupcaption {
604
+ color: var(--be-grid-group-text) !important;
605
+ background: var(--be-grid-group-background) !important;
606
+ }
607
+
608
+ .be-appearance-grid .e-summarycell,
609
+ .be-appearance-grid .e-pager {
610
+ color: var(--be-grid-footer-text) !important;
611
+ background: var(--be-grid-footer-background) !important;
612
+ }
613
+
614
+ .be-appearance-grid .e-pager {
615
+ min-height: var(--be-grid-pager-height);
616
+ border-top: var(--be-grid-border-horizontal-width) solid var(--be-grid-border) !important;
617
+ }
618
+
619
+ /* es-grid-template's alternate ali/base-table surface consumes these variables. */
620
+ .ui-rc-grid-table-wrapper.ui-rc-grid-table-wrapper {
621
+ --row-height: var(--be-grid-row-height);
622
+ --color: var(--be-grid-text);
623
+ --bgcolor: var(--be-grid-background);
624
+ --hover-bgcolor: var(--be-grid-hover-background);
625
+ --highlight-bgcolor: var(--be-grid-selected-background);
626
+ --header-row-height: var(--be-grid-header-height);
627
+ --header-color: var(--be-grid-header-text);
628
+ --header-bgcolor: var(--be-grid-header-background);
629
+ --footer-bgcolor: var(--be-grid-footer-background);
630
+ --footer-color: var(--be-grid-footer-text);
631
+ --cell-padding: var(--be-grid-cell-padding-y) var(--be-grid-cell-padding-x);
632
+ --font-size: var(--be-grid-font-size);
633
+ --line-height: var(--be-line-height-base);
634
+ --border-color: var(--be-grid-border);
635
+ --cell-border-horizontal: var(--be-grid-border-horizontal-width) solid var(--be-grid-border);
636
+ --cell-border-vertical: var(--be-grid-border-vertical-width) solid var(--be-grid-border);
637
+ --header-cell-border-horizontal: var(--be-grid-border-horizontal-width) solid var(--be-grid-border);
638
+ --header-cell-border-vertical: var(--be-grid-border-vertical-width) solid var(--be-grid-border);
639
+ font-family: var(--be-font-family);
640
+ border-radius: var(--be-grid-radius);
641
+ box-shadow: var(--be-grid-shadow);
642
+ }
643
+
644
+ .ui-rc-grid-table-wrapper .ui-rc-grid-table-header-cell {
645
+ padding: var(--be-grid-header-padding-y) var(--be-grid-header-padding-x);
646
+ font-weight: var(--be-grid-header-font-weight);
647
+ }
648
+
649
+ /* GridComponent in es-grid-template 1.9.46 renders through table-component,
650
+ * which does not forward its declared cssVariables prop. Keep the fallback
651
+ * scoped to the package's stable ui-rc-grid classes. */
652
+ .ui-rc-grid.ui-rc-grid {
653
+ color: var(--be-grid-text) !important;
654
+ font-family: var(--be-font-family) !important;
655
+ font-size: var(--be-grid-font-size) !important;
656
+ background: var(--be-grid-background) !important;
657
+ border-radius: var(--be-grid-radius);
658
+ box-shadow: var(--be-grid-shadow);
659
+ overflow: hidden;
660
+ }
661
+
662
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-container {
663
+ border: var(--be-grid-border-width) solid var(--be-grid-border) !important;
664
+ border-right-width: var(--be-grid-border-width) !important;
665
+ }
666
+
667
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-container::after {
668
+ border-right-color: var(--be-grid-border) !important;
669
+ border-right-width: var(--be-grid-border-width) !important;
670
+ }
671
+
672
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-thead {
673
+ min-height: var(--be-grid-header-height);
674
+ color: var(--be-grid-header-text) !important;
675
+ font-weight: var(--be-grid-header-font-weight) !important;
676
+ background: var(--be-grid-header-background) !important;
677
+ }
678
+
679
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-thead .ui-rc-grid-row,
680
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-thead .ui-rc-grid-cell {
681
+ min-height: var(--be-grid-header-height) !important;
682
+ }
683
+
684
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-thead .ui-rc-grid-cell {
685
+ padding: var(--be-grid-header-padding-y) var(--be-grid-header-padding-x) !important;
686
+ color: var(--be-grid-header-text) !important;
687
+ font-weight: var(--be-grid-header-font-weight) !important;
688
+ background: var(--be-grid-header-background) !important;
689
+ border-right: var(--be-grid-border-vertical-width) solid var(--be-grid-border) !important;
690
+ border-bottom: var(--be-grid-border-horizontal-width) solid var(--be-grid-border) !important;
691
+ }
692
+
693
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row {
694
+ color: var(--be-grid-text) !important;
695
+ background: var(--be-grid-background) !important;
696
+ border-bottom: var(--be-grid-border-horizontal-width) solid var(--be-grid-border) !important;
697
+ }
698
+
699
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-cell {
700
+ padding: var(--be-grid-cell-padding-y) var(--be-grid-cell-padding-x) !important;
701
+ color: inherit;
702
+ background: inherit;
703
+ border-right: var(--be-grid-border-vertical-width) solid var(--be-grid-border) !important;
704
+ }
705
+
706
+ html[data-be-grid-striped=true] .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row-odd:not(.ui-rc-grid-row-selected) {
707
+ background: var(--be-grid-striped-background) !important;
708
+ }
709
+
710
+ html[data-be-grid-striped=false] .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row-odd:not(.ui-rc-grid-row-selected) {
711
+ background: var(--be-grid-background) !important;
712
+ }
713
+
714
+ html[data-be-grid-hover=true] .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row:hover:not(.ui-rc-grid-row-selected) {
715
+ background: var(--be-grid-hover-background) !important;
716
+ }
717
+
718
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row-selected,
719
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tbody .ui-rc-grid-row-selected .ui-rc-grid-cell {
720
+ color: var(--be-grid-selected-text) !important;
721
+ background: var(--be-grid-selected-background) !important;
722
+ }
723
+
724
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-cell-selected,
725
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-cell-index-selected {
726
+ background: var(--be-grid-active-cell-background) !important;
727
+ }
728
+
729
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-row-parent,
730
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-row-parent .ui-rc-grid-cell {
731
+ color: var(--be-grid-group-text) !important;
732
+ background: var(--be-grid-group-background) !important;
733
+ }
734
+
735
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tfoot,
736
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-footer-row,
737
+ .ui-rc-grid.ui-rc-grid .ui-rc-grid-tfoot .ui-rc-grid-cell {
738
+ color: var(--be-grid-footer-text) !important;
739
+ background: var(--be-grid-footer-background) !important;
740
+ border-color: var(--be-grid-border) !important;
741
+ }
742
+
743
+ /* be-table-template 2.9.91 publishes this token scope on every table root. */
744
+ .be-table.be-table-css-var {
745
+ --be-table-cell-padding-block: var(--be-grid-cell-padding-y);
746
+ --be-table-cell-padding-inline: var(--be-grid-cell-padding-x);
747
+ --be-table-cell-height: var(--be-grid-row-height);
748
+ --be-table-cell-header-height: var(--be-grid-header-height);
749
+ --be-table-cell-font-size: var(--be-grid-font-size);
750
+ --be-table-border-color: var(--be-grid-border);
751
+ --be-table-header-bg: var(--be-grid-header-background);
752
+ --be-table-header-color: var(--be-grid-header-text);
753
+ --be-table-row-hover-bg: var(--be-grid-hover-background);
754
+ --be-table-row-selected-bg: var(--be-grid-selected-background);
755
+ --be-table-cell-selected-bg: var(--be-grid-selected-background);
756
+ --be-table-cell-active-bg: var(--be-grid-active-cell-background);
757
+ --be-table-cell-hover-bg: var(--be-grid-hover-background);
758
+ --be-table-footer-bg: var(--be-grid-footer-background);
759
+ --be-table-footer-color: var(--be-grid-footer-text);
760
+ color: var(--be-grid-text);
761
+ font-family: var(--be-font-family);
762
+ }
763
+
764
+ .be-table-wrapper {
765
+ border-radius: var(--be-grid-radius);
766
+ box-shadow: var(--be-grid-shadow);
767
+ overflow: hidden;
768
+ }
769
+
770
+ /*
771
+ * Khi runtime thay một nhóm lớn CSS variables, tắt transition đúng một frame
772
+ * để tránh toàn bộ Navbar/Sidebar/Card animate đồng thời và tạo cảm giác nháy.
773
+ */
774
+ html.be-theme-applying *,
775
+ html.be-theme-applying *::before,
776
+ html.be-theme-applying *::after {
777
+ transition: none !important;
778
+ animation-duration: 0.01ms !important;
779
+ }
780
+
781
+ html,
782
+ body,
783
+ #root,
784
+ .wrapper {
785
+ font-family: var(--be-font-family);
786
+ }
787
+
788
+ html {
789
+ letter-spacing: var(--be-letter-spacing);
790
+ text-rendering: optimizeLegibility;
791
+ -webkit-font-smoothing: antialiased;
792
+ -moz-osx-font-smoothing: grayscale;
793
+ }
794
+
795
+ body {
796
+ color: var(--be-text-primary);
797
+ background-color: var(--be-background);
798
+ font-size: var(--be-font-size-base);
799
+ font-weight: var(--be-body-font-weight);
800
+ line-height: var(--be-line-height-base);
801
+ }
802
+
803
+ p {
804
+ line-height: var(--be-line-height-base);
805
+ }
806
+
807
+ h1,
808
+ h2,
809
+ h3,
810
+ h4,
811
+ h5,
812
+ h6,
813
+ .h1,
814
+ .h2,
815
+ .h3,
816
+ .h4,
817
+ .h5,
818
+ .h6 {
819
+ color: var(--be-heading-text);
820
+ font-family: inherit;
821
+ letter-spacing: 0;
822
+ }
823
+
824
+ h1,
825
+ .page-title,
826
+ .content-header-title {
827
+ font-size: var(--be-page-title-size);
828
+ font-weight: var(--be-page-title-weight);
829
+ }
830
+
831
+ h2,
832
+ .section-title {
833
+ font-size: var(--be-section-title-size);
834
+ font-weight: var(--be-section-title-weight);
835
+ }
836
+
837
+ .card-title,
838
+ .modal-title {
839
+ color: var(--be-heading-text);
840
+ font-size: var(--be-card-title-size);
841
+ font-weight: var(--be-card-title-weight);
842
+ }
843
+
844
+ small,
845
+ .small,
846
+ .text-small,
847
+ .breadcrumb {
848
+ font-size: var(--be-small-font-size);
849
+ }
850
+
851
+ .text-muted {
852
+ color: var(--be-text-muted) !important;
853
+ }
854
+
855
+ .text-secondary {
856
+ color: var(--be-text-secondary) !important;
857
+ }
858
+
859
+ .bg-light,
860
+ .table-light,
861
+ .table-light > th,
862
+ .table-light > td,
863
+ .accordion-button:not(.collapsed) {
864
+ background-color: var(--be-surface-secondary) !important;
865
+ }
866
+
867
+ a {
868
+ color: var(--be-link-color);
869
+ }
870
+
871
+ a:hover {
872
+ color: var(--be-primary-hover);
873
+ }
874
+
875
+ ::placeholder {
876
+ color: var(--be-placeholder) !important;
877
+ opacity: 1;
878
+ }
879
+
880
+ .btn {
881
+ display: inline-flex;
882
+ align-items: center;
883
+ justify-content: center;
884
+ box-sizing: border-box;
885
+ height: var(--be-button-height);
886
+ min-height: var(--be-button-height);
887
+ padding-top: 0;
888
+ padding-bottom: 0;
889
+ padding-inline: var(--be-button-padding-x);
890
+ border-radius: var(--be-button-radius);
891
+ font-family: inherit;
892
+ font-size: var(--be-font-size-base);
893
+ font-weight: 500;
894
+ line-height: 1;
895
+ transition-duration: var(--be-transition-duration);
896
+ }
897
+
898
+ .btn-sm {
899
+ height: calc(var(--be-button-height) - 4px);
900
+ min-height: calc(var(--be-button-height) - 4px);
901
+ }
902
+
903
+ .btn-lg {
904
+ height: calc(var(--be-button-height) + 4px);
905
+ min-height: calc(var(--be-button-height) + 4px);
906
+ }
907
+
908
+ .btn-primary,
909
+ .btn-primary:disabled,
910
+ .btn-primary.disabled {
911
+ color: var(--be-primary-contrast);
912
+ background-color: var(--be-primary);
913
+ border-color: var(--be-primary);
914
+ }
915
+
916
+ .btn-primary:hover,
917
+ .btn-primary:focus {
918
+ color: var(--be-primary-hover-contrast);
919
+ background-color: var(--be-primary-hover);
920
+ border-color: var(--be-primary-hover);
921
+ }
922
+
923
+ .btn-primary:active,
924
+ .btn-primary.active,
925
+ .show > .btn-primary.dropdown-toggle {
926
+ color: var(--be-primary-active-contrast);
927
+ background-color: var(--be-primary-active);
928
+ border-color: var(--be-primary-active);
929
+ }
930
+
931
+ .btn-outline-primary {
932
+ color: var(--be-primary);
933
+ border-color: var(--be-primary);
934
+ }
935
+
936
+ .btn-outline-primary:hover,
937
+ .btn-outline-primary:focus,
938
+ .btn-outline-primary:active,
939
+ .btn-outline-primary.active {
940
+ color: var(--be-primary-contrast);
941
+ background-color: var(--be-primary);
942
+ border-color: var(--be-primary);
943
+ }
944
+
945
+ .btn-outline-primary,
946
+ .btn-outline-secondary,
947
+ .btn-outline-primary:hover,
948
+ .btn-outline-secondary:hover,
949
+ .btn-outline-primary:focus,
950
+ .btn-outline-secondary:focus,
951
+ .btn-outline-primary:active,
952
+ .btn-outline-secondary:active,
953
+ .btn-outline-primary.active,
954
+ .btn-outline-secondary.active {
955
+ color: var(--be-text-primary) !important;
956
+ background-color: var(--be-surface) !important;
957
+ border-color: var(--be-border) !important;
958
+ }
959
+
960
+ .text-primary {
961
+ color: var(--be-primary) !important;
962
+ }
963
+
964
+ .bg-primary,
965
+ .badge-primary {
966
+ color: var(--be-primary-contrast) !important;
967
+ background-color: var(--be-primary) !important;
968
+ }
969
+
970
+ .bg-light-primary,
971
+ .badge-light-primary {
972
+ color: var(--be-primary) !important;
973
+ background-color: var(--be-primary-soft) !important;
974
+ }
975
+
976
+ .border-primary {
977
+ border-color: var(--be-primary) !important;
978
+ }
979
+
980
+ .text-secondary {
981
+ color: var(--be-secondary) !important;
982
+ }
983
+
984
+ .bg-secondary,
985
+ .badge-secondary {
986
+ color: var(--be-secondary-contrast) !important;
987
+ background-color: var(--be-secondary) !important;
988
+ }
989
+
990
+ .bg-light-secondary,
991
+ .badge-light-secondary {
992
+ color: var(--be-secondary) !important;
993
+ background-color: rgba(var(--be-secondary-rgb), 0.12) !important;
994
+ }
995
+
996
+ .border-secondary {
997
+ border-color: var(--be-secondary) !important;
998
+ }
999
+
1000
+ .btn-secondary {
1001
+ color: var(--be-secondary-contrast);
1002
+ background-color: var(--be-secondary);
1003
+ border-color: var(--be-secondary);
1004
+ }
1005
+
1006
+ .btn-secondary:hover,
1007
+ .btn-secondary:focus {
1008
+ color: var(--be-secondary-hover-contrast);
1009
+ background-color: var(--be-secondary-hover);
1010
+ border-color: var(--be-secondary-hover);
1011
+ }
1012
+
1013
+ .btn-secondary:active,
1014
+ .btn-secondary.active {
1015
+ color: var(--be-secondary-active-contrast);
1016
+ background-color: var(--be-secondary-active);
1017
+ border-color: var(--be-secondary-active);
1018
+ }
1019
+
1020
+ .btn-outline-secondary {
1021
+ color: var(--be-secondary);
1022
+ border-color: var(--be-secondary);
1023
+ }
1024
+
1025
+ .btn-outline-secondary:hover,
1026
+ .btn-outline-secondary:focus,
1027
+ .btn-outline-secondary:active,
1028
+ .btn-outline-secondary.active {
1029
+ color: var(--be-secondary-contrast);
1030
+ background-color: var(--be-secondary);
1031
+ border-color: var(--be-secondary);
1032
+ }
1033
+
1034
+ .alert-secondary {
1035
+ color: var(--be-secondary);
1036
+ background-color: rgba(var(--be-secondary-rgb), 0.12);
1037
+ border-color: rgba(var(--be-secondary-rgb), 0.25);
1038
+ }
1039
+
1040
+ .text-success {
1041
+ color: var(--be-success) !important;
1042
+ }
1043
+
1044
+ .bg-success,
1045
+ .badge-success {
1046
+ color: var(--be-success-contrast) !important;
1047
+ background-color: var(--be-success) !important;
1048
+ }
1049
+
1050
+ .bg-light-success,
1051
+ .badge-light-success {
1052
+ color: var(--be-success) !important;
1053
+ background-color: rgba(var(--be-success-rgb), 0.12) !important;
1054
+ }
1055
+
1056
+ .border-success {
1057
+ border-color: var(--be-success) !important;
1058
+ }
1059
+
1060
+ .btn-success {
1061
+ color: var(--be-success-contrast);
1062
+ background-color: var(--be-success);
1063
+ border-color: var(--be-success);
1064
+ }
1065
+
1066
+ .btn-success:hover,
1067
+ .btn-success:focus {
1068
+ color: var(--be-success-hover-contrast);
1069
+ background-color: var(--be-success-hover);
1070
+ border-color: var(--be-success-hover);
1071
+ }
1072
+
1073
+ .btn-success:active,
1074
+ .btn-success.active {
1075
+ color: var(--be-success-active-contrast);
1076
+ background-color: var(--be-success-active);
1077
+ border-color: var(--be-success-active);
1078
+ }
1079
+
1080
+ .btn-outline-success {
1081
+ color: var(--be-success);
1082
+ border-color: var(--be-success);
1083
+ }
1084
+
1085
+ .btn-outline-success:hover,
1086
+ .btn-outline-success:focus,
1087
+ .btn-outline-success:active,
1088
+ .btn-outline-success.active {
1089
+ color: var(--be-success-contrast);
1090
+ background-color: var(--be-success);
1091
+ border-color: var(--be-success);
1092
+ }
1093
+
1094
+ .alert-success {
1095
+ color: var(--be-success);
1096
+ background-color: rgba(var(--be-success-rgb), 0.12);
1097
+ border-color: rgba(var(--be-success-rgb), 0.25);
1098
+ }
1099
+
1100
+ .text-warning {
1101
+ color: var(--be-warning) !important;
1102
+ }
1103
+
1104
+ .bg-warning,
1105
+ .badge-warning {
1106
+ color: var(--be-warning-contrast) !important;
1107
+ background-color: var(--be-warning) !important;
1108
+ }
1109
+
1110
+ .bg-light-warning,
1111
+ .badge-light-warning {
1112
+ color: var(--be-warning) !important;
1113
+ background-color: rgba(var(--be-warning-rgb), 0.12) !important;
1114
+ }
1115
+
1116
+ .border-warning {
1117
+ border-color: var(--be-warning) !important;
1118
+ }
1119
+
1120
+ .btn-warning {
1121
+ color: var(--be-warning-contrast);
1122
+ background-color: var(--be-warning);
1123
+ border-color: var(--be-warning);
1124
+ }
1125
+
1126
+ .btn-warning:hover,
1127
+ .btn-warning:focus {
1128
+ color: var(--be-warning-hover-contrast);
1129
+ background-color: var(--be-warning-hover);
1130
+ border-color: var(--be-warning-hover);
1131
+ }
1132
+
1133
+ .btn-warning:active,
1134
+ .btn-warning.active {
1135
+ color: var(--be-warning-active-contrast);
1136
+ background-color: var(--be-warning-active);
1137
+ border-color: var(--be-warning-active);
1138
+ }
1139
+
1140
+ .btn-outline-warning {
1141
+ color: var(--be-warning);
1142
+ border-color: var(--be-warning);
1143
+ }
1144
+
1145
+ .btn-outline-warning:hover,
1146
+ .btn-outline-warning:focus,
1147
+ .btn-outline-warning:active,
1148
+ .btn-outline-warning.active {
1149
+ color: var(--be-warning-contrast);
1150
+ background-color: var(--be-warning);
1151
+ border-color: var(--be-warning);
1152
+ }
1153
+
1154
+ .alert-warning {
1155
+ color: var(--be-warning);
1156
+ background-color: rgba(var(--be-warning-rgb), 0.12);
1157
+ border-color: rgba(var(--be-warning-rgb), 0.25);
1158
+ }
1159
+
1160
+ .text-danger {
1161
+ color: var(--be-danger) !important;
1162
+ }
1163
+
1164
+ .bg-danger,
1165
+ .badge-danger {
1166
+ color: var(--be-danger-contrast) !important;
1167
+ background-color: var(--be-danger) !important;
1168
+ }
1169
+
1170
+ .bg-light-danger,
1171
+ .badge-light-danger {
1172
+ color: var(--be-danger) !important;
1173
+ background-color: rgba(var(--be-danger-rgb), 0.12) !important;
1174
+ }
1175
+
1176
+ .border-danger {
1177
+ border-color: var(--be-danger) !important;
1178
+ }
1179
+
1180
+ .btn-danger {
1181
+ color: var(--be-danger-contrast);
1182
+ background-color: var(--be-danger);
1183
+ border-color: var(--be-danger);
1184
+ }
1185
+
1186
+ .btn-danger:hover,
1187
+ .btn-danger:focus {
1188
+ color: var(--be-danger-hover-contrast);
1189
+ background-color: var(--be-danger-hover);
1190
+ border-color: var(--be-danger-hover);
1191
+ }
1192
+
1193
+ .btn-danger:active,
1194
+ .btn-danger.active {
1195
+ color: var(--be-danger-active-contrast);
1196
+ background-color: var(--be-danger-active);
1197
+ border-color: var(--be-danger-active);
1198
+ }
1199
+
1200
+ .btn-outline-danger {
1201
+ color: var(--be-danger);
1202
+ border-color: var(--be-danger);
1203
+ }
1204
+
1205
+ .btn-outline-danger:hover,
1206
+ .btn-outline-danger:focus,
1207
+ .btn-outline-danger:active,
1208
+ .btn-outline-danger.active {
1209
+ color: var(--be-danger-contrast);
1210
+ background-color: var(--be-danger);
1211
+ border-color: var(--be-danger);
1212
+ }
1213
+
1214
+ .alert-danger {
1215
+ color: var(--be-danger);
1216
+ background-color: rgba(var(--be-danger-rgb), 0.12);
1217
+ border-color: rgba(var(--be-danger-rgb), 0.25);
1218
+ }
1219
+
1220
+ .text-info {
1221
+ color: var(--be-info) !important;
1222
+ }
1223
+
1224
+ .bg-info,
1225
+ .badge-info {
1226
+ color: var(--be-info-contrast) !important;
1227
+ background-color: var(--be-info) !important;
1228
+ }
1229
+
1230
+ .bg-light-info,
1231
+ .badge-light-info {
1232
+ color: var(--be-info) !important;
1233
+ background-color: rgba(var(--be-info-rgb), 0.12) !important;
1234
+ }
1235
+
1236
+ .border-info {
1237
+ border-color: var(--be-info) !important;
1238
+ }
1239
+
1240
+ .btn-info {
1241
+ color: var(--be-info-contrast);
1242
+ background-color: var(--be-info);
1243
+ border-color: var(--be-info);
1244
+ }
1245
+
1246
+ .btn-info:hover,
1247
+ .btn-info:focus {
1248
+ color: var(--be-info-hover-contrast);
1249
+ background-color: var(--be-info-hover);
1250
+ border-color: var(--be-info-hover);
1251
+ }
1252
+
1253
+ .btn-info:active,
1254
+ .btn-info.active {
1255
+ color: var(--be-info-active-contrast);
1256
+ background-color: var(--be-info-active);
1257
+ border-color: var(--be-info-active);
1258
+ }
1259
+
1260
+ .btn-outline-info {
1261
+ color: var(--be-info);
1262
+ border-color: var(--be-info);
1263
+ }
1264
+
1265
+ .btn-outline-info:hover,
1266
+ .btn-outline-info:focus,
1267
+ .btn-outline-info:active,
1268
+ .btn-outline-info.active {
1269
+ color: var(--be-info-contrast);
1270
+ background-color: var(--be-info);
1271
+ border-color: var(--be-info);
1272
+ }
1273
+
1274
+ .alert-info {
1275
+ color: var(--be-info);
1276
+ background-color: rgba(var(--be-info-rgb), 0.12);
1277
+ border-color: rgba(var(--be-info-rgb), 0.25);
1278
+ }
1279
+
1280
+ .form-check-input:checked {
1281
+ background-color: var(--be-primary);
1282
+ border-color: var(--be-primary);
1283
+ }
1284
+
1285
+ .form-check-input:focus {
1286
+ border-color: var(--be-primary);
1287
+ box-shadow: none;
1288
+ }
1289
+
1290
+ .progress-bar {
1291
+ color: var(--be-primary-contrast);
1292
+ background-color: var(--be-primary);
1293
+ }
1294
+
1295
+ .page-item.active .page-link,
1296
+ .nav-pills .nav-link.active,
1297
+ .nav-pills .show > .nav-link,
1298
+ .list-group-item.active {
1299
+ color: var(--be-primary-contrast);
1300
+ background-color: var(--be-primary);
1301
+ border-color: var(--be-primary);
1302
+ }
1303
+
1304
+ .page-link {
1305
+ color: var(--be-primary);
1306
+ }
1307
+
1308
+ .page-link:hover,
1309
+ .page-link:focus {
1310
+ color: var(--be-primary-hover);
1311
+ background-color: var(--be-hover-background);
1312
+ }
1313
+
1314
+ .form-label,
1315
+ label {
1316
+ color: var(--be-text-primary);
1317
+ font-size: var(--be-form-label-size);
1318
+ font-weight: var(--be-form-label-weight);
1319
+ }
1320
+
1321
+ .form-control:not(textarea):not(.form-control-sm):not(.form-control-lg),
1322
+ .form-select:not(.form-select-sm):not(.form-select-lg),
1323
+ .input-group:not(.input-group-sm):not(.input-group-lg) > .form-control,
1324
+ .input-group:not(.input-group-sm):not(.input-group-lg) > .form-select,
1325
+ .input-group:not(.input-group-sm):not(.input-group-lg) > .input-group-text {
1326
+ height: var(--be-control-height);
1327
+ min-height: var(--be-control-height);
1328
+ padding: 0.3rem 0.5rem;
1329
+ line-height: 1.25rem;
1330
+ box-sizing: border-box;
1331
+ }
1332
+
1333
+ textarea.form-control {
1334
+ padding: 0.3rem 0.5rem;
1335
+ line-height: 1.25rem;
1336
+ }
1337
+
1338
+ .form-control,
1339
+ .form-select,
1340
+ .input-group-text {
1341
+ color: var(--be-text-primary);
1342
+ background-color: var(--be-surface);
1343
+ border-color: var(--be-input-border);
1344
+ border-radius: var(--be-input-radius);
1345
+ font-family: inherit;
1346
+ font-size: var(--be-font-size-base);
1347
+ transition-duration: var(--be-transition-duration);
1348
+ }
1349
+
1350
+ .form-control:focus,
1351
+ .form-select:focus {
1352
+ color: var(--be-text-primary);
1353
+ background-color: var(--be-surface);
1354
+ border-color: var(--be-primary);
1355
+ box-shadow: none !important;
1356
+ outline: none;
1357
+ }
1358
+
1359
+ .form-control:disabled,
1360
+ .form-select:disabled,
1361
+ .form-control[readonly] {
1362
+ background-color: var(--be-disabled-background);
1363
+ }
1364
+
1365
+ .form-control-color {
1366
+ padding: 3px;
1367
+ }
1368
+
1369
+ .input-group > :not(:first-child),
1370
+ .input-group > :not(:first-child) .form-control,
1371
+ .input-group > :not(:first-child) .form-select {
1372
+ border-top-left-radius: 0;
1373
+ border-bottom-left-radius: 0;
1374
+ }
1375
+
1376
+ .input-group > :not(:last-child),
1377
+ .input-group > :not(:last-child) .form-control,
1378
+ .input-group > :not(:last-child) .form-select {
1379
+ border-top-right-radius: 0;
1380
+ border-bottom-right-radius: 0;
1381
+ }
1382
+
1383
+ .input-group:not(.bootstrap-touchspin):focus-within {
1384
+ box-shadow: none !important;
1385
+ }
1386
+
1387
+ /* React Select visual tokens only. Inner geometry intentionally stays with
1388
+ * the original react-select/theme.scss contract so toolbar line-height cannot
1389
+ * distort values, indicators or dropdown option density. */
1390
+ .select__control,
1391
+ .react-select__control {
1392
+ min-height: var(--be-control-height) !important;
1393
+ color: var(--be-text-primary);
1394
+ background-color: var(--be-surface) !important;
1395
+ border-color: var(--be-input-border) !important;
1396
+ border-radius: var(--be-input-radius) !important;
1397
+ font-family: var(--be-font-family);
1398
+ transition-duration: var(--be-transition-duration);
1399
+ box-sizing: border-box;
1400
+ }
1401
+
1402
+ .select__control--is-focused,
1403
+ .react-select__control--is-focused {
1404
+ border-color: var(--be-primary) !important;
1405
+ box-shadow: none !important;
1406
+ }
1407
+
1408
+ .select__single-value,
1409
+ .react-select__single-value,
1410
+ .select__input-container,
1411
+ .react-select__input-container {
1412
+ color: var(--be-text-primary) !important;
1413
+ }
1414
+
1415
+ .select__placeholder,
1416
+ .react-select__placeholder {
1417
+ color: var(--be-placeholder) !important;
1418
+ }
1419
+
1420
+ .select__indicator svg,
1421
+ .react-select__indicator svg {
1422
+ color: var(--be-text-muted) !important;
1423
+ }
1424
+
1425
+ .select__menu,
1426
+ .react-select__menu {
1427
+ color: var(--be-text-primary) !important;
1428
+ background-color: var(--be-surface) !important;
1429
+ border-color: var(--be-border) !important;
1430
+ font-family: var(--be-font-family);
1431
+ }
1432
+
1433
+ .select__multi-value {
1434
+ color: var(--be-primary-contrast);
1435
+ background-color: var(--be-primary) !important;
1436
+ border-radius: calc(var(--be-input-radius) / 2);
1437
+ }
1438
+
1439
+ .select__multi-value__label,
1440
+ .select__multi-value__remove {
1441
+ color: var(--be-primary-contrast) !important;
1442
+ }
1443
+
1444
+ .select__menu,
1445
+ .dropdown-menu,
1446
+ .popover {
1447
+ color: var(--be-text-primary);
1448
+ background-color: var(--be-surface);
1449
+ border-color: var(--be-border);
1450
+ border-radius: var(--be-dropdown-radius);
1451
+ box-shadow: var(--be-dropdown-shadow);
1452
+ font-family: var(--be-font-family);
1453
+ }
1454
+
1455
+ .select__option--is-focused,
1456
+ .react-select__option--is-focused,
1457
+ .dropdown-item:hover,
1458
+ .dropdown-item:focus {
1459
+ color: var(--be-text-primary);
1460
+ background-color: var(--be-hover-background);
1461
+ }
1462
+
1463
+ .select__option--is-selected,
1464
+ .react-select__option--is-selected {
1465
+ color: var(--be-primary-contrast) !important;
1466
+ background-color: var(--be-primary) !important;
1467
+ }
1468
+
1469
+ .dropdown-item.active,
1470
+ .dropdown-item:active {
1471
+ color: var(--be-primary);
1472
+ background-color: var(--be-active-background);
1473
+ }
1474
+
1475
+ .form-check-input[type=checkbox]:not([role=switch]),
1476
+ .custom-control-input[type=checkbox] {
1477
+ width: var(--be-checkbox-size);
1478
+ height: var(--be-checkbox-size);
1479
+ }
1480
+
1481
+ .form-switch .form-check-input,
1482
+ .custom-switch .custom-control-input {
1483
+ min-width: calc(var(--be-switch-height) * 1.75);
1484
+ height: var(--be-switch-height);
1485
+ }
1486
+
1487
+ .form-switch .form-check-input:not(:disabled),
1488
+ .custom-switch .custom-control-input:not(:disabled) {
1489
+ cursor: pointer;
1490
+ }
1491
+
1492
+ .form-switch .form-check-input:disabled,
1493
+ .custom-switch .custom-control-input:disabled {
1494
+ cursor: not-allowed;
1495
+ }
1496
+
1497
+ .card {
1498
+ color: var(--be-text-primary);
1499
+ background-color: var(--be-surface);
1500
+ border-color: var(--be-border);
1501
+ border-radius: var(--be-card-radius);
1502
+ box-shadow: var(--be-card-shadow);
1503
+ }
1504
+
1505
+ .card-header,
1506
+ .card-footer {
1507
+ background-color: var(--be-surface);
1508
+ border-color: var(--be-border);
1509
+ }
1510
+
1511
+ .card-body {
1512
+ padding: var(--be-card-padding);
1513
+ }
1514
+
1515
+ .modal-content {
1516
+ color: var(--be-text-primary);
1517
+ background-color: var(--be-surface);
1518
+ border-color: var(--be-border);
1519
+ border-radius: var(--be-modal-radius);
1520
+ }
1521
+
1522
+ .modal-header,
1523
+ .modal-footer {
1524
+ border-color: var(--be-border);
1525
+ }
1526
+
1527
+ .nav-tabs {
1528
+ border-bottom-color: var(--be-border);
1529
+ }
1530
+
1531
+ .nav-tabs .nav-link {
1532
+ min-height: var(--be-tab-height);
1533
+ color: var(--be-text-secondary);
1534
+ border-radius: var(--be-tab-radius) var(--be-tab-radius) 0 0;
1535
+ font-size: var(--be-menu-font-size);
1536
+ font-weight: 500;
1537
+ }
1538
+
1539
+ .nav-tabs .nav-link:hover,
1540
+ .nav-tabs .nav-link:focus,
1541
+ .nav-tabs .nav-link.active {
1542
+ color: var(--be-primary) !important;
1543
+ }
1544
+
1545
+ .nav-tabs .nav-link.active {
1546
+ background-color: transparent;
1547
+ }
1548
+
1549
+ .nav-tabs .nav-link::after {
1550
+ background-color: var(--be-primary) !important;
1551
+ }
1552
+
1553
+ .header-navbar {
1554
+ color: var(--be-navbar-text);
1555
+ background-color: var(--be-navbar-background) !important;
1556
+ border-color: var(--be-border);
1557
+ font-family: var(--be-font-family);
1558
+ }
1559
+
1560
+ .header-navbar .nav-link,
1561
+ .header-navbar .navbar-nav,
1562
+ .header-navbar .navbar-nav .nav-item,
1563
+ .header-navbar .navbar-nav .nav-link {
1564
+ color: var(--be-navbar-text);
1565
+ }
1566
+
1567
+ .footer {
1568
+ color: var(--be-text-secondary);
1569
+ background-color: var(--be-surface);
1570
+ border-color: var(--be-border);
1571
+ }
1572
+
1573
+ .main-menu {
1574
+ color: var(--be-sidebar-text);
1575
+ background-color: var(--be-sidebar-background) !important;
1576
+ border-color: var(--be-border);
1577
+ font-family: var(--be-font-family);
1578
+ }
1579
+
1580
+ .main-menu .navbar-header,
1581
+ .main-menu .main-menu-content,
1582
+ .main-menu .navigation {
1583
+ background-color: var(--be-sidebar-background);
1584
+ }
1585
+
1586
+ .main-menu .navigation > li > a,
1587
+ .main-menu .navigation .menu-content > li > a {
1588
+ color: var(--be-sidebar-text);
1589
+ }
1590
+
1591
+ .main-menu .navigation,
1592
+ .main-menu .navigation li,
1593
+ .main-menu .navigation a {
1594
+ font-family: var(--be-font-family);
1595
+ }
1596
+
1597
+ .main-menu .navigation > li > a,
1598
+ .main-menu .navigation .menu-content li > a {
1599
+ display: flex;
1600
+ align-items: center;
1601
+ min-height: var(--be-menu-item-height);
1602
+ font-size: var(--be-menu-font-size);
1603
+ font-weight: var(--be-menu-font-weight);
1604
+ }
1605
+
1606
+ .main-menu .navigation .menu-content > li > a {
1607
+ padding-left: calc(var(--be-menu-indent) + 15px);
1608
+ }
1609
+
1610
+ .main-menu .navigation-header {
1611
+ margin-top: var(--be-menu-group-spacing);
1612
+ color: var(--be-sidebar-muted-text);
1613
+ font-family: var(--be-font-family);
1614
+ font-size: var(--be-small-font-size);
1615
+ }
1616
+
1617
+ .main-menu .navigation li > a > svg,
1618
+ .main-menu .navigation li > a > i,
1619
+ .main-menu .navigation li > a .menu-icon {
1620
+ width: var(--be-menu-icon-size) !important;
1621
+ min-width: var(--be-menu-icon-size) !important;
1622
+ height: var(--be-menu-icon-size) !important;
1623
+ font-size: var(--be-menu-icon-size) !important;
1624
+ flex: 0 0 var(--be-menu-icon-size) !important;
1625
+ }
1626
+
1627
+ html[data-be-show-icons=false] .main-menu .navigation li > a > svg,
1628
+ html[data-be-show-icons=false] .main-menu .navigation li > a > i {
1629
+ display: none !important;
1630
+ }
1631
+
1632
+ html[data-be-show-icons=false] .main-menu .navigation li > a > span {
1633
+ margin-left: 0 !important;
1634
+ }
1635
+
1636
+ html[data-be-show-group-title=false] .main-menu .navigation-header {
1637
+ display: none !important;
1638
+ }
1639
+
1640
+ html[data-be-navigation-searchable=false] .becoxy-global-search {
1641
+ display: none !important;
1642
+ }
1643
+
1644
+ .be-compact .card-body {
1645
+ padding: min(var(--be-card-padding), 12px);
1646
+ }
1647
+
1648
+ .be-compact .main-menu .navigation > li > a,
1649
+ .be-compact .main-menu .navigation .menu-content > li > a {
1650
+ min-height: min(var(--be-menu-item-height), 34px);
1651
+ }
1652
+
1653
+ .be-reduce-motion *,
1654
+ .be-reduce-motion *::before,
1655
+ .be-reduce-motion *::after {
1656
+ scroll-behavior: auto !important;
1657
+ animation-duration: 0.01ms !important;
1658
+ animation-iteration-count: 1 !important;
1659
+ transition-duration: 0.01ms !important;
1660
+ }
1661
+
1662
+ .be-high-contrast {
1663
+ --be-border: #000000;
1664
+ --be-input-border: #000000;
1665
+ --be-text-primary: #000000;
1666
+ --be-heading-text: #000000;
1667
+ }
1668
+
1669
+ .be-high-contrast[data-be-theme=dark] {
1670
+ --be-border: #ffffff;
1671
+ --be-input-border: #ffffff;
1672
+ --be-text-primary: #ffffff;
1673
+ --be-heading-text: #ffffff;
1674
+ }
1675
+
1676
+ html:not(.be-focus-outline) :focus,
1677
+ html:not(.be-focus-outline) :focus-visible {
1678
+ outline: none !important;
1679
+ }
1680
+
1681
+ .be-focus-outline :focus-visible {
1682
+ outline: var(--be-focus-ring-size) solid rgba(var(--be-primary-rgb), 0.55);
1683
+ outline-offset: 2px;
1684
+ }
1685
+
1686
+ .be-focus-outline .form-control:focus-visible,
1687
+ .be-focus-outline .form-select:focus-visible {
1688
+ outline: none;
1689
+ }
1690
+
1691
+ .be-hide-tooltips [role=tooltip],
1692
+ .be-hide-tooltips .tooltip,
1693
+ .be-hide-tooltips .e-tooltip-wrap {
1694
+ display: none !important;
1695
+ }
1696
+
1697
+ html[data-be-scrollbar=Mảnh] * {
1698
+ scrollbar-width: thin;
1699
+ scrollbar-color: var(--be-scrollbar-thumb) var(--be-scrollbar-track);
1700
+ }
1701
+
1702
+ html[data-be-scrollbar=Mảnh] *::-webkit-scrollbar {
1703
+ width: 6px;
1704
+ height: 6px;
1705
+ }
1706
+
1707
+ html[data-be-scrollbar=Mảnh] *::-webkit-scrollbar-thumb {
1708
+ background-color: var(--be-scrollbar-thumb);
1709
+ border-radius: 999px;
1710
+ }
1711
+
1712
+ html[data-be-scrollbar=Mảnh] *::-webkit-scrollbar-track,
1713
+ html[data-be-scrollbar="Mặc định"] *::-webkit-scrollbar-track {
1714
+ background-color: var(--be-scrollbar-track);
1715
+ }
1716
+
1717
+ html[data-be-scrollbar="Mặc định"] * {
1718
+ scrollbar-color: var(--be-scrollbar-thumb) var(--be-scrollbar-track);
1719
+ }
1720
+
1721
+ html[data-be-scrollbar="Mặc định"] *::-webkit-scrollbar-thumb {
1722
+ background-color: var(--be-scrollbar-thumb);
1723
+ border-radius: 999px;
1724
+ }
1725
+
1726
+ html[data-be-scrollbar=Ẩn] * {
1727
+ scrollbar-width: none;
1728
+ }
1729
+
1730
+ html[data-be-scrollbar=Ẩn] *::-webkit-scrollbar {
1731
+ display: none;
1732
+ }
1733
+
1734
+ .react-tagsinput-tag {
1735
+ color: var(--be-primary-contrast);
1736
+ background-color: var(--be-primary);
1737
+ border-color: var(--be-primary);
1738
+ }
1739
+
1740
+ .react-tagsinput--focused {
1741
+ border-color: var(--be-primary);
1742
+ }
1743
+
1744
+ .brand-text,
1745
+ .main-menu .navbar-brand .brand-text {
1746
+ color: var(--be-brand-accent) !important;
1747
+ }
1748
+
1749
+ .app-content .row {
1750
+ --bs-gutter-x: calc(var(--be-gutter) * 2);
1751
+ --bs-gutter-y: var(--be-gutter);
1752
+ }
1753
+
1754
+ .header-navbar .navbar-container .navbar-nav .nav-item,
1755
+ .header-navbar .navbar-container .navbar-nav .nav-link {
1756
+ font-size: var(--be-font-size-base);
1757
+ }
1758
+
1759
+ /* 4. Navigation compatibility overrides for compiled Vuexy styles. */
1760
+ /*
1761
+ * Core Vuexy uses a compiled Sass gradient with `!important` for tab lines.
1762
+ * `background-color` alone cannot replace that old gradient, so reset the
1763
+ * entire background/background-image using the runtime Primary token.
1764
+ */
1765
+ .nav-tabs .nav-link.active,
1766
+ .becoxy-settings-page__tabs .nav-link.active,
1767
+ .becoxy-settings-page__tab-link.active {
1768
+ color: var(--be-tab-active-color) !important;
1769
+ border-color: transparent !important;
1770
+ box-shadow: none !important;
1771
+ }
1772
+
1773
+ .nav-tabs .nav-link::after,
1774
+ .becoxy-settings-page__tabs .nav-link::after,
1775
+ .becoxy-settings-page__tab-link::after {
1776
+ background: var(--be-tab-active-color) !important;
1777
+ background-color: var(--be-tab-active-color) !important;
1778
+ background-image: none !important;
1779
+ border-color: var(--be-tab-active-color) !important;
1780
+ box-shadow: none !important;
1781
+ }
1782
+
1783
+ /* Remove the old white gradient/shadow below the Sidebar logo completely. */
1784
+ .main-menu,
1785
+ .main-menu.menu-shadow,
1786
+ .main-menu.menu-light,
1787
+ .main-menu.menu-dark,
1788
+ .main-menu .navbar-header,
1789
+ .main-menu .main-menu-content,
1790
+ .main-menu .navigation,
1791
+ .main-menu .navigation-main {
1792
+ background-color: var(--be-sidebar-background) !important;
1793
+ background-image: none !important;
1794
+ box-shadow: none !important;
1795
+ filter: none !important;
1796
+ }
1797
+
1798
+ .main-menu .shadow-bottom,
1799
+ .main-menu > .shadow-bottom,
1800
+ .main-menu .navbar-header + .shadow-bottom,
1801
+ .main-menu .main-menu-content > .shadow-bottom {
1802
+ display: none !important;
1803
+ width: 0 !important;
1804
+ min-width: 0 !important;
1805
+ height: 0 !important;
1806
+ min-height: 0 !important;
1807
+ margin: 0 !important;
1808
+ padding: 0 !important;
1809
+ opacity: 0 !important;
1810
+ visibility: hidden !important;
1811
+ background: none !important;
1812
+ background-image: none !important;
1813
+ border: 0 !important;
1814
+ box-shadow: none !important;
1815
+ filter: none !important;
1816
+ pointer-events: none !important;
1817
+ }
1818
+
1819
+ .main-menu .navbar-header::before,
1820
+ .main-menu .navbar-header::after,
1821
+ .main-menu .main-menu-content::before,
1822
+ .main-menu .main-menu-content::after,
1823
+ .main-menu .navigation::before,
1824
+ .main-menu .navigation::after {
1825
+ content: none !important;
1826
+ display: none !important;
1827
+ background: none !important;
1828
+ background-image: none !important;
1829
+ box-shadow: none !important;
1830
+ }
1831
+
1832
+ /* Sidebar normal state. */
1833
+ .main-menu .navigation li > a {
1834
+ position: relative;
1835
+ color: var(--be-sidebar-text) !important;
1836
+ background-color: transparent !important;
1837
+ background-image: none !important;
1838
+ box-shadow: none !important;
1839
+ }
1840
+
1841
+ .main-menu .navigation li > a > span,
1842
+ .main-menu .navigation li > a > svg,
1843
+ .main-menu .navigation li > a > i,
1844
+ .main-menu .navigation li > a .menu-item {
1845
+ color: inherit !important;
1846
+ }
1847
+
1848
+ /* Navigation hover/focus uses Sidebar-specific state tokens. */
1849
+ .main-menu .navigation li:not(.active):not(.sidebar-group-active) > a:hover,
1850
+ .main-menu .navigation li:not(.active):not(.sidebar-group-active) > a:focus {
1851
+ color: var(--be-sidebar-hover-text) !important;
1852
+ background-color: var(--be-sidebar-hover-background) !important;
1853
+ background-image: none !important;
1854
+ box-shadow: none !important;
1855
+ }
1856
+
1857
+ /* Soft-background is the only mode that owns the active indicator. */
1858
+ html[data-be-navigation-active=soft-background] .main-menu .navigation li.active > a,
1859
+ html[data-be-navigation-active=soft-background] .main-menu .navigation li.sidebar-group-active > a,
1860
+ html[data-be-navigation-active=soft-background] .main-menu .navigation a.active {
1861
+ color: var(--be-sidebar-active-text) !important;
1862
+ background: var(--be-sidebar-active-background) !important;
1863
+ background-image: none !important;
1864
+ border-radius: var(--be-menu-active-radius) !important;
1865
+ box-shadow: none !important;
1866
+ }
1867
+
1868
+ html[data-be-navigation-active=soft-background] .main-menu .navigation li.active > a::before,
1869
+ html[data-be-navigation-active=soft-background] .main-menu .navigation li.sidebar-group-active > a::before,
1870
+ html[data-be-navigation-active=soft-background] .main-menu .navigation a.active::before {
1871
+ content: "" !important;
1872
+ position: absolute;
1873
+ top: 20%;
1874
+ bottom: 20%;
1875
+ left: 0;
1876
+ width: 3px;
1877
+ border-radius: 0 3px 3px 0;
1878
+ background: var(--be-sidebar-active-indicator) !important;
1879
+ box-shadow: none !important;
1880
+ }
1881
+
1882
+ /* Left-border mode uses Sidebar accent tokens without a background fill. */
1883
+ html[data-be-navigation-active=left-border] .main-menu .navigation li.active > a,
1884
+ html[data-be-navigation-active=left-border] .main-menu .navigation li.sidebar-group-active > a,
1885
+ html[data-be-navigation-active=left-border] .main-menu .navigation a.active {
1886
+ color: var(--be-sidebar-accent-text) !important;
1887
+ background: transparent !important;
1888
+ background-image: none !important;
1889
+ box-shadow: inset 3px 0 0 var(--be-sidebar-active-indicator) !important;
1890
+ }
1891
+
1892
+ /* Text-only mode uses only the Sidebar accent text token. */
1893
+ html[data-be-navigation-active=text-only] .main-menu .navigation li.active > a,
1894
+ html[data-be-navigation-active=text-only] .main-menu .navigation li.sidebar-group-active > a,
1895
+ html[data-be-navigation-active=text-only] .main-menu .navigation a.active {
1896
+ color: var(--be-sidebar-accent-text) !important;
1897
+ background: transparent !important;
1898
+ background-image: none !important;
1899
+ box-shadow: none !important;
1900
+ }
1901
+
1902
+ /* Navbar and Sidebar icons inherit the automatically calculated text color. */
1903
+ .header-navbar,
1904
+ .header-navbar .navbar-container,
1905
+ .header-navbar .nav-link,
1906
+ .header-navbar .navbar-nav,
1907
+ .header-navbar .navbar-nav .nav-item,
1908
+ .header-navbar .navbar-nav .nav-link {
1909
+ color: var(--be-navbar-text) !important;
1910
+ }
1911
+
1912
+ .header-navbar svg,
1913
+ .header-navbar i,
1914
+ .header-navbar .nav-link svg,
1915
+ .header-navbar .nav-link i {
1916
+ color: currentColor !important;
1917
+ }
1918
+
1919
+ /* 4. Navigation compatibility: sidebar brand and menu states. */
1920
+ /* 1. Logo header luôn trắng ở mọi theme. */
1921
+ .main-menu .navbar-header,
1922
+ .main-menu.menu-light .navbar-header,
1923
+ .main-menu.menu-dark .navbar-header {
1924
+ color: var(--be-sidebar-brand-text) !important;
1925
+ background: var(--be-sidebar-brand-background) !important;
1926
+ background-color: var(--be-sidebar-brand-background) !important;
1927
+ background-image: none !important;
1928
+ border-bottom: 1px solid var(--be-sidebar-brand-border) !important;
1929
+ box-shadow: none !important;
1930
+ filter: none !important;
1931
+ }
1932
+
1933
+ /* Mọi wrapper bên trong header không được kéo nền Sidebar vào. */
1934
+ .main-menu .navbar-header .navbar-brand,
1935
+ .main-menu .navbar-header .brand-logo,
1936
+ .main-menu .navbar-header .brand-text,
1937
+ .main-menu .navbar-header .nav-toggle,
1938
+ .main-menu .navbar-header .modern-nav-toggle {
1939
+ color: var(--be-sidebar-brand-text) !important;
1940
+ background: transparent !important;
1941
+ background-image: none !important;
1942
+ box-shadow: none !important;
1943
+ }
1944
+
1945
+ .main-menu .navbar-header .brand-text {
1946
+ color: var(--be-sidebar-brand-text) !important;
1947
+ }
1948
+
1949
+ /* Logo ảnh giữ nguyên file; SVG chỉ inherit khi được thiết kế currentColor. */
1950
+ .main-menu .navbar-header .navbar-brand-logo,
1951
+ .main-menu .navbar-header .brand-logo img {
1952
+ background: transparent !important;
1953
+ }
1954
+
1955
+ /* Nút thu gọn/mở rộng dùng Primary trên nền trắng. */
1956
+ .main-menu .navbar-header .nav-toggle,
1957
+ .main-menu .navbar-header .nav-toggle .nav-link,
1958
+ .main-menu .navbar-header .modern-nav-toggle,
1959
+ .main-menu .navbar-header .modern-nav-toggle .nav-link,
1960
+ .main-menu .navbar-header .nav-toggle svg,
1961
+ .main-menu .navbar-header .nav-toggle i,
1962
+ .main-menu .navbar-header .modern-nav-toggle svg,
1963
+ .main-menu .navbar-header .modern-nav-toggle i {
1964
+ color: var(--be-sidebar-brand-toggle) !important;
1965
+ }
1966
+
1967
+ /* 2. Xóa hoàn toàn shadow/gradient dưới logo. */
1968
+ .main-menu,
1969
+ .main-menu.menu-shadow,
1970
+ .main-menu .navbar-header,
1971
+ .main-menu .main-menu-content,
1972
+ .main-menu .navigation {
1973
+ box-shadow: none !important;
1974
+ }
1975
+
1976
+ .main-menu .shadow-bottom,
1977
+ .main-menu .navbar-header + .shadow-bottom,
1978
+ .main-menu .main-menu-content > .shadow-bottom {
1979
+ display: none !important;
1980
+ width: 0 !important;
1981
+ height: 0 !important;
1982
+ opacity: 0 !important;
1983
+ visibility: hidden !important;
1984
+ background: none !important;
1985
+ background-image: none !important;
1986
+ border: 0 !important;
1987
+ box-shadow: none !important;
1988
+ filter: none !important;
1989
+ pointer-events: none !important;
1990
+ }
1991
+
1992
+ /* Không xóa pseudo-element của menu item active.
1993
+ Chỉ xóa pseudo-element tạo shadow ở header/content. */
1994
+ .main-menu .navbar-header::before,
1995
+ .main-menu .navbar-header::after,
1996
+ .main-menu .main-menu-content::before,
1997
+ .main-menu .main-menu-content::after {
1998
+ content: none !important;
1999
+ display: none !important;
2000
+ }
2001
+
2002
+ /* 3. Background Sidebar chỉ bắt đầu từ phần nội dung menu. */
2003
+ .main-menu .main-menu-content,
2004
+ .main-menu .navigation,
2005
+ .main-menu .navigation-main,
2006
+ .main-menu .main-menu-content .ps,
2007
+ .main-menu .main-menu-content .ps__rail-y {
2008
+ background-color: var(--be-sidebar-background) !important;
2009
+ }
2010
+
2011
+ /* 4. Tiêu đề nhóm dùng muted token riêng, đủ contrast. */
2012
+ .main-menu .navigation-header,
2013
+ .main-menu .navigation .navigation-header,
2014
+ .main-menu .navigation-header span,
2015
+ .main-menu .navigation .navigation-header span {
2016
+ color: var(--be-sidebar-group-text) !important;
2017
+ opacity: 1 !important;
2018
+ }
2019
+
2020
+ /* 5. Menu cha và menu con dùng CÙNG màu chữ thường. */
2021
+ .main-menu .navigation > li > a,
2022
+ .main-menu .navigation > li.has-sub > a,
2023
+ .main-menu .navigation .menu-content > li > a,
2024
+ .main-menu .navigation .menu-content .menu-content > li > a {
2025
+ color: var(--be-sidebar-text) !important;
2026
+ }
2027
+
2028
+ /* Text, icon và mũi tên đều theo màu link. */
2029
+ .main-menu .navigation li > a .menu-title,
2030
+ .main-menu .navigation li > a .menu-item,
2031
+ .main-menu .navigation li > a > span,
2032
+ .main-menu .navigation li > a svg,
2033
+ .main-menu .navigation li > a i {
2034
+ color: inherit !important;
2035
+ }
2036
+
2037
+ /*
2038
+ * Parent đang open/group-active nhưng route active nằm ở con:
2039
+ * parent vẫn dùng màu thường như menu con, không tự thành Primary.
2040
+ */
2041
+ .main-menu .navigation li.open:not(.active) > a,
2042
+ .main-menu .navigation li.sidebar-group-active:not(.active) > a,
2043
+ .main-menu .navigation li.has-sub.open:not(.active) > a {
2044
+ color: var(--be-sidebar-text) !important;
2045
+ background-color: transparent !important;
2046
+ box-shadow: none !important;
2047
+ }
2048
+
2049
+ /* Chevron/mũi tên của parent theo currentColor. */
2050
+ .main-menu .navigation li.has-sub > a::after {
2051
+ color: currentColor !important;
2052
+ border-color: currentColor !important;
2053
+ }
2054
+
2055
+ /* Dark mode không được đổi navbar-header về màu Sidebar. */
2056
+ .dark-layout .main-menu .navbar-header,
2057
+ .dark-layout .main-menu.menu-dark .navbar-header,
2058
+ .dark-layout .main-menu.menu-light .navbar-header {
2059
+ color: var(--be-sidebar-brand-text) !important;
2060
+ background: var(--be-sidebar-brand-background) !important;
2061
+ background-image: none !important;
2062
+ }
2063
+
2064
+ /* 7. Compatibility overrides for Bootstrap, Reactstrap and Vuexy. */
2065
+ /* 5. Surface / card / modal compatibility. */
2066
+ html,
2067
+ body,
2068
+ #root,
2069
+ .app-content,
2070
+ .app-content.content,
2071
+ .content-wrapper,
2072
+ .content-body {
2073
+ color: var(--be-text-primary);
2074
+ background-color: var(--be-background);
2075
+ }
2076
+
2077
+ .card,
2078
+ .bx-section-card,
2079
+ .modal-content,
2080
+ .offcanvas,
2081
+ .dropdown-menu,
2082
+ .popover,
2083
+ .list-group-item {
2084
+ color: var(--be-text-primary);
2085
+ background-color: var(--be-surface);
2086
+ border-color: var(--be-border);
2087
+ }
2088
+
2089
+ .card-header,
2090
+ .card-footer,
2091
+ .table thead th {
2092
+ color: var(--be-heading-text);
2093
+ background-color: var(--be-surface-secondary);
2094
+ border-color: var(--be-border);
2095
+ }
2096
+
2097
+ /* 3. Control colors and primary states. */
2098
+ .btn-primary,
2099
+ .becoxy-settings-page__actions .btn-primary,
2100
+ .bx-settings-actions .btn-primary,
2101
+ button.btn-primary,
2102
+ .e-btn.e-primary {
2103
+ color: var(--be-primary-contrast) !important;
2104
+ background: var(--be-primary) !important;
2105
+ background-color: var(--be-primary) !important;
2106
+ background-image: none !important;
2107
+ border-color: var(--be-primary) !important;
2108
+ box-shadow: none !important;
2109
+ }
2110
+
2111
+ .btn-primary:hover,
2112
+ .btn-primary:focus,
2113
+ .e-btn.e-primary:hover,
2114
+ .e-btn.e-primary:focus {
2115
+ color: var(--be-primary-hover-contrast) !important;
2116
+ background: var(--be-primary-hover) !important;
2117
+ border-color: var(--be-primary-hover) !important;
2118
+ }
2119
+
2120
+ .btn-primary:active,
2121
+ .btn-primary.active,
2122
+ .show > .btn-primary.dropdown-toggle,
2123
+ .e-btn.e-primary:active {
2124
+ color: var(--be-primary-active-contrast) !important;
2125
+ background: var(--be-primary-active) !important;
2126
+ border-color: var(--be-primary-active) !important;
2127
+ }
2128
+
2129
+ .bg-primary,
2130
+ .badge-primary {
2131
+ color: var(--be-primary-contrast) !important;
2132
+ background: var(--be-primary) !important;
2133
+ }
2134
+
2135
+ /* 3. Tabs. */
2136
+ .nav-tabs .nav-link {
2137
+ color: var(--be-text-secondary);
2138
+ }
2139
+
2140
+ .nav-tabs .nav-link:hover,
2141
+ .nav-tabs .nav-link:focus,
2142
+ .nav-tabs .nav-link.active,
2143
+ .becoxy-settings-page__tab-link.active {
2144
+ color: var(--be-tab-active-color) !important;
2145
+ }
2146
+
2147
+ .nav-tabs .nav-link::after,
2148
+ .nav-tabs .nav-link.active::after,
2149
+ .becoxy-settings-page__tab-link::after,
2150
+ .becoxy-settings-page__tab-link.active::after {
2151
+ background: var(--be-tab-active-color) !important;
2152
+ background-color: var(--be-tab-active-color) !important;
2153
+ background-image: none !important;
2154
+ border-color: var(--be-tab-active-color) !important;
2155
+ box-shadow: none !important;
2156
+ }
2157
+
2158
+ /* 4. Navbar compatibility. */
2159
+ .header-navbar,
2160
+ .header-navbar .navbar-container {
2161
+ color: var(--be-navbar-text);
2162
+ background: var(--be-navbar-background) !important;
2163
+ background-image: none !important;
2164
+ border-color: var(--be-border);
2165
+ }
2166
+
2167
+ .header-navbar .nav-link,
2168
+ .header-navbar .navbar-nav,
2169
+ .header-navbar svg,
2170
+ .header-navbar i {
2171
+ color: currentColor !important;
2172
+ }
2173
+
2174
+ /* 4. Sidebar brand compatibility. */
2175
+ .main-menu .navbar-header,
2176
+ .main-menu.menu-light .navbar-header,
2177
+ .main-menu.menu-dark .navbar-header,
2178
+ .dark-layout .main-menu .navbar-header {
2179
+ color: var(--be-sidebar-brand-text) !important;
2180
+ background: var(--be-sidebar-brand-background) !important;
2181
+ background-image: none !important;
2182
+ border-bottom: 1px solid var(--be-sidebar-brand-border) !important;
2183
+ box-shadow: none !important;
2184
+ }
2185
+
2186
+ .main-menu .navbar-header .nav-toggle,
2187
+ .main-menu .navbar-header .modern-nav-toggle,
2188
+ .main-menu .navbar-header .nav-toggle svg,
2189
+ .main-menu .navbar-header .modern-nav-toggle svg,
2190
+ .main-menu .navbar-header .nav-toggle i,
2191
+ .main-menu .navbar-header .modern-nav-toggle i {
2192
+ color: var(--be-sidebar-brand-toggle) !important;
2193
+ }
2194
+
2195
+ /* Xóa dải trắng/shadow dưới logo. */
2196
+ .main-menu,
2197
+ .main-menu.menu-shadow,
2198
+ .main-menu .main-menu-content,
2199
+ .main-menu .navigation {
2200
+ box-shadow: none !important;
2201
+ }
2202
+
2203
+ .main-menu .shadow-bottom {
2204
+ display: none !important;
2205
+ width: 0 !important;
2206
+ height: 0 !important;
2207
+ opacity: 0 !important;
2208
+ visibility: hidden !important;
2209
+ background: none !important;
2210
+ background-image: none !important;
2211
+ box-shadow: none !important;
2212
+ pointer-events: none !important;
2213
+ }
2214
+
2215
+ /* 4. Sidebar navigation states. */
2216
+ .main-menu,
2217
+ .main-menu .main-menu-content,
2218
+ .main-menu .navigation,
2219
+ .main-menu .navigation-main,
2220
+ .main-menu .main-menu-content .ps {
2221
+ color: var(--be-sidebar-text);
2222
+ background: var(--be-sidebar-background) !important;
2223
+ background-image: none !important;
2224
+ }
2225
+
2226
+ /*
2227
+ * Navigation-header, menu cha và menu con dùng CÙNG màu.
2228
+ * Token tự ra #000000 trên nền sáng và #FFFFFF trên nền tối.
2229
+ */
2230
+ .main-menu .navigation-header,
2231
+ .main-menu .navigation-header span,
2232
+ .main-menu .navigation-header svg,
2233
+ .main-menu .navigation-header i,
2234
+ .main-menu .navigation > li > a,
2235
+ .main-menu .navigation > li.has-sub > a,
2236
+ .main-menu .navigation .menu-content > li > a,
2237
+ .main-menu .navigation .menu-content .menu-content > li > a {
2238
+ color: var(--be-sidebar-text) !important;
2239
+ opacity: 1 !important;
2240
+ }
2241
+
2242
+ .main-menu .navigation-header {
2243
+ font-weight: 500;
2244
+ }
2245
+
2246
+ /* Text/icon/chevron kế thừa cùng màu. */
2247
+ .main-menu .navigation li > a .menu-title,
2248
+ .main-menu .navigation li > a .menu-item,
2249
+ .main-menu .navigation li > a > span,
2250
+ .main-menu .navigation li > a svg,
2251
+ .main-menu .navigation li > a i,
2252
+ .main-menu .navigation li.has-sub > a::after {
2253
+ color: inherit !important;
2254
+ }
2255
+
2256
+ /*
2257
+ * Cha đang mở nhưng không phải route active:
2258
+ * không đổi thành màu Primary hoặc muted.
2259
+ */
2260
+ .main-menu .navigation li.open:not(.active) > a,
2261
+ .main-menu .navigation li.sidebar-group-active:not(.active) > a,
2262
+ .main-menu .navigation li.has-sub.open:not(.active) > a {
2263
+ color: var(--be-sidebar-text) !important;
2264
+ background: transparent !important;
2265
+ box-shadow: none !important;
2266
+ }
2267
+
2268
+ /* 3. Form controls. */
2269
+ .form-control,
2270
+ .form-select,
2271
+ .input-group-text {
2272
+ color: var(--be-text-primary);
2273
+ background-color: var(--be-surface);
2274
+ border-color: var(--be-input-border);
2275
+ }
2276
+
2277
+ .form-control::placeholder,
2278
+ .form-select::placeholder {
2279
+ color: var(--be-placeholder);
2280
+ }
2281
+
2282
+ .form-control:focus,
2283
+ .form-select:focus {
2284
+ color: var(--be-text-primary);
2285
+ background-color: var(--be-surface);
2286
+ border-color: var(--be-primary);
2287
+ }
2288
+
2289
+ /* 7. Checkbox and switch compatibility. */
2290
+ .form-check-input:checked,
2291
+ .e-css.e-checkbox-wrapper .e-frame.e-check,
2292
+ .e-checkbox-wrapper .e-frame.e-check,
2293
+ .e-switch-wrapper.e-switch-active .e-switch-handle,
2294
+ .e-switch-wrapper.e-switch-active .e-switch-on {
2295
+ color: var(--be-primary-contrast) !important;
2296
+ background-color: var(--be-primary) !important;
2297
+ border-color: var(--be-primary) !important;
2298
+ }
2299
+
2300
+ /* ---------- Syncfusion Grid ---------- */
2301
+ .e-grid {
2302
+ color: var(--be-text-primary);
2303
+ background: var(--be-surface);
2304
+ border-color: var(--be-border);
2305
+ font-family: var(--be-font-family);
2306
+ font-size: var(--be-font-size-base);
2307
+ }
2308
+
2309
+ .e-grid .e-gridheader,
2310
+ .e-grid .e-headercell {
2311
+ color: var(--be-heading-text);
2312
+ background: var(--be-surface-secondary);
2313
+ border-color: var(--be-border);
2314
+ }
2315
+
2316
+ .e-grid .e-rowcell,
2317
+ .e-grid .e-row {
2318
+ color: var(--be-text-primary);
2319
+ border-color: var(--be-border);
2320
+ }
2321
+
2322
+ .e-grid .e-altrow {
2323
+ background: var(--be-surface-secondary);
2324
+ }
2325
+
2326
+ .e-grid .e-pager,
2327
+ .e-pager {
2328
+ color: var(--be-text-secondary);
2329
+ background: var(--be-surface);
2330
+ border-color: var(--be-border);
2331
+ }
2332
+
2333
+ .e-pager .e-currentitem,
2334
+ .e-grid .e-pager .e-currentitem {
2335
+ color: var(--be-primary-contrast) !important;
2336
+ background: var(--be-primary) !important;
2337
+ }
2338
+
2339
+ /* 2. Footer and link colors. */
2340
+ .footer {
2341
+ color: var(--be-text-secondary);
2342
+ background: var(--be-surface);
2343
+ border-color: var(--be-border);
2344
+ }
2345
+
2346
+ a:not(.btn):not(.nav-link) {
2347
+ color: var(--be-link-color);
2348
+ }
2349
+
2350
+ /* 6. Theme switching transition guard. */
2351
+ html[data-be-appearance-switching=true] .main-menu,
2352
+ html[data-be-appearance-switching=true] .header-navbar,
2353
+ html[data-be-appearance-switching=true] .app-content,
2354
+ html[data-be-appearance-switching=true] .card,
2355
+ html[data-be-appearance-switching=true] footer.footer {
2356
+ transition: none !important;
2357
+ }
2358
+ @charset "UTF-8";
2359
+ .bx-shortcut-management {
2360
+ display: flex;
2361
+ flex: 1 1 auto;
2362
+ flex-direction: column;
2363
+ width: 100%;
2364
+ height: 100%;
2365
+ min-width: 0;
2366
+ min-height: 0;
2367
+ overflow: hidden;
2368
+ /*
2369
+ * TEMP COMPACT DENSITY — chỉ màn Quản lý phím tắt.
2370
+ * Tạm hardcode theo yêu cầu review hiện tại.
2371
+ * Không ảnh hưởng Grid global / es-grid-template.
2372
+ */
2373
+ }
2374
+ .bx-shortcut-management .ui-rc-grid-thead .ui-rc-grid-row {
2375
+ height: 30px !important;
2376
+ min-height: 30px !important;
2377
+ }
2378
+ .bx-shortcut-management .ui-rc-grid-thead .ui-rc-grid-cell {
2379
+ height: 30px !important;
2380
+ min-height: 30px !important;
2381
+ padding: 0 8px !important;
2382
+ }
2383
+ .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row.ui-rc-grid-row-parent {
2384
+ height: 30px !important;
2385
+ min-height: 30px !important;
2386
+ }
2387
+ .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row.ui-rc-grid-row-parent .ui-rc-grid-cell {
2388
+ height: 30px !important;
2389
+ min-height: 30px !important;
2390
+ padding: 0 8px !important;
2391
+ }
2392
+ .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row:not(.ui-rc-grid-row-parent) {
2393
+ height: 32px !important;
2394
+ min-height: 32px !important;
2395
+ max-height: 32px !important;
2396
+ }
2397
+ .bx-shortcut-management .ui-rc-grid-tbody .ui-rc-grid-row:not(.ui-rc-grid-row-parent) .ui-rc-grid-cell {
2398
+ height: 32px !important;
2399
+ min-height: 0 !important;
2400
+ max-height: 32px !important;
2401
+ padding: 0 8px !important;
2402
+ overflow: hidden;
2403
+ line-height: 16px;
2404
+ }
2405
+ .bx-shortcut-management .bx-shortcut-feature {
2406
+ min-width: 0;
2407
+ overflow: hidden;
2408
+ text-overflow: ellipsis;
2409
+ white-space: nowrap;
2410
+ line-height: 16px;
2411
+ }
2412
+ .bx-shortcut-management .bx-shortcut-group-title {
2413
+ font-weight: 600;
2414
+ line-height: 16px;
2415
+ color: var(--be-text-primary, inherit);
2416
+ }
2417
+ .bx-shortcut-management .bx-shortcut-capture-wrap {
2418
+ display: inline-flex;
2419
+ align-items: center;
2420
+ gap: 2px;
2421
+ max-width: 100%;
2422
+ min-width: 0;
2423
+ height: 22px;
2424
+ line-height: 1;
2425
+ }
2426
+ .bx-shortcut-management .bx-shortcut-capture {
2427
+ display: inline-flex;
2428
+ align-items: center;
2429
+ min-width: 124px;
2430
+ height: 22px;
2431
+ min-height: 22px;
2432
+ padding: 0 6px;
2433
+ border: 1px solid var(--be-border-color, #d8d8d8);
2434
+ border-radius: 4px;
2435
+ background: var(--be-surface-color, #fff);
2436
+ color: var(--be-text-color, #212529);
2437
+ line-height: 1;
2438
+ text-align: left;
2439
+ }
2440
+ .bx-shortcut-management .bx-shortcut-capture:hover, .bx-shortcut-management .bx-shortcut-capture.is-capturing {
2441
+ border-color: var(--be-primary, #7367f0);
2442
+ color: var(--be-primary, #7367f0);
2443
+ }
2444
+ .bx-shortcut-management .bx-shortcut-capture.is-capturing {
2445
+ box-shadow: 0 0 0 2px rgba(115, 103, 240, 0.12);
2446
+ }
2447
+ .bx-shortcut-management .bx-shortcut-capture:disabled {
2448
+ cursor: not-allowed;
2449
+ opacity: 0.55;
2450
+ }
2451
+ .bx-shortcut-management .bx-shortcut-clear {
2452
+ display: inline-flex;
2453
+ align-items: center;
2454
+ justify-content: center;
2455
+ width: 18px;
2456
+ height: 18px;
2457
+ padding: 0;
2458
+ border: 0;
2459
+ border-radius: 4px;
2460
+ background: transparent;
2461
+ color: var(--be-text-color, #212529);
2462
+ line-height: 1;
2463
+ opacity: 1;
2464
+ }
2465
+ .bx-shortcut-management .bx-shortcut-clear:hover {
2466
+ background: rgba(0, 0, 0, 0.05);
2467
+ color: var(--be-danger, #ea5455);
2468
+ }
2469
+ .bx-shortcut-management .bx-shortcut-clear:disabled {
2470
+ cursor: not-allowed;
2471
+ opacity: 0.45;
2472
+ }
2473
+ .bx-shortcut-management .bx-shortcut-key {
2474
+ display: inline-flex;
2475
+ align-items: center;
2476
+ height: 20px;
2477
+ min-height: 20px;
2478
+ padding: 0 6px;
2479
+ border: 1px solid var(--be-border-color, #d8d8d8);
2480
+ border-radius: 4px;
2481
+ color: var(--be-text-color, #212529);
2482
+ line-height: 1;
2483
+ white-space: nowrap;
2484
+ }
2485
+ .bx-shortcut-management .bx-shortcut-key--locked,
2486
+ .bx-shortcut-management .bx-shortcut-state {
2487
+ color: var(--be-text-color, #212529);
2488
+ opacity: 1;
2489
+ }
2490
+ .bx-shortcut-management .bx-shortcut-state {
2491
+ line-height: 16px;
2492
+ white-space: nowrap;
2493
+ }
2494
+ .bx-shortcut-management .bx-shortcut-row-action {
2495
+ display: inline-flex;
2496
+ align-items: center;
2497
+ justify-content: center;
2498
+ width: 20px;
395
2499
  height: 20px;
396
2500
  padding: 0;
397
- line-height: 1;
2501
+ line-height: 1;
2502
+ }
2503
+ .bx-shortcut-management {
2504
+ /*
2505
+ * SwitchInput mặc định có padding / border riêng.
2506
+ * Reset chỉ trong cell Shortcut để không ép row lên ~50px.
2507
+ */
2508
+ }
2509
+ .bx-shortcut-management .bx-shortcut-switch {
2510
+ height: 22px;
2511
+ min-height: 0;
2512
+ gap: 0 !important;
2513
+ justify-content: center !important;
2514
+ padding: 0 !important;
2515
+ margin: 0 !important;
2516
+ border-bottom: 0 !important;
2517
+ }
2518
+ .bx-shortcut-management .bx-shortcut-switch > .min-w-0.flex-grow-1 {
2519
+ display: none;
2520
+ }
2521
+ .bx-shortcut-management .bx-shortcut-switch > .d-flex {
2522
+ height: 22px;
2523
+ min-height: 0;
2524
+ gap: 0 !important;
2525
+ align-items: center !important;
2526
+ padding: 0 !important;
2527
+ margin: 0 !important;
2528
+ }
2529
+ .bx-shortcut-management .bx-shortcut-switch .form-check.form-switch {
2530
+ display: flex;
2531
+ align-items: center;
2532
+ min-height: 0;
2533
+ height: 22px;
2534
+ margin: 0 !important;
2535
+ padding-top: 0 !important;
2536
+ padding-bottom: 0 !important;
2537
+ }
2538
+ .bx-shortcut-management .bx-shortcut-switch .form-check-input {
2539
+ margin-top: 0 !important;
2540
+ margin-bottom: 0 !important;
2541
+ }
2542
+ .config-feature-tree-select .select__option {
2543
+ padding-left: 8px;
2544
+ padding-right: 8px;
2545
+ }
2546
+
2547
+ .config-feature-tree-select__option {
2548
+ display: flex;
2549
+ align-items: center;
2550
+ min-width: 0;
2551
+ }
2552
+
2553
+ .config-feature-tree-select__toggle,
2554
+ .config-feature-tree-select__toggle-spacer {
2555
+ display: inline-flex;
2556
+ align-items: center;
2557
+ justify-content: center;
2558
+ flex: 0 0 22px;
2559
+ width: 22px;
2560
+ height: 22px;
2561
+ margin-right: 2px;
2562
+ }
2563
+
2564
+ .config-feature-tree-select__toggle {
2565
+ padding: 0;
2566
+ border: 0;
2567
+ border-radius: 4px;
2568
+ background: transparent;
2569
+ color: inherit;
2570
+ line-height: 1;
2571
+ cursor: pointer;
2572
+ }
2573
+ .config-feature-tree-select__toggle:hover, .config-feature-tree-select__toggle:focus-visible {
2574
+ background: rgba(var(--be-primary-rgb, 115, 103, 240), 0.12);
2575
+ outline: none;
2576
+ }
2577
+
2578
+ .config-feature-tree-select__label {
2579
+ min-width: 0;
2580
+ overflow: hidden;
2581
+ text-overflow: ellipsis;
2582
+ white-space: nowrap;
2583
+ }
2584
+ .es-application-sidebar-root.is-hidden,
2585
+ .es-application-sidebar-backdrop.is-hidden {
2586
+ display: none;
2587
+ }
2588
+
2589
+ .es-application-sidebar-backdrop {
2590
+ position: fixed;
2591
+ inset: 0;
2592
+ background: rgba(0, 0, 0, 0.5);
2593
+ opacity: 0;
2594
+ transition: opacity 0.3s ease;
2595
+ }
2596
+
2597
+ .es-application-sidebar-backdrop.show {
2598
+ opacity: 1;
2599
+ }
2600
+
2601
+ .es-application-sidebar {
2602
+ position: fixed;
2603
+ top: 0;
2604
+ right: 0;
2605
+ width: min(var(--es-application-sidebar-width, 600px), 100vw);
2606
+ max-width: 100vw;
2607
+ height: 100vh;
2608
+ overflow: hidden;
2609
+ background: #fff;
2610
+ box-shadow: -4px 0 18px rgba(0, 0, 0, 0.16);
2611
+ transform: translateX(100%);
2612
+ transition: transform 0.4s ease;
2613
+ }
2614
+
2615
+ .es-application-sidebar.open {
2616
+ transform: translateX(0);
2617
+ }
2618
+
2619
+ .es-application-sidebar.fullscreen {
2620
+ width: 100vw;
2621
+ }
2622
+ .config-tree-rules-drawer {
2623
+ width: min(1000px, 100vw);
2624
+ max-width: 100vw;
2625
+ color: #000 !important;
2626
+ background: #fff !important;
2627
+ }
2628
+ .config-tree-rules-drawer .config-key-sample-layout,
2629
+ .config-tree-rules-drawer .config-key-sample-content,
2630
+ .config-tree-rules-drawer .config-key-sample-toolbar,
2631
+ .config-tree-rules-drawer .config-key-sample-tabs,
2632
+ .config-tree-rules-drawer .table,
2633
+ .config-tree-rules-drawer .table thead th,
2634
+ .config-tree-rules-drawer .table tbody td {
2635
+ color: #000 !important;
2636
+ background: #fff !important;
2637
+ }
2638
+ .config-tree-rules-drawer .modal-title,
2639
+ .config-tree-rules-drawer h6,
2640
+ .config-tree-rules-drawer th,
2641
+ .config-tree-rules-drawer td,
2642
+ .config-tree-rules-drawer strong,
2643
+ .config-tree-rules-drawer .config-key-sample-text,
2644
+ .config-tree-rules-drawer .config-key-sample-empty,
2645
+ .config-tree-rules-drawer .form-control {
2646
+ color: #000 !important;
2647
+ }
2648
+ .config-tree-rules-drawer .config-key-convention-text {
2649
+ min-width: 720px;
2650
+ padding: 1rem;
2651
+ color: #000;
2652
+ background: #f8f8f8;
2653
+ border: 1px solid #ebe9f1;
2654
+ border-radius: 0.357rem;
2655
+ font-family: monospace;
2656
+ font-size: 12px;
2657
+ line-height: 1.55;
2658
+ white-space: pre-wrap;
2659
+ overflow-wrap: anywhere;
2660
+ }
2661
+ .config-tree-rules-drawer .config-key-sample-text {
2662
+ padding: 0;
2663
+ background: transparent !important;
2664
+ font-family: monospace;
2665
+ font-size: 12px;
2666
+ overflow-wrap: anywhere;
2667
+ }
2668
+ .config-tree-rules-drawer .config-key-sample-copy-row {
2669
+ display: flex;
2670
+ align-items: center;
2671
+ justify-content: space-between;
2672
+ gap: 8px;
2673
+ }
2674
+ .config-tree-rules-drawer .config-key-sample-copy-row + .config-key-sample-copy-row {
2675
+ margin-top: 2px;
2676
+ }
2677
+ .config-tree-rules-drawer .config-key-sample-copy-button {
2678
+ display: inline-flex;
2679
+ flex: 0 0 28px;
2680
+ width: 28px;
2681
+ height: 28px;
2682
+ align-items: center;
2683
+ justify-content: center;
2684
+ padding: 0;
2685
+ color: #000;
2686
+ background: transparent;
2687
+ border: 0;
2688
+ border-radius: 4px;
2689
+ cursor: pointer;
2690
+ }
2691
+ .config-tree-rules-drawer .config-key-sample-copy-button:hover {
2692
+ background: #f2f2f2;
2693
+ }
2694
+ .config-tree-rules-drawer .config-key-sample-copy-button:focus-visible {
2695
+ outline: 2px solid #000;
2696
+ outline-offset: 1px;
2697
+ }
2698
+ .config-tree-rules-drawer .form-control::placeholder {
2699
+ color: #000;
2700
+ opacity: 1;
2701
+ }
2702
+ .config-tree-rules-drawer .select__single-value,
2703
+ .config-tree-rules-drawer .select__placeholder,
2704
+ .config-tree-rules-drawer .select__input-container,
2705
+ .config-tree-rules-drawer .select__option {
2706
+ color: #000 !important;
2707
+ }
2708
+ @charset "UTF-8";
2709
+ .bx-appearance-page {
2710
+ min-height: 0;
2711
+ }
2712
+
2713
+ .bx-appearance-page .becoxy-settings-page__fit,
2714
+ .bx-appearance-page .becoxy-settings-page__content--fit {
2715
+ min-height: 0;
2716
+ overflow: hidden;
2717
+ }
2718
+
2719
+ .bx-appearance-page .becoxy-settings-page__content--fit {
2720
+ padding-bottom: var(--be-settings-block-padding);
2721
+ }
2722
+
2723
+ .bx-appearance-page .bx-appearance-workspace {
2724
+ --bx-settings-width: 60%;
2725
+ --bx-preview-width: 40%;
2726
+ display: grid;
2727
+ flex: 1 1 auto;
2728
+ grid-template-columns: minmax(0, var(--bx-settings-width)) minmax(0, var(--bx-preview-width));
2729
+ width: 100%;
2730
+ min-width: 0;
2731
+ height: 100%;
2732
+ min-height: 0;
2733
+ gap: 0;
2734
+ align-items: stretch;
2735
+ overflow: hidden;
2736
+ background: var(--be-surface);
2737
+ border: 1px solid var(--be-border);
2738
+ }
2739
+
2740
+ .bx-appearance-page .bx-appearance-workspace.is-settings-expanded {
2741
+ --bx-settings-width: 72%;
2742
+ --bx-preview-width: 28%;
2743
+ }
2744
+
2745
+ .bx-appearance-page .bx-appearance-workspace.is-preview-expanded {
2746
+ --bx-settings-width: 40%;
2747
+ --bx-preview-width: 60%;
2748
+ }
2749
+
2750
+ .bx-appearance-page .bx-appearance-workspace.is-settings-collapsed {
2751
+ grid-template-columns: 42px minmax(0, 1fr);
2752
+ }
2753
+
2754
+ .bx-appearance-page .bx-appearance-workspace.is-preview-collapsed {
2755
+ grid-template-columns: minmax(0, 1fr) 42px;
2756
+ }
2757
+
2758
+ .bx-appearance-settings-panel,
2759
+ .bx-appearance-preview-panel {
2760
+ display: flex;
2761
+ min-width: 0;
2762
+ min-height: 0;
2763
+ flex-direction: column;
2764
+ overflow: hidden;
2765
+ background: var(--be-surface);
2766
+ }
2767
+
2768
+ .bx-appearance-settings-panel {
2769
+ border-right: 1px solid var(--be-border);
2770
+ }
2771
+
2772
+ .bx-appearance-settings-panel__toolbar {
2773
+ display: flex;
2774
+ flex: 0 0 42px;
2775
+ align-items: center;
2776
+ justify-content: space-between;
2777
+ min-width: 0;
2778
+ height: 42px;
2779
+ padding-inline: 8px;
2780
+ color: var(--be-text-primary);
2781
+ background: var(--be-surface-secondary);
2782
+ border-bottom: 1px solid var(--be-border);
2783
+ }
2784
+
2785
+ .bx-appearance-settings-panel__title {
2786
+ display: flex;
2787
+ min-width: 0;
2788
+ align-items: baseline;
2789
+ gap: 8px;
2790
+ }
2791
+
2792
+ .bx-appearance-settings-panel__title small {
2793
+ color: var(--be-text-muted);
2794
+ font-size: var(--be-small-font-size);
2795
+ }
2796
+
2797
+ .bx-appearance-settings-scroll {
2798
+ flex: 1 1 auto;
2799
+ width: 100%;
2800
+ min-width: 0;
2801
+ min-height: 0;
2802
+ overflow-x: hidden;
2803
+ overflow-y: auto;
2804
+ overscroll-behavior: contain;
2805
+ scrollbar-gutter: stable;
2806
+ }
2807
+
2808
+ .bx-appearance-settings-scroll > .bx-appearance-controls {
2809
+ min-height: min-content;
2810
+ }
2811
+
2812
+ .bx-appearance-preview-panel {
2813
+ position: relative;
2814
+ }
2815
+
2816
+ .bx-appearance-page .bx-appearance-preview-panel > .bx-appearance-preview {
2817
+ position: static;
2818
+ top: auto;
2819
+ display: flex;
2820
+ flex: 1 1 auto;
2821
+ flex-direction: column;
2822
+ width: 100%;
2823
+ min-width: 0;
2824
+ height: 100%;
2825
+ min-height: 0;
2826
+ padding: 10px;
2827
+ overflow: hidden;
2828
+ border: 0;
2829
+ border-radius: 0;
2830
+ box-shadow: none;
2831
+ }
2832
+
2833
+ .bx-appearance-page .bx-appearance-preview:not(.is-fullscreen) .bx-appearance-preview__header {
2834
+ flex: 0 0 auto;
2835
+ }
2836
+
2837
+ .bx-appearance-page .bx-appearance-preview:not(.is-fullscreen) .bx-appearance-preview__body {
2838
+ display: flex;
2839
+ flex: 1 1 auto;
2840
+ flex-direction: column;
2841
+ min-width: 0;
2842
+ min-height: 0;
2843
+ overflow: hidden;
2844
+ }
2845
+
2846
+ .bx-appearance-page .bx-appearance-preview:not(.is-fullscreen) .bx-appearance-preview__stage {
2847
+ flex: 1 1 auto;
2848
+ min-height: 220px;
2849
+ overflow: auto;
2850
+ overscroll-behavior: contain;
2851
+ }
2852
+
2853
+ .bx-appearance-page .bx-appearance-preview:not(.is-fullscreen) .bx-appearance-preview__details {
2854
+ flex: 0 1 auto;
2855
+ max-height: 34%;
2856
+ overflow: auto;
2857
+ }
2858
+
2859
+ .bx-appearance-panel-actions {
2860
+ display: inline-flex;
2861
+ align-items: center;
2862
+ gap: 4px;
2863
+ }
2864
+
2865
+ .bx-appearance-panel-action,
2866
+ .bx-appearance-preview__devices .bx-appearance-panel-action {
2867
+ display: inline-grid;
2868
+ width: 30px;
2869
+ height: 28px;
2870
+ place-items: center;
2871
+ padding: 0;
2872
+ color: var(--be-text-secondary);
2873
+ background: var(--be-surface);
2874
+ border: 1px solid var(--be-border);
2875
+ border-radius: var(--be-input-radius);
2876
+ }
2877
+
2878
+ .bx-appearance-panel-action:hover:not(:disabled),
2879
+ .bx-appearance-panel-action.active,
2880
+ .bx-appearance-preview__devices .bx-appearance-panel-action:hover:not(:disabled),
2881
+ .bx-appearance-preview__devices .bx-appearance-panel-action.active {
2882
+ color: var(--be-primary);
2883
+ background: var(--be-primary-soft);
2884
+ border-color: var(--be-primary);
2885
+ }
2886
+
2887
+ .bx-appearance-panel-action:disabled,
2888
+ .bx-appearance-preview__devices .bx-appearance-panel-action:disabled {
2889
+ cursor: default;
2890
+ opacity: 0.55;
2891
+ }
2892
+
2893
+ .bx-appearance-panel-rail {
2894
+ display: none;
2895
+ flex: 1 1 auto;
2896
+ align-items: center;
2897
+ flex-direction: column;
2898
+ gap: 8px;
2899
+ padding-top: 8px;
2900
+ background: var(--be-surface);
2901
+ }
2902
+
2903
+ .bx-appearance-panel-rail > span {
2904
+ writing-mode: vertical-rl;
2905
+ color: var(--be-text-secondary);
2906
+ font-weight: 600;
2907
+ letter-spacing: 0.3px;
2908
+ transform: rotate(180deg);
2909
+ }
2910
+
2911
+ .bx-appearance-workspace.is-settings-collapsed .bx-appearance-settings-panel__toolbar,
2912
+ .bx-appearance-workspace.is-settings-collapsed .bx-appearance-settings-scroll {
2913
+ display: none;
2914
+ }
2915
+
2916
+ .bx-appearance-workspace.is-settings-collapsed .bx-appearance-settings-panel .bx-appearance-panel-rail,
2917
+ .bx-appearance-workspace.is-preview-collapsed .bx-appearance-preview-panel .bx-appearance-panel-rail {
2918
+ display: flex;
2919
+ }
2920
+
2921
+ .bx-appearance-workspace.is-preview-collapsed .bx-appearance-preview-panel > .bx-appearance-preview {
2922
+ display: none;
2923
+ }
2924
+
2925
+ .bx-setting-section-toggle {
2926
+ display: inline-grid;
2927
+ width: 28px;
2928
+ height: 27px;
2929
+ place-items: center;
2930
+ padding: 0;
2931
+ color: var(--be-text-muted);
2932
+ background: transparent;
2933
+ border: 1px solid transparent;
2934
+ border-radius: var(--be-input-radius);
2935
+ }
2936
+
2937
+ .bx-setting-section-toggle:hover {
2938
+ color: var(--be-primary);
2939
+ background: var(--be-surface);
2940
+ border-color: var(--be-border);
2941
+ }
2942
+
2943
+ .bx-setting-section-toggle svg {
2944
+ transition: transform var(--be-transition-duration);
2945
+ }
2946
+
2947
+ .bx-setting-section-toggle svg.is-collapsed {
2948
+ transform: rotate(-90deg);
2949
+ }
2950
+
2951
+ .bx-appearance-preview__status {
2952
+ display: flex;
2953
+ flex: 0 0 30px;
2954
+ align-items: center;
2955
+ gap: 6px;
2956
+ min-height: 30px;
2957
+ margin-top: 8px;
2958
+ padding-inline: 8px;
2959
+ color: var(--be-text-muted);
2960
+ font-size: calc(var(--be-small-font-size) - 1px);
2961
+ background: var(--be-surface-secondary);
2962
+ border: 1px solid var(--be-border);
2963
+ border-radius: var(--be-input-radius);
2964
+ }
2965
+
2966
+ .bx-appearance-preview__status-dot {
2967
+ flex: 0 0 7px;
2968
+ width: 7px;
2969
+ height: 7px;
2970
+ background: var(--be-success);
2971
+ border-radius: 50%;
2972
+ }
2973
+
2974
+ .bx-appearance-controls {
2975
+ display: flex;
2976
+ min-width: 0;
2977
+ flex-direction: column;
2978
+ gap: var(--be-card-gap);
2979
+ }
2980
+
2981
+ .bx-appearance-form-grid {
2982
+ display: grid;
2983
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2984
+ gap: var(--be-card-gap);
2985
+ }
2986
+
2987
+ .bx-appearance-form-grid--3 {
2988
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2989
+ }
2990
+
2991
+ .bx-appearance-color-fields {
2992
+ display: grid;
2993
+ grid-template-columns: repeat(2, minmax(0, 1fr));
2994
+ gap: 10px;
2995
+ }
2996
+
2997
+ .bx-appearance-color-fields .mb-1 {
2998
+ margin-bottom: 0 !important;
2999
+ }
3000
+
3001
+ .bx-appearance-primary-palette {
3002
+ display: grid;
3003
+ grid-template-columns: repeat(10, minmax(28px, 1fr));
3004
+ gap: 8px;
3005
+ margin-bottom: 12px;
3006
+ }
3007
+
3008
+ .bx-appearance-primary-palette button {
3009
+ position: relative;
3010
+ aspect-ratio: 1;
3011
+ min-height: 30px;
3012
+ padding: 0;
3013
+ border: 2px solid var(--be-surface);
3014
+ border-radius: var(--be-input-radius);
3015
+ box-shadow: 0 0 0 1px var(--be-border);
3016
+ }
3017
+
3018
+ .bx-appearance-primary-palette button.active::after {
3019
+ position: absolute;
3020
+ inset: 0;
3021
+ display: grid;
3022
+ place-items: center;
3023
+ color: #fff;
3024
+ font-weight: 700;
3025
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.65);
3026
+ content: "✓";
3027
+ }
3028
+
3029
+ .bx-appearance-theme-grid {
3030
+ display: grid;
3031
+ grid-template-columns: repeat(5, minmax(0, 1fr));
3032
+ gap: 8px;
3033
+ }
3034
+
3035
+ .bx-appearance-theme-card {
3036
+ position: relative;
3037
+ min-width: 0;
3038
+ padding: 8px;
3039
+ color: var(--be-text-primary);
3040
+ text-align: left;
3041
+ background: var(--be-surface);
3042
+ border: 1px solid var(--be-border);
3043
+ border-radius: var(--be-card-radius);
3044
+ transition: border-color var(--be-transition-duration), box-shadow var(--be-transition-duration);
3045
+ }
3046
+
3047
+ .bx-appearance-theme-card:hover,
3048
+ .bx-appearance-theme-card.active {
3049
+ border-color: var(--be-primary);
3050
+ box-shadow: 0 0 0 2px rgba(var(--be-primary-rgb), 0.12);
3051
+ }
3052
+
3053
+ .bx-appearance-theme-card__mini {
3054
+ display: grid;
3055
+ grid-template-columns: 24% 1fr;
3056
+ height: 64px;
3057
+ overflow: hidden;
3058
+ background: var(--theme-background);
3059
+ border: 1px solid var(--theme-border);
3060
+ border-radius: calc(var(--be-card-radius) - 2px);
3061
+ }
3062
+
3063
+ .bx-appearance-theme-card__sidebar {
3064
+ background: var(--theme-sidebar);
3065
+ }
3066
+
3067
+ .bx-appearance-theme-card__content {
3068
+ padding: 6px;
3069
+ }
3070
+
3071
+ .bx-appearance-theme-card__navbar,
3072
+ .bx-appearance-theme-card__primary,
3073
+ .bx-appearance-theme-card__surface {
3074
+ display: block;
3075
+ border-radius: 3px;
3076
+ }
3077
+
3078
+ .bx-appearance-theme-card__navbar {
3079
+ height: 8px;
3080
+ margin-bottom: 5px;
3081
+ background: var(--theme-surface);
3082
+ }
3083
+
3084
+ .bx-appearance-theme-card__primary {
3085
+ width: 55%;
3086
+ height: 5px;
3087
+ margin-bottom: 5px;
3088
+ background: var(--theme-primary);
3089
+ }
3090
+
3091
+ .bx-appearance-theme-card__surfaces {
3092
+ display: grid;
3093
+ grid-template-columns: 1fr 1fr;
3094
+ gap: 4px;
3095
+ }
3096
+
3097
+ .bx-appearance-theme-card__surface {
3098
+ height: 22px;
3099
+ background: var(--theme-surface);
3100
+ border: 1px solid var(--theme-border);
3101
+ }
3102
+
3103
+ .bx-appearance-theme-card strong,
3104
+ .bx-appearance-theme-card small {
3105
+ display: block;
3106
+ overflow: hidden;
3107
+ text-overflow: ellipsis;
3108
+ white-space: nowrap;
3109
+ }
3110
+
3111
+ .bx-appearance-theme-card strong {
3112
+ margin-top: 6px;
3113
+ color: var(--be-heading-text);
3114
+ font-size: var(--be-small-font-size);
3115
+ }
3116
+
3117
+ .bx-appearance-theme-card small {
3118
+ color: var(--be-text-muted);
3119
+ font-size: calc(var(--be-small-font-size) - 1px);
3120
+ }
3121
+
3122
+ .bx-appearance-preset-actions {
3123
+ display: flex;
3124
+ flex-wrap: wrap;
3125
+ gap: 8px;
3126
+ }
3127
+
3128
+ .bx-appearance-grid-color-readonly {
3129
+ display: flex;
3130
+ align-items: center;
3131
+ min-height: var(--be-control-height);
3132
+ padding: 4px 8px;
3133
+ color: var(--be-text-secondary);
3134
+ background: var(--be-disabled-background);
3135
+ border: 1px solid var(--be-border);
3136
+ border-radius: var(--be-input-radius);
3137
+ }
3138
+
3139
+ .bx-appearance-grid-color-readonly span {
3140
+ width: 28px;
3141
+ height: 24px;
3142
+ margin-right: 8px;
3143
+ border: 1px solid var(--be-border);
3144
+ border-radius: 4px;
3145
+ }
3146
+
3147
+ .bx-appearance-grid-color-readonly code {
3148
+ color: inherit;
3149
+ }
3150
+
3151
+ .bx-appearance-auto-note {
3152
+ margin-top: 10px;
3153
+ padding: 9px 10px;
3154
+ color: #166534;
3155
+ font-size: var(--be-small-font-size);
3156
+ background: #ecfdf5;
3157
+ border: 1px solid #a7f3d0;
3158
+ border-radius: var(--be-input-radius);
3159
+ }
3160
+
3161
+ .bx-appearance-number-field {
3162
+ display: grid;
3163
+ grid-template-columns: minmax(140px, 1fr) minmax(230px, 1.25fr);
3164
+ gap: 12px;
3165
+ align-items: center;
3166
+ min-height: 50px;
3167
+ padding-block: 6px;
3168
+ border-bottom: 1px dashed var(--be-border);
3169
+ }
3170
+
3171
+ .bx-appearance-number-field:last-child {
3172
+ border-bottom: 0;
3173
+ }
3174
+
3175
+ .bx-appearance-number-field__label small {
3176
+ display: block;
3177
+ margin-top: 2px;
3178
+ }
3179
+
3180
+ .bx-appearance-number-field__controls {
3181
+ display: grid;
3182
+ grid-template-columns: minmax(0, 1fr) 96px;
3183
+ gap: 8px;
3184
+ align-items: start;
3185
+ min-width: 0;
3186
+ }
3187
+
3188
+ .bx-appearance-number-field__input {
3189
+ position: relative;
3190
+ }
3191
+
3192
+ .bx-appearance-number-field__input.has-suffix .form-control {
3193
+ padding-right: 34px;
3194
+ }
3195
+
3196
+ .bx-appearance-number-field__suffix {
3197
+ position: absolute;
3198
+ top: 50%;
3199
+ right: 10px;
3200
+ color: var(--be-text-muted);
3201
+ font-size: var(--be-small-font-size);
3202
+ pointer-events: none;
3203
+ transform: translateY(-50%);
3204
+ }
3205
+
3206
+ .bx-appearance-locked-grid {
3207
+ display: grid;
3208
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3209
+ gap: 8px;
3210
+ }
3211
+
3212
+ .bx-appearance-locked-item {
3213
+ padding: 9px 10px;
3214
+ color: #854d0e;
3215
+ font-size: var(--be-small-font-size);
3216
+ background: #fffbeb;
3217
+ border: 1px solid #fde68a;
3218
+ border-radius: var(--be-input-radius);
3219
+ }
3220
+
3221
+ .bx-appearance-preview {
3222
+ position: static;
3223
+ min-width: 0;
3224
+ padding: 10px;
3225
+ color: var(--bx-preview-text);
3226
+ font-family: var(--bx-preview-font-family);
3227
+ font-size: var(--bx-preview-font-size);
3228
+ font-weight: var(--bx-preview-body-weight);
3229
+ line-height: var(--bx-preview-line-height);
3230
+ letter-spacing: var(--bx-preview-letter-spacing);
3231
+ background: var(--be-surface);
3232
+ border: 1px solid var(--be-border);
3233
+ border-radius: var(--be-card-radius);
3234
+ box-shadow: var(--be-card-shadow);
3235
+ }
3236
+
3237
+ .bx-appearance-preview *,
3238
+ .bx-appearance-preview button,
3239
+ .bx-appearance-preview input {
3240
+ box-sizing: border-box;
3241
+ font-family: inherit;
3242
+ }
3243
+
3244
+ .bx-appearance-preview__header {
3245
+ display: flex;
3246
+ align-items: flex-start;
3247
+ justify-content: space-between;
3248
+ gap: 10px;
3249
+ margin-bottom: 8px;
3250
+ }
3251
+
3252
+ .bx-appearance-preview__header strong,
3253
+ .bx-appearance-preview__header small {
3254
+ display: block;
3255
+ }
3256
+
3257
+ .bx-appearance-preview__header small {
3258
+ color: var(--be-text-muted);
3259
+ font-size: var(--be-small-font-size);
3260
+ }
3261
+
3262
+ .bx-appearance-preview__devices {
3263
+ display: flex;
3264
+ flex-wrap: wrap;
3265
+ gap: 4px;
3266
+ justify-content: flex-end;
3267
+ }
3268
+
3269
+ .bx-appearance-preview__devices button {
3270
+ height: 26px;
3271
+ padding-inline: 8px;
3272
+ color: var(--be-text-muted);
3273
+ font-size: 10px;
3274
+ font-weight: 600;
3275
+ background: var(--be-surface);
3276
+ border: 1px solid var(--be-border);
3277
+ border-radius: 6px;
3278
+ }
3279
+
3280
+ .bx-appearance-preview__devices button.active {
3281
+ color: var(--be-primary);
3282
+ background: var(--be-primary-soft);
3283
+ border-color: var(--be-primary);
3284
+ }
3285
+
3286
+ .bx-appearance-preview__stage {
3287
+ overflow: auto;
3288
+ padding: 8px;
3289
+ background: #eef2f7;
3290
+ border: 1px dashed var(--be-border);
3291
+ border-radius: var(--be-card-radius);
3292
+ }
3293
+
3294
+ .bx-appearance-preview__frame {
3295
+ width: 100%;
3296
+ min-width: 430px;
3297
+ margin-inline: auto;
3298
+ overflow: hidden;
3299
+ color: var(--bx-preview-text);
3300
+ background: var(--bx-preview-background);
3301
+ border: 1px solid var(--bx-preview-border);
3302
+ border-radius: 9px;
3303
+ box-shadow: 0 12px 34px rgba(15, 23, 42, 0.14);
3304
+ transition: width var(--bx-preview-transition);
3305
+ }
3306
+
3307
+ .bx-appearance-preview__frame.is-tablet {
3308
+ width: 78%;
3309
+ }
3310
+
3311
+ .bx-appearance-preview__frame.is-mobile {
3312
+ width: 54%;
3313
+ min-width: 315px;
3314
+ }
3315
+
3316
+ .bx-appearance-preview__navbar {
3317
+ position: relative;
3318
+ display: flex;
3319
+ align-items: center;
3320
+ gap: 7px;
3321
+ min-height: 36px;
3322
+ height: clamp(36px, var(--bx-preview-navbar-height) * 0.62, 54px);
3323
+ padding-inline: 9px;
3324
+ color: var(--bx-preview-navbar-text);
3325
+ background: var(--bx-preview-navbar);
3326
+ border-bottom: 1px solid var(--bx-preview-border);
3327
+ transition: var(--bx-preview-transition);
3328
+ }
3329
+
3330
+ .bx-appearance-preview__navbar > small {
3331
+ position: absolute;
3332
+ bottom: 2px;
3333
+ left: 50%;
3334
+ padding: 1px 4px;
3335
+ color: #fff;
3336
+ font-size: 7px;
3337
+ background: #0f172a;
3338
+ border-radius: 999px;
3339
+ transform: translateX(-50%);
3340
+ }
3341
+
3342
+ .bx-appearance-preview__logo {
3343
+ display: grid;
3344
+ place-items: center;
3345
+ width: 22px;
3346
+ height: 22px;
3347
+ color: var(--bx-preview-primary-text);
3348
+ font-size: 10px;
3349
+ font-weight: 800;
3350
+ background: var(--bx-preview-primary);
3351
+ border-radius: 5px;
3352
+ }
3353
+
3354
+ .bx-appearance-preview__navbar > strong {
3355
+ font-size: 9px;
3356
+ white-space: nowrap;
3357
+ }
3358
+
3359
+ .bx-appearance-preview__global-search {
3360
+ width: 124px;
3361
+ height: 21px;
3362
+ margin-left: 14px;
3363
+ background: var(--bx-preview-surface-secondary);
3364
+ border: 1px solid var(--bx-preview-input-border);
3365
+ border-radius: var(--bx-preview-input-radius);
3366
+ }
3367
+
3368
+ .bx-appearance-preview__navbar-icons {
3369
+ display: flex;
3370
+ gap: 5px;
3371
+ margin-left: auto;
3372
+ }
3373
+
3374
+ .bx-appearance-preview__navbar-icons i {
3375
+ display: grid;
3376
+ place-items: center;
3377
+ width: 15px;
3378
+ height: 15px;
3379
+ color: currentColor;
3380
+ font-size: 8px;
3381
+ font-style: normal;
3382
+ }
3383
+
3384
+ .bx-appearance-preview__shell {
3385
+ display: grid;
3386
+ grid-template-columns: clamp(68px, var(--bx-preview-sidebar-width) * 0.42, 132px) minmax(0, 1fr);
3387
+ min-height: 390px;
3388
+ transition: grid-template-columns var(--bx-preview-transition);
3389
+ }
3390
+
3391
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__shell {
3392
+ grid-template-columns: clamp(38px, var(--bx-preview-collapsed-width) * 0.58, 64px) minmax(0, 1fr);
3393
+ }
3394
+
3395
+ .bx-appearance-preview__sidebar {
3396
+ position: relative;
3397
+ padding: 8px 6px;
3398
+ overflow: hidden;
3399
+ color: var(--bx-preview-sidebar-text);
3400
+ background: var(--bx-preview-sidebar);
3401
+ border-right: 1px solid var(--bx-preview-border);
3402
+ }
3403
+
3404
+ .bx-appearance-preview__collapse {
3405
+ position: absolute;
3406
+ top: 4px;
3407
+ right: 3px;
3408
+ z-index: 2;
3409
+ display: grid;
3410
+ place-items: center;
3411
+ width: 15px;
3412
+ height: 15px;
3413
+ padding: 0;
3414
+ color: currentColor;
3415
+ font-size: 10px;
3416
+ background: transparent;
3417
+ border: 1px solid currentColor;
3418
+ border-radius: 50%;
3419
+ opacity: 0.65;
3420
+ }
3421
+
3422
+ .bx-appearance-preview__group-title {
3423
+ margin: 4px 5px var(--bx-preview-menu-group-spacing);
3424
+ overflow: hidden;
3425
+ color: var(--bx-preview-sidebar-muted);
3426
+ font-size: 7px;
3427
+ font-weight: 800;
3428
+ text-overflow: ellipsis;
3429
+ white-space: nowrap;
3430
+ }
3431
+
3432
+ .bx-appearance-preview__sidebar-caption {
3433
+ display: block;
3434
+ margin: -4px 5px 6px;
3435
+ overflow: hidden;
3436
+ color: var(--bx-preview-sidebar-muted);
3437
+ font-size: 7px;
3438
+ text-overflow: ellipsis;
3439
+ white-space: nowrap;
3440
+ }
3441
+
3442
+ .bx-appearance-preview__menu-item {
3443
+ display: flex;
3444
+ align-items: center;
3445
+ gap: 6px;
3446
+ min-height: 24px;
3447
+ height: clamp(24px, var(--bx-preview-menu-height) * 0.7, 38px);
3448
+ margin-bottom: 3px;
3449
+ padding-inline: 7px;
3450
+ overflow: hidden;
3451
+ color: currentColor;
3452
+ font-size: clamp(7px, var(--bx-preview-menu-font-size) * 0.66, 10px);
3453
+ font-weight: var(--bx-preview-menu-font-weight);
3454
+ border-radius: var(--bx-preview-menu-active-radius);
3455
+ white-space: nowrap;
3456
+ }
3457
+
3458
+ .bx-appearance-preview__menu-item.is-child {
3459
+ padding-left: calc(7px + var(--bx-preview-menu-indent) * 0.45);
3460
+ }
3461
+
3462
+ .bx-appearance-preview__menu-item i {
3463
+ flex: 0 0 auto;
3464
+ width: clamp(8px, var(--bx-preview-menu-icon-size) * 0.62, 15px);
3465
+ height: clamp(8px, var(--bx-preview-menu-icon-size) * 0.62, 15px);
3466
+ background: currentColor;
3467
+ border-radius: 3px;
3468
+ opacity: 0.25;
3469
+ }
3470
+
3471
+ .bx-appearance-preview__menu-item.is-active {
3472
+ color: var(--bx-preview-primary);
3473
+ font-weight: 700;
3474
+ background: var(--bx-preview-active);
3475
+ }
3476
+
3477
+ .bx-appearance-preview__menu-item.is-hovered:not(.is-active) {
3478
+ color: var(--bx-preview-sidebar-hover-text);
3479
+ background: var(--bx-preview-sidebar-hover);
3480
+ }
3481
+
3482
+ .bx-appearance-preview__menu-item.is-active.is-left-border {
3483
+ background: transparent;
3484
+ box-shadow: inset 3px 0 0 var(--bx-preview-primary);
3485
+ }
3486
+
3487
+ .bx-appearance-preview__menu-item.is-active.is-text-only {
3488
+ background: transparent;
3489
+ box-shadow: none;
3490
+ }
3491
+
3492
+ .bx-appearance-preview__sidebar-measure {
3493
+ position: absolute;
3494
+ right: 3px;
3495
+ bottom: 3px;
3496
+ padding: 1px 4px;
3497
+ color: #fff;
3498
+ font-size: 7px;
3499
+ background: #0f172a;
3500
+ border-radius: 999px;
3501
+ }
3502
+
3503
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__group-title,
3504
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__sidebar-caption,
3505
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__menu-item span {
3506
+ display: none;
3507
+ }
3508
+
3509
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__menu-item {
3510
+ justify-content: center;
3511
+ padding: 0;
3512
+ }
3513
+
3514
+ .bx-appearance-preview__content {
3515
+ min-width: 0;
3516
+ padding: clamp(4px, var(--bx-preview-content-padding) * 0.75, 22px);
3517
+ background: var(--bx-preview-background);
3518
+ }
3519
+
3520
+ .bx-appearance-preview__title-row {
3521
+ display: flex;
3522
+ align-items: flex-start;
3523
+ justify-content: space-between;
3524
+ gap: 8px;
3525
+ margin-bottom: clamp(5px, var(--bx-preview-section-gap), 24px);
3526
+ }
3527
+
3528
+ .bx-appearance-preview__title-row h2 {
3529
+ margin: 0;
3530
+ color: var(--bx-preview-heading);
3531
+ font-size: clamp(10px, var(--bx-preview-page-title-size) * 0.55, 16px);
3532
+ font-weight: var(--bx-preview-page-title-weight);
3533
+ }
3534
+
3535
+ .bx-appearance-preview__title-row small {
3536
+ display: block;
3537
+ color: var(--bx-preview-muted);
3538
+ font-size: clamp(7px, var(--bx-preview-small-size) * 0.58, 10px);
3539
+ }
3540
+
3541
+ .bx-appearance-preview__title-row button,
3542
+ .bx-appearance-preview__toolbar button {
3543
+ height: clamp(22px, var(--bx-preview-button-height) * 0.72, 34px);
3544
+ padding-inline: calc(var(--bx-preview-button-padding) * 0.55);
3545
+ color: var(--bx-preview-primary-text);
3546
+ font-size: 8px;
3547
+ background: var(--bx-preview-primary);
3548
+ border: 1px solid var(--bx-preview-primary);
3549
+ border-radius: var(--bx-preview-button-radius);
3550
+ }
3551
+
3552
+ .bx-appearance-preview__toolbar {
3553
+ display: flex;
3554
+ gap: 6px;
3555
+ margin-bottom: clamp(5px, var(--bx-preview-section-gap), 24px);
3556
+ padding: 6px;
3557
+ overflow: hidden;
3558
+ background: var(--bx-preview-surface);
3559
+ border: 1px solid var(--bx-preview-border);
3560
+ border-radius: var(--bx-preview-card-radius);
3561
+ }
3562
+
3563
+ .bx-appearance-preview__toolbar > div {
3564
+ display: flex;
3565
+ align-items: center;
3566
+ height: clamp(22px, var(--bx-preview-control-height) * 0.68, 34px);
3567
+ padding-inline: 6px;
3568
+ overflow: hidden;
3569
+ color: var(--bx-preview-muted);
3570
+ font-size: 7px;
3571
+ background: var(--bx-preview-surface);
3572
+ border: 1px solid var(--bx-preview-input-border);
3573
+ border-radius: var(--bx-preview-input-radius);
3574
+ text-overflow: ellipsis;
3575
+ white-space: nowrap;
3576
+ }
3577
+
3578
+ .bx-appearance-preview__toolbar .is-search {
3579
+ flex: 0 1 42%;
3580
+ }
3581
+
3582
+ .bx-appearance-preview__toolbar .is-filter {
3583
+ flex: 0 1 28%;
3584
+ }
3585
+
3586
+ .bx-appearance-preview__toolbar button {
3587
+ flex: 0 0 auto;
3588
+ margin-left: auto;
3589
+ }
3590
+
3591
+ .bx-appearance-preview__gutter-sample {
3592
+ display: grid;
3593
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3594
+ gap: clamp(3px, var(--bx-preview-gutter) * 0.55, 20px);
3595
+ margin-bottom: clamp(5px, var(--bx-preview-section-gap), 24px);
3596
+ }
3597
+
3598
+ .bx-appearance-preview__gutter-sample span {
3599
+ display: grid;
3600
+ min-height: 24px;
3601
+ place-items: center;
3602
+ padding: 4px 6px;
3603
+ overflow: hidden;
3604
+ color: var(--bx-preview-text-secondary);
3605
+ font-size: 7px;
3606
+ background: var(--bx-preview-surface-secondary);
3607
+ border: 1px solid var(--bx-preview-border);
3608
+ border-radius: var(--bx-preview-input-radius);
3609
+ text-align: center;
3610
+ text-overflow: ellipsis;
3611
+ white-space: nowrap;
3612
+ }
3613
+
3614
+ .bx-appearance-preview__grid {
3615
+ overflow: hidden;
3616
+ color: var(--bx-preview-grid-text);
3617
+ font-size: var(--bx-preview-grid-font-size);
3618
+ background: var(--bx-preview-grid-background);
3619
+ border: var(--bx-preview-grid-border-width) solid var(--bx-preview-grid-border);
3620
+ border-radius: var(--bx-preview-grid-radius);
3621
+ box-shadow: var(--bx-preview-grid-shadow);
3622
+ }
3623
+
3624
+ .bx-appearance-preview__grid-row {
3625
+ display: grid;
3626
+ grid-template-columns: 34px 1.05fr 1.4fr 0.9fr 0.8fr;
3627
+ min-height: var(--bx-preview-grid-row-height);
3628
+ color: var(--bx-preview-grid-text);
3629
+ border-bottom: var(--bx-preview-grid-border-horizontal-width) solid var(--bx-preview-grid-border);
3630
+ }
3631
+
3632
+ .bx-appearance-preview__grid-row.is-header {
3633
+ min-height: var(--bx-preview-grid-header-height);
3634
+ padding: 0;
3635
+ color: var(--bx-preview-grid-header-text);
3636
+ font-weight: var(--bx-preview-grid-header-weight);
3637
+ background: var(--bx-preview-grid-header-background);
3638
+ }
3639
+
3640
+ .bx-appearance-preview__grid-row.is-fixed {
3641
+ height: var(--bx-preview-grid-row-height);
3642
+ }
3643
+
3644
+ .bx-appearance-preview__grid-row.is-auto {
3645
+ height: auto;
3646
+ min-height: var(--bx-preview-grid-row-height);
3647
+ }
3648
+
3649
+ .bx-appearance-preview__grid-row.is-striped {
3650
+ background: var(--bx-preview-grid-striped);
3651
+ }
3652
+
3653
+ .bx-appearance-preview__grid-row.is-hover-demo {
3654
+ background: var(--bx-preview-grid-hover);
3655
+ }
3656
+
3657
+ .bx-appearance-preview__grid-row.is-selected {
3658
+ color: var(--bx-preview-grid-selected-text);
3659
+ background: var(--bx-preview-grid-selected);
3660
+ }
3661
+
3662
+ .bx-appearance-preview__grid-row > span {
3663
+ display: flex;
3664
+ min-width: 0;
3665
+ align-items: center;
3666
+ align-self: stretch;
3667
+ padding: var(--bx-preview-grid-cell-padding-y) var(--bx-preview-grid-cell-padding-x);
3668
+ overflow: hidden;
3669
+ color: inherit;
3670
+ font-size: var(--bx-preview-grid-font-size);
3671
+ border-right: var(--bx-preview-grid-border-vertical-width) solid var(--bx-preview-grid-border);
3672
+ text-overflow: ellipsis;
3673
+ white-space: nowrap;
3674
+ }
3675
+
3676
+ .bx-appearance-preview__grid-row > span:last-child {
3677
+ border-right: 0;
3678
+ }
3679
+
3680
+ .bx-appearance-preview__grid-row.is-header > span {
3681
+ padding: var(--bx-preview-grid-header-padding-y) var(--bx-preview-grid-header-padding-x);
3682
+ }
3683
+
3684
+ .bx-appearance-preview__grid-row .is-wrap {
3685
+ white-space: normal;
3686
+ overflow-wrap: anywhere;
3687
+ }
3688
+
3689
+ .bx-appearance-preview__grid-row .is-active-cell {
3690
+ background: var(--bx-preview-grid-active-cell);
3691
+ }
3692
+
3693
+ .bx-appearance-preview__grid-row b {
3694
+ display: inline-flex;
3695
+ align-items: center;
3696
+ min-height: 17px;
3697
+ padding-inline: 5px;
3698
+ color: var(--bx-preview-success-text);
3699
+ font-size: 7px;
3700
+ background: var(--bx-preview-success);
3701
+ border-radius: 999px;
3702
+ }
3703
+
3704
+ .bx-appearance-preview__person-template {
3705
+ display: flex;
3706
+ min-width: 0;
3707
+ align-items: center;
3708
+ gap: 6px;
3709
+ }
3710
+
3711
+ .bx-appearance-preview__person-template > i {
3712
+ display: grid;
3713
+ flex: 0 0 24px;
3714
+ width: 24px;
3715
+ height: 24px;
3716
+ place-items: center;
3717
+ color: var(--bx-preview-primary-text);
3718
+ font-size: 8px;
3719
+ font-style: normal;
3720
+ background: var(--bx-preview-primary);
3721
+ border-radius: 50%;
3722
+ }
3723
+
3724
+ .bx-appearance-preview__person-template > span {
3725
+ display: flex;
3726
+ min-width: 0;
3727
+ flex-direction: column;
3728
+ }
3729
+
3730
+ .bx-appearance-preview__person-template strong,
3731
+ .bx-appearance-preview__person-template small {
3732
+ overflow: hidden;
3733
+ text-overflow: ellipsis;
3734
+ white-space: nowrap;
3735
+ }
3736
+
3737
+ .bx-appearance-preview__person-template small {
3738
+ color: inherit;
3739
+ opacity: 0.75;
3740
+ }
3741
+
3742
+ .bx-appearance-preview__grid-group {
3743
+ display: flex;
3744
+ min-height: var(--bx-preview-grid-row-height);
3745
+ align-items: center;
3746
+ padding: var(--bx-preview-grid-cell-padding-y) var(--bx-preview-grid-cell-padding-x);
3747
+ color: var(--bx-preview-grid-group-text);
3748
+ background: var(--bx-preview-grid-group-background);
3749
+ border-bottom: var(--bx-preview-grid-border-horizontal-width) solid var(--bx-preview-grid-border);
3750
+ }
3751
+
3752
+ .bx-appearance-preview__grid-cases {
3753
+ display: flex;
3754
+ flex-wrap: wrap;
3755
+ gap: 4px;
3756
+ margin-bottom: 6px;
3757
+ }
3758
+
3759
+ .bx-appearance-preview__grid-cases button {
3760
+ min-height: 24px;
3761
+ padding: 2px 7px;
3762
+ color: var(--bx-preview-text-secondary);
3763
+ font-size: 7px;
3764
+ background: var(--bx-preview-surface);
3765
+ border: 1px solid var(--bx-preview-border);
3766
+ border-radius: var(--bx-preview-input-radius);
3767
+ }
3768
+
3769
+ .bx-appearance-preview__grid-cases button.active {
3770
+ color: var(--bx-preview-primary-text);
3771
+ background: var(--bx-preview-primary);
3772
+ border-color: var(--bx-preview-primary);
3773
+ }
3774
+
3775
+ .bx-appearance-preview__pager {
3776
+ display: flex;
3777
+ align-items: center;
3778
+ justify-content: space-between;
3779
+ gap: 8px;
3780
+ min-height: var(--bx-preview-grid-pager-height);
3781
+ padding-inline: var(--bx-preview-grid-cell-padding-x);
3782
+ color: var(--bx-preview-grid-footer-text);
3783
+ font-size: var(--bx-preview-grid-font-size);
3784
+ background: var(--bx-preview-grid-footer-background);
3785
+ }
3786
+
3787
+ .bx-appearance-preview__pager > span:last-child {
3788
+ display: flex;
3789
+ gap: 3px;
3790
+ }
3791
+
3792
+ .bx-appearance-preview__pager i {
3793
+ display: grid;
3794
+ place-items: center;
3795
+ width: 16px;
3796
+ height: 16px;
3797
+ font-style: normal;
3798
+ border: var(--bx-preview-grid-border-width) solid var(--bx-preview-grid-border);
3799
+ border-radius: 4px;
3800
+ }
3801
+
3802
+ .bx-appearance-preview__pager i.active {
3803
+ color: var(--bx-preview-primary-text);
3804
+ background: var(--bx-preview-primary);
3805
+ border-color: var(--bx-preview-primary);
3806
+ }
3807
+
3808
+ .bx-appearance-preview__footer {
3809
+ display: flex;
3810
+ align-items: center;
3811
+ justify-content: center;
3812
+ min-height: 22px;
3813
+ height: clamp(22px, var(--bx-preview-footer-height) * 0.6, 44px);
3814
+ color: var(--bx-preview-muted);
3815
+ font-size: 7px;
3816
+ background: var(--bx-preview-surface);
3817
+ border-top: 1px solid var(--bx-preview-border);
3818
+ }
3819
+
3820
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__global-search,
3821
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__navbar > strong {
3822
+ display: none;
3823
+ }
3824
+
3825
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__shell {
3826
+ grid-template-columns: 42px minmax(0, 1fr);
3827
+ }
3828
+
3829
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__group-title,
3830
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__sidebar-caption,
3831
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__menu-item span {
3832
+ display: none;
3833
+ }
3834
+
3835
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__menu-item {
3836
+ justify-content: center;
3837
+ padding: 0;
3838
+ }
3839
+
3840
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__toolbar .is-filter:nth-of-type(3) {
3841
+ display: none;
3842
+ }
3843
+
3844
+ .bx-appearance-preview__frame.is-compact .bx-appearance-preview__menu-item {
3845
+ height: min(28px, var(--bx-preview-menu-height));
3846
+ }
3847
+
3848
+ .bx-appearance-preview__frame.is-reduced-motion * {
3849
+ transition-duration: 0ms !important;
3850
+ }
3851
+
3852
+ .bx-appearance-preview .is-inspecting {
3853
+ position: relative;
3854
+ z-index: 2;
3855
+ outline: 2px solid #2563eb !important;
3856
+ outline-offset: -2px;
3857
+ box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12) !important;
3858
+ }
3859
+
3860
+ .bx-appearance-preview__color-grid {
3861
+ display: grid;
3862
+ grid-template-columns: repeat(4, minmax(0, 1fr));
3863
+ gap: 6px;
3864
+ margin-top: 8px;
3865
+ }
3866
+
3867
+ .bx-appearance-preview__color-grid > div {
3868
+ display: flex;
3869
+ min-height: 46px;
3870
+ flex-direction: column;
3871
+ align-items: center;
3872
+ justify-content: center;
3873
+ gap: 1px;
3874
+ padding: 5px;
3875
+ text-align: center;
3876
+ border-radius: 6px;
3877
+ }
3878
+
3879
+ .bx-appearance-preview__color-grid strong,
3880
+ .bx-appearance-preview__color-grid small {
3881
+ display: block;
3882
+ }
3883
+
3884
+ .bx-appearance-preview__color-grid strong {
3885
+ font-size: 8px;
3886
+ }
3887
+
3888
+ .bx-appearance-preview__color-grid small {
3889
+ font-size: 7px;
3890
+ opacity: 0.85;
3891
+ }
3892
+
3893
+ .bx-appearance-preview__metrics {
3894
+ display: grid;
3895
+ grid-template-columns: repeat(6, minmax(0, 1fr));
3896
+ gap: 5px;
3897
+ margin-top: 8px;
3898
+ }
3899
+
3900
+ .bx-appearance-preview__metrics > div {
3901
+ padding: 6px 4px;
3902
+ text-align: center;
3903
+ background: var(--bx-preview-surface);
3904
+ border: 1px solid var(--bx-preview-border);
3905
+ border-radius: 6px;
3906
+ }
3907
+
3908
+ .bx-appearance-preview__metrics small,
3909
+ .bx-appearance-preview__metrics strong {
3910
+ display: block;
3911
+ }
3912
+
3913
+ .bx-appearance-preview__metrics small {
3914
+ color: var(--bx-preview-muted);
3915
+ font-size: 7px;
3916
+ }
3917
+
3918
+ .bx-appearance-preview__metrics strong {
3919
+ color: var(--bx-preview-heading);
3920
+ font-size: 8px;
3921
+ }
3922
+
3923
+ .bx-appearance-preview__component-grid {
3924
+ display: grid;
3925
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3926
+ gap: 6px;
3927
+ margin-top: 8px;
3928
+ }
3929
+
3930
+ .bx-appearance-preview__component-card {
3931
+ position: relative;
3932
+ min-width: 0;
3933
+ padding: var(--bx-preview-card-padding);
3934
+ background: var(--bx-preview-surface);
3935
+ border: 1px solid var(--bx-preview-border);
3936
+ border-radius: var(--bx-preview-card-radius);
3937
+ box-shadow: var(--be-card-shadow);
3938
+ }
3939
+
3940
+ .bx-appearance-preview__component-card h3,
3941
+ .bx-appearance-preview__component-card h4,
3942
+ .bx-appearance-preview__component-card p {
3943
+ margin: 0 0 5px;
3944
+ }
3945
+
3946
+ .bx-appearance-preview__component-card h3 {
3947
+ color: var(--bx-preview-heading);
3948
+ font-size: calc(var(--bx-preview-section-title-size) * 0.62);
3949
+ font-weight: var(--bx-preview-section-title-weight);
3950
+ }
3951
+
3952
+ .bx-appearance-preview__component-card h4 {
3953
+ color: var(--bx-preview-heading);
3954
+ font-size: calc(var(--bx-preview-card-title-size) * 0.72);
3955
+ font-weight: var(--bx-preview-card-title-weight);
3956
+ }
3957
+
3958
+ .bx-appearance-preview__component-card p {
3959
+ color: var(--bx-preview-text-secondary);
3960
+ font-size: calc(var(--bx-preview-font-size) * 0.64);
3961
+ }
3962
+
3963
+ .bx-appearance-preview__component-card label {
3964
+ display: block;
3965
+ margin: 6px 0 3px;
3966
+ color: var(--bx-preview-text);
3967
+ font-size: calc(var(--bx-preview-label-size) * 0.7);
3968
+ font-weight: var(--bx-preview-label-weight);
3969
+ }
3970
+
3971
+ .bx-appearance-preview__component-card input {
3972
+ width: 100%;
3973
+ height: calc(var(--bx-preview-control-height) * 0.72);
3974
+ min-height: 24px;
3975
+ padding-inline: 7px;
3976
+ color: var(--bx-preview-text);
3977
+ font-size: 8px;
3978
+ background: var(--bx-preview-surface);
3979
+ border: 1px solid var(--bx-preview-input-border);
3980
+ border-radius: var(--bx-preview-input-radius);
3981
+ outline: none;
3982
+ }
3983
+
3984
+ .bx-appearance-preview__component-card input::placeholder {
3985
+ color: var(--bx-preview-placeholder);
3986
+ }
3987
+
3988
+ .bx-appearance-preview__component-card input.is-focused {
3989
+ border-color: var(--bx-preview-primary);
3990
+ box-shadow: 0 0 0 var(--bx-preview-focus-size) rgba(var(--be-primary-rgb), 0.18);
3991
+ }
3992
+
3993
+ .bx-appearance-preview__buttons {
3994
+ display: flex;
3995
+ flex-wrap: wrap;
3996
+ gap: 4px;
3997
+ }
3998
+
3999
+ .bx-appearance-preview__buttons button {
4000
+ height: calc(var(--bx-preview-button-height) * 0.72);
4001
+ min-height: 22px;
4002
+ padding-inline: calc(var(--bx-preview-button-padding) * 0.55);
4003
+ color: var(--bx-preview-text);
4004
+ font-size: 7px;
4005
+ background: var(--bx-preview-surface);
4006
+ border: 1px solid var(--bx-preview-border);
4007
+ border-radius: var(--bx-preview-button-radius);
4008
+ }
4009
+
4010
+ .bx-appearance-preview__buttons button.primary {
4011
+ color: var(--bx-preview-primary-text);
4012
+ background: var(--bx-preview-primary);
4013
+ border-color: var(--bx-preview-primary);
4014
+ }
4015
+
4016
+ .bx-appearance-preview__buttons button.secondary {
4017
+ color: var(--bx-preview-secondary-text);
4018
+ background: var(--bx-preview-secondary);
4019
+ border-color: var(--bx-preview-secondary);
4020
+ }
4021
+
4022
+ .bx-appearance-preview__buttons button.warning {
4023
+ color: var(--bx-preview-warning-text);
4024
+ background: var(--bx-preview-warning);
4025
+ border-color: var(--bx-preview-warning);
4026
+ }
4027
+
4028
+ .bx-appearance-preview__buttons button.danger {
4029
+ color: var(--bx-preview-danger-text);
4030
+ background: var(--bx-preview-danger);
4031
+ border-color: var(--bx-preview-danger);
4032
+ }
4033
+
4034
+ .bx-appearance-preview__buttons button.info {
4035
+ color: var(--bx-preview-info-text);
4036
+ background: var(--bx-preview-info);
4037
+ border-color: var(--bx-preview-info);
4038
+ }
4039
+
4040
+ .bx-appearance-preview__tabs {
4041
+ display: flex;
4042
+ gap: 4px;
4043
+ }
4044
+
4045
+ .bx-appearance-preview__tabs button {
4046
+ min-width: 50px;
4047
+ height: calc(var(--bx-preview-tab-height) * 0.62);
4048
+ min-height: 24px;
4049
+ padding-inline: 6px;
4050
+ color: var(--bx-preview-muted);
4051
+ font-size: 7px;
4052
+ background: var(--bx-preview-surface);
4053
+ border: 1px solid var(--bx-preview-border);
4054
+ border-radius: var(--bx-preview-tab-radius);
4055
+ }
4056
+
4057
+ .bx-appearance-preview__tabs button.active {
4058
+ color: var(--bx-preview-primary);
4059
+ font-weight: 700;
4060
+ background: var(--bx-preview-active);
4061
+ border-color: var(--bx-preview-primary);
4062
+ }
4063
+
4064
+ .bx-appearance-preview__checks {
4065
+ display: flex;
4066
+ flex-wrap: wrap;
4067
+ gap: 10px;
4068
+ margin-top: 8px;
4069
+ font-size: 8px;
4070
+ }
4071
+
4072
+ .bx-appearance-preview__checks span {
4073
+ display: inline-flex;
4074
+ align-items: center;
4075
+ gap: 5px;
4076
+ }
4077
+
4078
+ .bx-appearance-preview__checks i.checkbox {
4079
+ display: grid;
4080
+ place-items: center;
4081
+ width: var(--bx-preview-checkbox-size);
4082
+ height: var(--bx-preview-checkbox-size);
4083
+ color: var(--bx-preview-primary-text);
4084
+ font-size: calc(var(--bx-preview-checkbox-size) * 0.55);
4085
+ font-style: normal;
4086
+ background: var(--bx-preview-primary);
4087
+ border-radius: 4px;
4088
+ }
4089
+
4090
+ .bx-appearance-preview__checks i.switch {
4091
+ display: flex;
4092
+ justify-content: flex-end;
4093
+ width: calc(var(--bx-preview-switch-height) * 1.8);
4094
+ height: var(--bx-preview-switch-height);
4095
+ padding: 2px;
4096
+ background: var(--bx-preview-primary);
4097
+ border-radius: 999px;
4098
+ }
4099
+
4100
+ .bx-appearance-preview__checks i.switch b {
4101
+ display: block;
4102
+ width: calc(var(--bx-preview-switch-height) - 4px);
4103
+ height: calc(var(--bx-preview-switch-height) - 4px);
4104
+ background: #fff;
4105
+ border-radius: 50%;
4106
+ }
4107
+
4108
+ .bx-appearance-preview__modal {
4109
+ padding: 8px;
4110
+ background: var(--bx-preview-surface);
4111
+ border: 1px solid var(--bx-preview-border);
4112
+ border-radius: var(--bx-preview-modal-radius);
4113
+ box-shadow: 0 12px 34px rgba(15, 23, 42, 0.16);
4114
+ }
4115
+
4116
+ .bx-appearance-preview__modal strong,
4117
+ .bx-appearance-preview__modal small {
4118
+ display: block;
4119
+ }
4120
+
4121
+ .bx-appearance-preview__modal strong {
4122
+ color: var(--bx-preview-heading);
4123
+ font-size: 8px;
4124
+ }
4125
+
4126
+ .bx-appearance-preview__modal small {
4127
+ color: var(--bx-preview-muted);
4128
+ font-size: 7px;
4129
+ }
4130
+
4131
+ .bx-appearance-preview__dropdown {
4132
+ margin-top: 7px;
4133
+ overflow: hidden;
4134
+ background: var(--bx-preview-surface);
4135
+ border: 1px solid var(--bx-preview-border);
4136
+ border-radius: var(--bx-preview-dropdown-radius);
4137
+ box-shadow: var(--be-dropdown-shadow);
4138
+ }
4139
+
4140
+ .bx-appearance-preview__dropdown span {
4141
+ display: block;
4142
+ padding: 5px 7px;
4143
+ font-size: 7px;
4144
+ border-bottom: 1px solid var(--bx-preview-border);
4145
+ }
4146
+
4147
+ .bx-appearance-preview__dropdown span:last-child {
4148
+ border-bottom: 0;
4149
+ }
4150
+
4151
+ .bx-appearance-preview__dropdown span.active {
4152
+ color: var(--bx-preview-primary);
4153
+ font-weight: 700;
4154
+ background: var(--bx-preview-active);
4155
+ }
4156
+
4157
+ .bx-appearance-preview__tooltip {
4158
+ display: inline-block;
4159
+ margin-top: 7px;
4160
+ padding: 4px 6px;
4161
+ color: #fff;
4162
+ font-size: 7px;
4163
+ background: #111827;
4164
+ border-radius: 5px;
4165
+ box-shadow: var(--be-dropdown-shadow);
4166
+ }
4167
+
4168
+ .bx-appearance-preview__states {
4169
+ display: flex;
4170
+ flex-wrap: wrap;
4171
+ gap: 5px;
4172
+ margin-top: 8px;
4173
+ }
4174
+
4175
+ .bx-appearance-preview__states span {
4176
+ padding: 3px 6px;
4177
+ color: var(--bx-preview-muted);
4178
+ font-size: 7px;
4179
+ background: var(--bx-preview-surface-secondary);
4180
+ border: 1px solid var(--bx-preview-border);
4181
+ border-radius: 999px;
4182
+ }
4183
+
4184
+ @container be-settings (max-width: 1180px) {
4185
+ .bx-appearance-page .bx-appearance-workspace {
4186
+ position: relative;
4187
+ grid-template-columns: minmax(0, 1fr) 42px;
4188
+ }
4189
+ .bx-appearance-page .bx-appearance-workspace:not(.is-preview-collapsed) .bx-appearance-preview-panel {
4190
+ position: absolute;
4191
+ top: 0;
4192
+ right: 0;
4193
+ bottom: 0;
4194
+ z-index: 20;
4195
+ width: min(640px, 72cqw);
4196
+ background: var(--be-surface);
4197
+ border-left: 1px solid var(--be-border);
4198
+ box-shadow: 0 16px 42px rgba(15, 23, 42, 0.18);
4199
+ }
4200
+ .bx-appearance-page .bx-appearance-workspace.is-preview-collapsed .bx-appearance-preview-panel {
4201
+ position: static;
4202
+ width: 42px;
4203
+ box-shadow: none;
4204
+ }
4205
+ .bx-appearance-page .bx-appearance-workspace.is-settings-expanded,
4206
+ .bx-appearance-page .bx-appearance-workspace.is-preview-expanded {
4207
+ grid-template-columns: minmax(0, 1fr) 42px;
4208
+ }
4209
+ }
4210
+ @container be-settings (max-width: 820px) {
4211
+ .bx-appearance-theme-grid {
4212
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4213
+ }
4214
+ .bx-appearance-color-fields,
4215
+ .bx-appearance-form-grid,
4216
+ .bx-appearance-form-grid--3,
4217
+ .bx-appearance-locked-grid {
4218
+ grid-template-columns: 1fr;
4219
+ }
4220
+ }
4221
+ @container be-settings (max-width: 620px) {
4222
+ .bx-appearance-number-field {
4223
+ grid-template-columns: 1fr;
4224
+ gap: 6px;
4225
+ }
4226
+ .bx-appearance-primary-palette {
4227
+ grid-template-columns: repeat(5, minmax(28px, 1fr));
4228
+ }
4229
+ .bx-appearance-preview__component-grid {
4230
+ grid-template-columns: 1fr;
4231
+ }
4232
+ .bx-appearance-preview__metrics {
4233
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4234
+ }
4235
+ }
4236
+ .bx-appearance-preview__sidebar {
4237
+ padding: 0;
4238
+ color: var(--bx-preview-sidebar-text);
4239
+ background: var(--bx-preview-sidebar);
4240
+ }
4241
+
4242
+ .bx-appearance-preview__brand-header {
4243
+ display: flex;
4244
+ align-items: center;
4245
+ min-height: var(--bx-preview-navbar-height);
4246
+ padding-inline: 8px;
4247
+ color: var(--bx-preview-sidebar-brand-text);
4248
+ background: var(--bx-preview-sidebar-brand-background);
4249
+ border-bottom: 1px solid var(--bx-preview-sidebar-brand-border);
4250
+ box-shadow: none;
4251
+ }
4252
+
4253
+ .bx-appearance-preview__brand-header .bx-appearance-preview__logo {
4254
+ flex: 0 0 auto;
4255
+ }
4256
+
4257
+ .bx-appearance-preview__brand-text {
4258
+ overflow: hidden;
4259
+ margin-left: 6px;
4260
+ font-size: 9px;
4261
+ font-weight: 700;
4262
+ text-overflow: ellipsis;
4263
+ white-space: nowrap;
4264
+ }
4265
+
4266
+ .bx-appearance-preview__brand-toggle {
4267
+ margin-left: auto;
4268
+ padding: 0;
4269
+ color: var(--bx-preview-sidebar-brand-toggle);
4270
+ background: transparent;
4271
+ border: 0;
4272
+ }
4273
+
4274
+ .bx-appearance-preview__sidebar-body {
4275
+ position: relative;
4276
+ min-height: calc(100% - var(--bx-preview-navbar-height));
4277
+ padding: 8px 6px;
4278
+ color: var(--bx-preview-sidebar-text);
4279
+ background: var(--bx-preview-sidebar);
4280
+ }
4281
+
4282
+ .bx-appearance-preview__group-title {
4283
+ color: var(--bx-preview-sidebar-group-text);
4284
+ }
4285
+
4286
+ .bx-appearance-preview__menu-item {
4287
+ color: var(--bx-preview-sidebar-text);
4288
+ }
4289
+
4290
+ .bx-appearance-preview__menu-item.is-active {
4291
+ color: var(--bx-preview-sidebar-active-text);
4292
+ background: var(--bx-preview-sidebar-active);
4293
+ }
4294
+
4295
+ .bx-appearance-preview__menu-item.is-active::before {
4296
+ background: var(--bx-preview-sidebar-indicator);
4297
+ }
4298
+
4299
+ .bx-appearance-preview__menu-item.is-active.is-left-border,
4300
+ .bx-appearance-preview__menu-item.is-active.is-text-only {
4301
+ color: var(--bx-preview-sidebar-accent-text);
4302
+ }
4303
+
4304
+ .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__brand-text,
4305
+ .bx-appearance-preview__frame.is-mobile .bx-appearance-preview__brand-text {
4306
+ display: none;
4307
+ }
4308
+
4309
+ /* MERGE VÀO appearance.scss */
4310
+ .bx-appearance-mode {
4311
+ display: flex;
4312
+ flex-direction: column;
4313
+ gap: 7px;
4314
+ }
4315
+
4316
+ .bx-appearance-mode__options {
4317
+ display: grid;
4318
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4319
+ gap: 6px;
4320
+ }
4321
+
4322
+ .bx-appearance-mode__option {
4323
+ min-height: var(--be-control-height);
4324
+ padding-inline: 10px;
4325
+ color: var(--be-text-primary);
4326
+ font-weight: 600;
4327
+ background: var(--be-surface);
4328
+ border: 1px solid var(--be-input-border);
4329
+ border-radius: var(--be-input-radius);
4330
+ box-shadow: none;
4331
+ }
4332
+
4333
+ .bx-appearance-mode__option:hover:not(:disabled) {
4334
+ color: var(--be-primary);
4335
+ background: var(--be-primary-soft);
4336
+ border-color: var(--be-primary);
4337
+ }
4338
+
4339
+ .bx-appearance-mode__option.active {
4340
+ color: var(--be-primary-contrast);
4341
+ background: var(--be-primary);
4342
+ border-color: var(--be-primary);
4343
+ }
4344
+
4345
+ .bx-appearance-mode__option:disabled {
4346
+ cursor: not-allowed;
4347
+ opacity: 0.55;
4348
+ }
4349
+
4350
+ .bx-appearance-mode__status {
4351
+ color: var(--be-text-muted);
398
4352
  }
399
- .bx-shortcut-management {
400
- /*
401
- * SwitchInput mặc định có padding / border riêng.
402
- * Reset chỉ trong cell Shortcut để không ép row lên ~50px.
403
- */
4353
+
4354
+ /* Appearance giữ layout Settings chung: một mặt phẳng cấu hình liền khối. */
4355
+ .bx-appearance-page .bx-appearance-controls {
4356
+ gap: 0;
4357
+ overflow: visible;
4358
+ background: var(--be-surface);
4359
+ border: 0;
4360
+ border-radius: 0;
404
4361
  }
405
- .bx-shortcut-management .bx-shortcut-switch {
406
- height: 22px;
407
- min-height: 0;
408
- gap: 0 !important;
409
- justify-content: center !important;
410
- padding: 0 !important;
4362
+
4363
+ .bx-appearance-page .bx-appearance-controls .card {
411
4364
  margin: 0 !important;
412
- border-bottom: 0 !important;
4365
+ background: var(--be-surface);
4366
+ border: 0;
4367
+ border-bottom: 1px solid var(--be-border);
4368
+ border-radius: 0;
4369
+ box-shadow: none;
413
4370
  }
414
- .bx-shortcut-management .bx-shortcut-switch > .min-w-0.flex-grow-1 {
415
- display: none;
4371
+
4372
+ .bx-appearance-page .bx-appearance-controls > .card:last-child {
4373
+ border-bottom: 0;
416
4374
  }
417
- .bx-shortcut-management .bx-shortcut-switch > .d-flex {
4375
+
4376
+ .bx-appearance-page .bx-appearance-controls .card-header {
4377
+ min-height: 42px;
4378
+ padding: 8px 12px;
4379
+ background: var(--be-surface-secondary);
4380
+ border-bottom: 1px solid var(--be-border);
4381
+ }
4382
+
4383
+ .bx-appearance-page .bx-appearance-controls .card-body {
4384
+ padding: 12px;
4385
+ }
4386
+
4387
+ .bx-appearance-page .bx-appearance-controls > .bx-appearance-form-grid {
4388
+ gap: 0;
4389
+ border-bottom: 1px solid var(--be-border);
4390
+ }
4391
+
4392
+ .bx-appearance-page .bx-appearance-controls > .bx-appearance-form-grid > .card {
4393
+ border-bottom: 0;
4394
+ }
4395
+
4396
+ .bx-appearance-page .bx-appearance-controls > .bx-appearance-form-grid > .card + .card {
4397
+ border-left: 1px solid var(--be-border);
4398
+ }
4399
+
4400
+ .bx-appearance-page .bx-appearance-preview {
4401
+ border-radius: 0;
4402
+ box-shadow: none;
4403
+ }
4404
+
4405
+ /* Theme Library */
4406
+ .bx-theme-library__toolbar {
4407
+ display: grid;
4408
+ grid-template-columns: minmax(0, 1fr) auto;
4409
+ gap: 8px;
4410
+ align-items: center;
4411
+ }
4412
+
4413
+ .bx-theme-library__filters,
4414
+ .bx-theme-library__actions {
4415
+ display: flex;
4416
+ flex-wrap: wrap;
4417
+ gap: 6px;
4418
+ }
4419
+
4420
+ .bx-theme-library__filters {
4421
+ margin-block: 10px;
4422
+ }
4423
+
4424
+ .bx-theme-library__list {
4425
+ display: flex;
4426
+ flex-direction: column;
4427
+ gap: 8px;
4428
+ padding-bottom: 24px;
4429
+ scroll-padding-bottom: 24px;
4430
+ }
4431
+
4432
+ .bx-theme-library__card:last-child {
4433
+ margin-bottom: 4px;
4434
+ }
4435
+
4436
+ .bx-theme-library__loading {
4437
+ display: flex;
4438
+ align-items: center;
4439
+ gap: 8px;
4440
+ padding: 12px 0;
4441
+ }
4442
+
4443
+ .bx-theme-library__card {
4444
+ display: grid;
4445
+ grid-template-columns: 136px minmax(0, 1fr);
4446
+ gap: 12px;
4447
+ padding: 10px;
4448
+ background: var(--be-surface);
4449
+ border: 1px solid var(--be-border);
4450
+ border-radius: var(--be-card-radius);
4451
+ }
4452
+
4453
+ .bx-theme-library__card.is-active {
4454
+ border-color: var(--be-primary);
4455
+ box-shadow: 0 0 0 1px var(--be-primary-soft);
4456
+ }
4457
+
4458
+ .bx-theme-library__preview {
4459
+ display: grid;
4460
+ grid-template-columns: 28% 1fr;
4461
+ min-height: 86px;
4462
+ overflow: hidden;
4463
+ background: var(--theme-background);
4464
+ border: 1px solid var(--theme-border);
4465
+ border-radius: var(--be-input-radius);
4466
+ }
4467
+
4468
+ .bx-theme-library__preview-sidebar {
4469
+ background: var(--theme-sidebar);
4470
+ }
4471
+
4472
+ .bx-theme-library__preview > span {
4473
+ display: grid;
4474
+ grid-template-columns: 1fr 1fr;
4475
+ gap: 6px;
4476
+ padding: 8px;
4477
+ }
4478
+
4479
+ .bx-theme-library__preview-navbar {
4480
+ grid-column: 1/-1;
4481
+ height: 10px;
4482
+ background: var(--theme-surface);
4483
+ border: 1px solid var(--theme-border);
4484
+ }
4485
+
4486
+ .bx-theme-library__preview b {
4487
+ grid-column: 1/-1;
4488
+ width: 58%;
4489
+ height: 6px;
4490
+ background: var(--theme-primary);
4491
+ border-radius: 3px;
4492
+ }
4493
+
4494
+ .bx-theme-library__preview em {
4495
+ height: 28px;
4496
+ background: var(--theme-surface);
4497
+ border: 1px solid var(--theme-border);
4498
+ }
4499
+
4500
+ .bx-theme-library__content {
4501
+ min-width: 0;
4502
+ }
4503
+
4504
+ .bx-theme-library__title-row {
4505
+ display: flex;
4506
+ align-items: flex-start;
4507
+ justify-content: space-between;
4508
+ gap: 8px;
4509
+ }
4510
+
4511
+ .bx-theme-library__actions {
4512
+ margin-top: 10px;
4513
+ }
4514
+
4515
+ @container be-settings (max-width: 820px) {
4516
+ .bx-appearance-page .bx-appearance-controls > .bx-appearance-form-grid > .card + .card {
4517
+ border-left: 0;
4518
+ border-top: 1px solid var(--be-border);
4519
+ }
4520
+ .bx-theme-library__card {
4521
+ grid-template-columns: 1fr;
4522
+ }
4523
+ }
4524
+ .bx-appearance-preview__contrast-summary {
4525
+ display: flex;
4526
+ align-items: center;
4527
+ gap: 8px;
4528
+ margin-top: 8px;
4529
+ padding: 6px 8px;
4530
+ color: #166534;
4531
+ font-size: var(--be-small-font-size);
4532
+ background: #f0fdf4;
4533
+ border: 1px solid #bbf7d0;
4534
+ }
4535
+
4536
+ .bx-appearance-preview__contrast-summary.has-warning {
4537
+ color: #92400e;
4538
+ background: #fffbeb;
4539
+ border-color: #fde68a;
4540
+ }
4541
+
4542
+ .bx-appearance-preview__contrast-summary span {
4543
+ color: inherit;
4544
+ font-size: calc(var(--be-small-font-size) - 1px);
4545
+ }
4546
+
4547
+ /* Review 2026-08-11: fullscreen preview and visual coverage */
4548
+ .bx-appearance-preview__body {
4549
+ min-width: 0;
4550
+ }
4551
+
4552
+ .bx-appearance-preview__details {
4553
+ min-width: 0;
4554
+ }
4555
+
4556
+ /* Preview phải dùng shadow của draft, không dùng token runtime đang commit. */
4557
+ .bx-appearance-preview__component-card {
4558
+ box-shadow: var(--bx-preview-card-shadow);
4559
+ }
4560
+
4561
+ .bx-appearance-preview__dropdown,
4562
+ .bx-appearance-preview__tooltip {
4563
+ box-shadow: var(--bx-preview-dropdown-shadow);
4564
+ }
4565
+
4566
+ /* Card gap phải nhìn thấy trực tiếp trong preview. */
4567
+ .bx-appearance-preview__component-grid {
4568
+ gap: clamp(4px, var(--bx-preview-card-gap) * 0.55, 24px);
4569
+ }
4570
+
4571
+ /* Focus Outline là setting thật: tắt thì sample focus không được vẽ ring. */
4572
+ .bx-appearance-preview__frame:not(.is-focus-outline) .bx-appearance-preview__component-card input.is-focused {
4573
+ border-color: var(--bx-preview-input-border);
4574
+ box-shadow: none;
4575
+ }
4576
+
4577
+ .bx-appearance-preview__frame.is-focus-outline .bx-appearance-preview__component-card input.is-focused {
4578
+ border-color: var(--bx-preview-primary);
4579
+ box-shadow: 0 0 0 var(--bx-preview-focus-size) color-mix(in srgb, var(--bx-preview-primary) 18%, transparent);
4580
+ }
4581
+
4582
+ .bx-appearance-preview__state-samples {
4583
+ display: flex;
4584
+ flex-wrap: wrap;
4585
+ gap: 6px;
4586
+ margin-top: 6px;
4587
+ }
4588
+
4589
+ .bx-appearance-preview__state-samples > span,
4590
+ .bx-appearance-preview__state-samples > a {
4591
+ display: inline-flex;
4592
+ min-height: 26px;
4593
+ align-items: center;
4594
+ padding-inline: 8px;
4595
+ color: var(--bx-preview-text);
4596
+ font-size: 8px;
4597
+ text-decoration: none;
4598
+ border: 1px solid var(--bx-preview-border);
4599
+ border-radius: var(--bx-preview-input-radius);
4600
+ }
4601
+
4602
+ .bx-appearance-preview__state-samples .hover {
4603
+ background: var(--bx-preview-hover);
4604
+ }
4605
+
4606
+ .bx-appearance-preview__state-samples .active {
4607
+ background: var(--bx-preview-active);
4608
+ }
4609
+
4610
+ .bx-appearance-preview__state-samples .disabled {
4611
+ color: var(--bx-preview-muted);
4612
+ background: var(--bx-preview-disabled);
4613
+ }
4614
+
4615
+ .bx-appearance-preview__state-samples a {
4616
+ color: var(--bx-preview-link);
4617
+ background: var(--bx-preview-surface);
4618
+ }
4619
+
4620
+ .bx-appearance-preview__scrollbar-sample {
4621
+ position: relative;
4622
+ height: 38px;
4623
+ margin-top: 9px;
4624
+ overflow: hidden;
4625
+ color: var(--bx-preview-muted);
4626
+ font-size: 8px;
4627
+ background: var(--bx-preview-scrollbar-track);
4628
+ border: 1px solid var(--bx-preview-border);
4629
+ border-radius: var(--bx-preview-input-radius);
4630
+ }
4631
+
4632
+ .bx-appearance-preview__scrollbar-sample > div {
4633
+ padding: 8px;
4634
+ }
4635
+
4636
+ .bx-appearance-preview__scrollbar-sample > span {
4637
+ position: absolute;
4638
+ top: 3px;
4639
+ right: 3px;
4640
+ width: 6px;
418
4641
  height: 22px;
419
- min-height: 0;
420
- gap: 0 !important;
421
- align-items: center !important;
422
- padding: 0 !important;
423
- margin: 0 !important;
4642
+ background: var(--bx-preview-scrollbar-thumb);
4643
+ border-radius: 999px;
424
4644
  }
425
- .bx-shortcut-management .bx-shortcut-switch .form-check.form-switch {
4645
+
4646
+ .bx-appearance-preview__frame.is-scrollbar-hidden .bx-appearance-preview__scrollbar-sample > span {
4647
+ display: none;
4648
+ }
4649
+
4650
+ .bx-appearance-preview__frame.is-scrollbar-default .bx-appearance-preview__scrollbar-sample > span {
4651
+ width: 10px;
4652
+ }
4653
+
4654
+ .bx-appearance-preview__frame.is-scrollbar-thin .bx-appearance-preview__scrollbar-sample > span {
4655
+ width: 5px;
4656
+ }
4657
+
4658
+ /* Fullscreen phải tách khỏi Settings layout bằng portal; header luôn nhìn thấy và phần
4659
+ nội dung/summary cuộn trong chính overlay, không tràn xuống footer ứng dụng. */
4660
+ .bx-appearance-preview.is-fullscreen {
4661
+ position: fixed;
4662
+ inset: 0;
4663
+ z-index: 10050;
426
4664
  display: flex;
4665
+ flex-direction: column;
4666
+ padding: 0;
4667
+ overflow: hidden;
4668
+ background: var(--be-surface);
4669
+ border: 0;
4670
+ border-radius: 0;
4671
+ box-shadow: none;
4672
+ }
4673
+
4674
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__header {
4675
+ position: relative;
4676
+ z-index: 3;
4677
+ min-height: 50px;
4678
+ flex: 0 0 auto;
427
4679
  align-items: center;
4680
+ margin: 0;
4681
+ padding: 8px 12px;
4682
+ background: var(--be-surface);
4683
+ border-bottom: 1px solid var(--be-border);
4684
+ box-shadow: 0 2px 10px rgba(15, 23, 42, 0.06);
4685
+ }
4686
+
4687
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__devices button.is-close {
4688
+ color: var(--be-text-primary);
4689
+ font-weight: 700;
4690
+ background: var(--be-surface-secondary);
4691
+ border-color: var(--be-input-border);
4692
+ }
4693
+
4694
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__body {
4695
+ flex: 1 1 auto;
428
4696
  min-height: 0;
429
- height: 22px;
430
- margin: 0 !important;
431
- padding-top: 0 !important;
432
- padding-bottom: 0 !important;
4697
+ overflow: auto;
4698
+ padding: 12px;
4699
+ background: #eef2f7;
433
4700
  }
434
- .bx-shortcut-management .bx-shortcut-switch .form-check-input {
435
- margin-top: 0 !important;
436
- margin-bottom: 0 !important;
4701
+
4702
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__stage {
4703
+ flex: 1 1 auto;
4704
+ min-height: 0;
4705
+ overflow: visible;
4706
+ padding: 0;
4707
+ background: transparent;
4708
+ border: 0;
4709
+ border-radius: 0;
4710
+ }
4711
+
4712
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__details {
4713
+ width: min(100%, 1280px);
4714
+ margin: 12px auto 0;
4715
+ padding-bottom: 12px;
4716
+ }
4717
+
4718
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__frame {
4719
+ margin-inline: auto;
4720
+ }
4721
+
4722
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__frame.is-desktop {
4723
+ width: 1280px;
4724
+ max-width: none;
4725
+ }
4726
+
4727
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__frame.is-tablet {
4728
+ width: 1024px;
4729
+ max-width: none;
4730
+ }
4731
+
4732
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__frame.is-mobile {
4733
+ width: 390px;
4734
+ min-width: 390px;
4735
+ max-width: none;
4736
+ }
4737
+
4738
+ .bx-appearance-preview.is-fullscreen.is-fit .bx-appearance-preview__frame {
4739
+ width: min(100%, 1280px);
4740
+ min-width: 0;
4741
+ }
4742
+
4743
+ .bx-appearance-preview.is-fullscreen.is-fit .bx-appearance-preview__frame.is-tablet {
4744
+ width: min(100%, 1024px);
4745
+ }
4746
+
4747
+ .bx-appearance-preview.is-fullscreen.is-fit .bx-appearance-preview__frame.is-mobile {
4748
+ width: min(100%, 390px);
4749
+ min-width: 315px;
4750
+ }
4751
+
4752
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__color-grid {
4753
+ grid-template-columns: repeat(6, minmax(0, 1fr));
4754
+ }
4755
+
4756
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__component-grid {
4757
+ grid-template-columns: repeat(3, minmax(0, 1fr));
4758
+ }
4759
+
4760
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__metrics {
4761
+ grid-template-columns: repeat(7, minmax(0, 1fr));
4762
+ }
4763
+
4764
+ /* 1:1 phải dùng token thật ở cả component showcase, không chỉ shell. */
4765
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__frame {
4766
+ font-size: var(--bx-preview-font-size);
4767
+ line-height: var(--bx-preview-line-height);
4768
+ letter-spacing: var(--bx-preview-letter-spacing);
4769
+ }
4770
+
4771
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__navbar {
4772
+ height: var(--bx-preview-navbar-height);
4773
+ min-height: var(--bx-preview-navbar-height);
4774
+ }
4775
+
4776
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__shell {
4777
+ grid-template-columns: var(--bx-preview-sidebar-width) minmax(0, 1fr);
4778
+ min-height: 560px;
4779
+ }
4780
+
4781
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__frame.is-sidebar-collapsed .bx-appearance-preview__shell {
4782
+ grid-template-columns: var(--bx-preview-collapsed-width) minmax(0, 1fr);
4783
+ }
4784
+
4785
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__content {
4786
+ padding: var(--bx-preview-content-padding);
4787
+ }
4788
+
4789
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__gutter-sample {
4790
+ gap: var(--bx-preview-gutter);
4791
+ margin-bottom: var(--bx-preview-section-gap);
4792
+ }
4793
+
4794
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__title-row,
4795
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar {
4796
+ margin-bottom: var(--bx-preview-section-gap);
4797
+ }
4798
+
4799
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__title-row h2 {
4800
+ font-size: var(--bx-preview-page-title-size);
4801
+ }
4802
+
4803
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__title-row small {
4804
+ font-size: var(--bx-preview-small-size);
4805
+ }
4806
+
4807
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__menu-item {
4808
+ height: var(--bx-preview-menu-height);
4809
+ min-height: var(--bx-preview-menu-height);
4810
+ font-size: var(--bx-preview-menu-font-size);
4811
+ }
4812
+
4813
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__menu-item.is-child {
4814
+ padding-left: calc(7px + var(--bx-preview-menu-indent));
4815
+ }
4816
+
4817
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__menu-item i {
4818
+ width: var(--bx-preview-menu-icon-size);
4819
+ height: var(--bx-preview-menu-icon-size);
4820
+ }
4821
+
4822
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__title-row button,
4823
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar button {
4824
+ height: var(--bx-preview-button-height);
4825
+ padding-inline: var(--bx-preview-button-padding);
4826
+ }
4827
+
4828
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar {
4829
+ gap: 8px;
4830
+ }
4831
+
4832
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar > div {
4833
+ height: var(--bx-preview-control-height);
4834
+ }
4835
+
4836
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar .is-search {
4837
+ flex: 0 0 230px;
4838
+ }
4839
+
4840
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__toolbar .is-filter {
4841
+ flex: 0 0 180px;
4842
+ }
4843
+
4844
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__footer {
4845
+ height: var(--bx-preview-footer-height);
4846
+ min-height: var(--bx-preview-footer-height);
4847
+ font-size: var(--bx-preview-small-size);
4848
+ }
4849
+
4850
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__grid-row span,
4851
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__pager {
4852
+ font-size: var(--bx-preview-grid-font-size);
4853
+ }
4854
+
4855
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-grid {
4856
+ gap: var(--bx-preview-card-gap);
4857
+ }
4858
+
4859
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-card h3 {
4860
+ font-size: var(--bx-preview-section-title-size);
4861
+ }
4862
+
4863
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-card h4 {
4864
+ font-size: var(--bx-preview-card-title-size);
4865
+ }
4866
+
4867
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-card p {
4868
+ font-size: var(--bx-preview-font-size);
4869
+ }
4870
+
4871
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-card label {
4872
+ font-size: var(--bx-preview-label-size);
4873
+ }
4874
+
4875
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__component-card input {
4876
+ height: var(--bx-preview-control-height);
4877
+ font-size: var(--bx-preview-font-size);
4878
+ }
4879
+
4880
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__buttons button {
4881
+ height: var(--bx-preview-button-height);
4882
+ padding-inline: var(--bx-preview-button-padding);
4883
+ font-size: var(--bx-preview-font-size);
4884
+ }
4885
+
4886
+ .bx-appearance-preview.is-fullscreen.is-actual .bx-appearance-preview__tabs button {
4887
+ height: var(--bx-preview-tab-height);
4888
+ font-size: var(--bx-preview-font-size);
4889
+ }
4890
+
4891
+ @media (max-width: 900px) {
4892
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__header {
4893
+ align-items: flex-start;
4894
+ }
4895
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__color-grid,
4896
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__component-grid,
4897
+ .bx-appearance-preview.is-fullscreen .bx-appearance-preview__metrics {
4898
+ grid-template-columns: repeat(2, minmax(0, 1fr));
4899
+ }
437
4900
  }