@jirawatpyk/aura-react 5.39.0 → 5.41.0

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.
@@ -15,7 +15,7 @@
15
15
  background: transparent;
16
16
  color: inherit;
17
17
  font-family: var(--font-sans); /* 5.30: not inherit — a trigger outside a styled root fell back to Arial */
18
- font-size: 13px;
18
+ font-size: max(13px, .8125rem);
19
19
  font-weight: 500;
20
20
  line-height: 1;
21
21
  display: inline-flex;
@@ -72,10 +72,10 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
72
72
  .aura-btn--primary:hover { background: var(--aura-button-primary-bg-hover); }
73
73
 
74
74
  .aura-btn--secondary { border: 1px solid var(--aura-button-secondary-border); color: var(--aura-fg-primary); }
75
- .aura-btn--secondary:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
75
+ .aura-btn--secondary:hover, .aura-btn--secondary[aria-haspopup][aria-expanded="true"] { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
76
76
  /* Destructive: filled for the confirm step, outline beside other actions. Loading keeps the colour (busy, not unavailable). */
77
77
  .aura-btn--ghost { color: var(--aura-fg-primary); }
78
- .aura-btn--ghost:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
78
+ .aura-btn--ghost:hover, .aura-btn--ghost[aria-haspopup][aria-expanded="true"] { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
79
79
  /* size="sm" (4.16): 32px for toolbars, table rows and card footers. On touch the pill stays 32px and a transparent
80
80
  * ::after grows the hit area to 44px, as IconButton does. */
81
81
  .aura-btn--sm { height: var(--aura-button-height-sm); padding: 0 var(--aura-space-3); gap: 6px; }
@@ -120,14 +120,14 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
120
120
  display: flex; height: var(--aura-table-row-height); min-width: var(--aura-row-min, 0);
121
121
  background: var(--aura-table-head-bg);
122
122
  border-bottom: 1px solid var(--aura-border-default);
123
- font-family: var(--font-mono); font-size: 12px; color: var(--aura-fg-secondary);
123
+ font-family: var(--font-mono); font-size: max(12px, .75rem); color: var(--aura-fg-secondary);
124
124
  }
125
125
  .aura-table__row {
126
126
  box-sizing: border-box; display: flex; height: var(--aura-table-row-height); /* exactly the virtual row height */
127
127
  min-width: var(--aura-row-min, 0);
128
128
  background: var(--aura-bg-surface);
129
129
  border-bottom: 1px solid var(--aura-border-default);
130
- font-size: 13px;
130
+ font-size: max(13px, .8125rem);
131
131
  }
132
132
  .aura-table__row:last-child { border-bottom: 0; }
133
133
  .aura-table__row:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
@@ -185,7 +185,7 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
185
185
  .aura-table__row--auto { height: auto; min-height: var(--aura-table-row-height); }
186
186
  .aura-table__td--auto {
187
187
  --aura-cell-pad-y: clamp(0px, calc((var(--aura-table-row-height) - 1px - var(--aura-button-height-sm)) / 2), var(--aura-space-2));
188
- display: flex; align-items: center; height: auto; line-height: 20px; white-space: normal;
188
+ display: flex; align-items: center; height: auto; line-height: max(20px, 1.25rem); white-space: normal;
189
189
  padding-top: var(--aura-cell-pad-y); padding-bottom: var(--aura-cell-pad-y);
190
190
  }
191
191
  .aura-table__cell { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
@@ -283,7 +283,7 @@ button.aura-btn--creative[aria-disabled='true']:hover { box-shadow: var(--aura-s
283
283
  background: var(--aura-bg-surface); color: var(--aura-fg-primary);
284
284
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-md);
285
285
  box-shadow: var(--aura-shadow-enterprise);
286
- font-family: var(--font-sans); font-size: 13px;
286
+ font-family: var(--font-sans); font-size: max(13px, .8125rem);
287
287
  }
288
288
  .aura-menu__item {
289
289
  display: flex; align-items: center; gap: var(--aura-space-2); width: 100%;
@@ -321,19 +321,19 @@ a.aura-menu__item { text-decoration: none; box-sizing: border-box; }
321
321
  .aura-menu__radio.is-on { border-color: var(--aura-control-checked-bg); }
322
322
  .aura-menu__radio.is-on::after { content: ''; width: 8px; height: 8px; border-radius: var(--aura-radius-full); background: var(--aura-control-checked-bg); }
323
323
  /* 5.7: a header above the items (who is signed in), set off by a hairline like a separator. */
324
- .aura-menu__header { margin: calc(-1 * var(--aura-space-1)) calc(-1 * var(--aura-space-1)) var(--aura-space-1); padding: var(--aura-space-3); border-bottom: 1px solid var(--aura-border-default); color: var(--aura-fg-secondary); font-size: 12px; line-height: 18px; overflow-wrap: anywhere; }
324
+ .aura-menu__header { margin: calc(-1 * var(--aura-space-1)) calc(-1 * var(--aura-space-1)) var(--aura-space-1); padding: var(--aura-space-3); border-bottom: 1px solid var(--aura-border-default); color: var(--aura-fg-secondary); font-size: max(12px, .75rem); line-height: max(18px, 1.125rem); overflow-wrap: anywhere; }
325
325
  .aura-menu__header > * { margin: 0; }
326
326
  /* Stays in view when a long menu scrolls. */
327
327
  .aura-menu.has-header .aura-menu__header { position: sticky; top: calc(-1 * var(--aura-space-1)); z-index: 1; background: var(--aura-bg-surface); }
328
- .aura-menu__header strong, .aura-menu__header b { color: var(--aura-fg-primary); font-weight: 500; font-size: 13px; }
328
+ .aura-menu__header strong, .aura-menu__header b { color: var(--aura-fg-primary); font-weight: 500; font-size: max(13px, .8125rem); }
329
329
  .aura-menu__sep { height: 1px; margin: var(--aura-space-1) calc(-1 * var(--aura-space-1)); background: var(--aura-border-default); }
330
330
 
331
331
  /* Footer + pager */
332
332
  .aura-table__foot {
333
- height: var(--aura-table-row-height); display: flex; align-items: center; justify-content: space-between;
333
+ min-height: var(--aura-table-row-height); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; column-gap: var(--aura-space-3); /* 5.40: grows and wraps with a larger default font */
334
334
  padding: 0 var(--aura-space-3) 0 var(--aura-space-6);
335
335
  border-top: 1px solid var(--aura-border-default); background: var(--aura-bg-surface);
336
- font-size: 13px; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums;
336
+ font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums;
337
337
  }
338
338
  .aura-table__pager { display: inline-flex; align-items: center; gap: var(--aura-space-1); }
339
339
  .aura-table__pager > span { margin-right: var(--aura-space-2); }
@@ -346,7 +346,7 @@ a.aura-icon-btn { text-decoration: none; }
346
346
  border: 0; border-radius: var(--aura-radius-full); background: transparent; color: var(--aura-fg-primary);
347
347
  cursor: pointer; transition: background var(--aura-duration-fast) var(--aura-ease);
348
348
  }
349
- .aura-icon-btn:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
349
+ .aura-icon-btn:hover, .aura-icon-btn[aria-haspopup][aria-expanded="true"] { background: var(--aura-hover, var(--aura-bg-surface-hover)); } /* 5.41 (DxT #22): looks open while its menu shows */
350
350
  .aura-icon-btn--danger { color: var(--aura-fg-danger); }
351
351
  .aura-icon-btn--danger:hover { background: var(--aura-alert-danger-bg); }
352
352
  .aura-icon-btn:disabled { opacity: var(--aura-disabled-opacity); pointer-events: none; }
@@ -400,8 +400,8 @@ a.aura-icon-btn { text-decoration: none; }
400
400
  border-radius: var(--aura-radius-full); background: var(--aura-bg-canvas); color: var(--aura-fg-secondary);
401
401
  margin-bottom: var(--aura-space-4);
402
402
  }
403
- .aura-table__empty-title { margin: 0; font-size: 14px; font-weight: 600; color: var(--aura-fg-primary); }
404
- .aura-table__empty-text { margin: var(--aura-space-1) 0 0; font-size: 13px; line-height: 1.7; color: var(--aura-fg-secondary); }
403
+ .aura-table__empty-title { margin: 0; font-size: max(14px, .875rem); font-weight: 600; color: var(--aura-fg-primary); }
404
+ .aura-table__empty-text { margin: var(--aura-space-1) 0 0; font-size: max(13px, .8125rem); line-height: 1.7; color: var(--aura-fg-secondary); }
405
405
  .aura-table__empty-action { margin-top: var(--aura-space-6); }
406
406
 
407
407
  /* Checkbox — 16px, 4px corners, ink when checked */
@@ -431,9 +431,9 @@ a.aura-icon-btn { text-decoration: none; }
431
431
  max-width: 100%;
432
432
  border-radius: var(--aura-radius-full);
433
433
  padding: 2px var(--aura-space-2) 2px 6px;
434
- font-size: 11px;
434
+ font-size: max(11px, .6875rem);
435
435
  font-weight: 500; /* 5.30 (Chamber-OS 137): medium everywhere, not the parent's weight; Badge stays 600 */
436
- line-height: 16px;
436
+ line-height: max(16px, 1rem);
437
437
  white-space: nowrap;
438
438
  background: var(--aura-status-neutral-bg);
439
439
  color: var(--aura-status-neutral-fg);
@@ -489,14 +489,14 @@ a.aura-icon-btn { text-decoration: none; }
489
489
 
490
490
  /* ---------- Forms ---------- */
491
491
  .aura-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; font-family: var(--font-sans); }
492
- .aura-field__label { padding: 0; font-size: 13px; line-height: 1.4; font-weight: 500; color: var(--aura-fg-primary); }
492
+ .aura-field__label { padding: 0; font-size: max(13px, .8125rem); line-height: 1.4; font-weight: 500; color: var(--aura-fg-primary); }
493
493
  .aura-field__req { color: var(--aura-fg-danger); }
494
494
  .aura-field__opt { font-weight: 400; color: var(--aura-fg-tertiary); }
495
- .aura-field__hint, .aura-field__error { display: flex; align-items: flex-start; gap: var(--aura-space-1); margin: 0; font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
495
+ .aura-field__hint, .aura-field__error { display: flex; align-items: flex-start; gap: var(--aura-space-1); margin: 0; font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
496
496
  .aura-field__error { color: var(--aura-fg-danger); }
497
497
  .aura-field__error .aura-icon { margin-top: 2px; }
498
498
  /* 5.31 (Chamber-OS addendum 41): TextField/Textarea `labelAddon`, between the label and the box, in the field's gap. */
499
- .aura-field__addon { min-width: 0; font-size: 13px; line-height: 1.5; color: var(--aura-fg-primary); }
499
+ .aura-field__addon { min-width: 0; font-size: max(13px, .8125rem); line-height: 1.5; color: var(--aura-fg-primary); }
500
500
  .aura-field.is-disabled .aura-field__label { color: var(--aura-fg-secondary); }
501
501
 
502
502
  .aura-input {
@@ -519,7 +519,7 @@ a.aura-icon-btn { text-decoration: none; }
519
519
  .aura-input__control::placeholder, .aura-textarea::placeholder { color: var(--aura-fg-tertiary); opacity: 1; }
520
520
  .aura-input.has-icon .aura-input__control { padding-left: calc(var(--aura-space-3) + var(--aura-icon-sm) + var(--aura-space-2)); }
521
521
  .aura-input__icon { position: absolute; left: var(--aura-space-3); color: var(--aura-fg-secondary); pointer-events: none; }
522
- .aura-input__suffix { padding: 0 var(--aura-space-3) 0 0; color: var(--aura-fg-secondary); font-size: 13px; white-space: nowrap; }
522
+ .aura-input__suffix { padding: 0 var(--aura-space-3) 0 0; color: var(--aura-fg-secondary); font-size: max(13px, .8125rem); white-space: nowrap; }
523
523
  .aura-field.is-invalid .aura-input, .aura-field.is-invalid .aura-textarea { border-color: var(--aura-border-danger); }
524
524
  .aura-field.is-disabled .aura-input { background: var(--aura-bg-input-disabled); color: var(--aura-fg-secondary); border-color: var(--aura-border-default); }
525
525
  .aura-field.is-disabled .aura-input__control { cursor: not-allowed; }
@@ -544,7 +544,7 @@ a.aura-icon-btn { text-decoration: none; }
544
544
  .aura-select__trigger:disabled { cursor: not-allowed; }
545
545
  .aura-select__value { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
546
546
  .aura-select__value.is-placeholder { color: var(--aura-fg-tertiary); }
547
- .aura-select__group { padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--aura-fg-tertiary); }
547
+ .aura-select__group { padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: max(11px, .6875rem); text-transform: uppercase; letter-spacing: 0.04em; color: var(--aura-fg-tertiary); }
548
548
  .aura-select.is-open .aura-select__chevron { transform: rotate(180deg); }
549
549
  /* 5.19 (Chamber-OS 114): a read-only Select looks like a read-only TextField — the same ground, no chevron (it doesn't
550
550
  * open), no pointer; the value keeps full contrast. */
@@ -554,11 +554,11 @@ a.aura-icon-btn { text-decoration: none; }
554
554
  .aura-radio-group > legend { margin-bottom: 6px; }
555
555
  .aura-radio-group__list { display: flex; flex-direction: column; gap: var(--aura-space-3); }
556
556
  .aura-radio-group__list.is-horizontal { flex-direction: row; flex-wrap: wrap; gap: var(--aura-space-3) var(--aura-space-6); }
557
- .aura-choice { display: flex; align-items: flex-start; gap: var(--aura-space-2); cursor: pointer; font-size: 14px; color: var(--aura-fg-primary); }
557
+ .aura-choice { display: flex; align-items: flex-start; gap: var(--aura-space-2); cursor: pointer; font-size: max(14px, .875rem); color: var(--aura-fg-primary); }
558
558
  .aura-choice.is-disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
559
559
  .aura-choice__text { display: flex; flex-direction: column; gap: 2px; }
560
- .aura-choice__label { font-size: 14px; line-height: 20px; color: var(--aura-fg-primary); cursor: inherit; }
561
- .aura-choice__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
560
+ .aura-choice__label { font-size: max(14px, .875rem); line-height: max(20px, 1.25rem); color: var(--aura-fg-primary); cursor: inherit; }
561
+ .aura-choice__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
562
562
  .aura-radio {
563
563
  appearance: none; -webkit-appearance: none; flex: none; margin: 2px 0 0; box-sizing: border-box;
564
564
  width: var(--aura-icon-sm); height: var(--aura-icon-sm); border-radius: var(--aura-radius-full);
@@ -601,11 +601,11 @@ a.aura-icon-btn { text-decoration: none; }
601
601
  .aura-alert {
602
602
  display: flex; align-items: flex-start; gap: var(--aura-space-3); padding: var(--aura-space-4);
603
603
  border: 1px solid var(--aura-alert-info-border); border-radius: var(--aura-radius-lg);
604
- background: var(--aura-alert-info-bg); color: var(--aura-fg-primary); font-family: var(--font-sans); font-size: 14px;
604
+ background: var(--aura-alert-info-bg); color: var(--aura-fg-primary); font-family: var(--font-sans); font-size: max(14px, .875rem);
605
605
  }
606
606
  .aura-alert__icon { margin-top: 2px; color: var(--aura-alert-info-fg); }
607
607
  .aura-alert__body { flex: 1; min-width: 0; }
608
- .aura-alert__title { margin: 0; font-size: 14px; font-weight: 600; line-height: 20px; color: var(--aura-alert-info-fg); }
608
+ .aura-alert__title { margin: 0; font-size: max(14px, .875rem); font-weight: 600; line-height: max(20px, 1.25rem); color: var(--aura-alert-info-fg); }
609
609
  .aura-alert__text { margin-top: 2px; line-height: 1.6; }
610
610
  .aura-alert__title + .aura-alert__text { margin-top: var(--aura-space-1); }
611
611
  .aura-alert__text p { margin: 0; }
@@ -638,8 +638,8 @@ a.aura-icon-btn { text-decoration: none; }
638
638
  .aura-toast--warning .aura-toast__icon { color: var(--aura-alert-warning-fg); }
639
639
  .aura-toast--danger .aura-toast__icon { color: var(--aura-alert-danger-fg); }
640
640
  .aura-toast__body { flex: 1; min-width: 0; padding-top: 1px; }
641
- .aura-toast__title { margin: 0; font-size: 14px; font-weight: 500; line-height: 20px; }
642
- .aura-toast__text { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--aura-fg-secondary); }
641
+ .aura-toast__title { margin: 0; font-size: max(14px, .875rem); font-weight: 500; line-height: max(20px, 1.25rem); }
642
+ .aura-toast__text { margin: 2px 0 0; font-size: max(13px, .8125rem); line-height: 1.5; color: var(--aura-fg-secondary); }
643
643
  .aura-toast__text > * { margin: 0; }
644
644
  .aura-toast__text a { color: var(--aura-fg-accent); text-underline-offset: 2px; }
645
645
  .aura-toast__text a:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; border-radius: var(--aura-radius-xs); }
@@ -652,7 +652,7 @@ a.aura-icon-btn { text-decoration: none; }
652
652
  .aura-toast__action {
653
653
  flex: none; align-self: center; height: var(--aura-control-sm); padding: 0 var(--aura-space-2);
654
654
  border: 0; border-radius: var(--aura-radius-sm); background: transparent; color: var(--aura-fg-accent);
655
- font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
655
+ font: inherit; font-size: max(13px, .8125rem); font-weight: 500; cursor: pointer;
656
656
  display: inline-flex; align-items: center; text-decoration: none; white-space: nowrap;
657
657
  }
658
658
  /* Touch (5.6): the 32px action gets a 44px hit area, as IconButton does. Links in the text only get a little padding —
@@ -672,7 +672,7 @@ a.aura-icon-btn { text-decoration: none; }
672
672
  position: fixed; z-index: var(--aura-z-tooltip); max-width: var(--aura-tooltip-max);
673
673
  padding: 6px var(--aura-space-2); border-radius: var(--aura-radius-sm);
674
674
  background: var(--aura-bg-inverted); color: var(--aura-fg-inverted);
675
- font-family: var(--font-sans); font-size: 12px; line-height: 1.5; pointer-events: none;
675
+ font-family: var(--font-sans); font-size: max(12px, .75rem); line-height: 1.5; pointer-events: none;
676
676
  animation: aura-fade-in var(--aura-duration-fast) var(--aura-ease);
677
677
  }
678
678
  /* The Tooltip component's own tips can be hovered (WCAG 1.4.13, 5.1.1); rail labels and cell tips stay click-through. */
@@ -697,11 +697,11 @@ a.aura-icon-btn { text-decoration: none; }
697
697
  .aura-dialog--md { max-width: var(--aura-dialog-md); }
698
698
  .aura-dialog--lg { max-width: var(--aura-dialog-lg); }
699
699
  .aura-dialog__head { display: flex; align-items: flex-start; gap: var(--aura-space-3); }
700
- .aura-dialog__title { flex: 1; margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
700
+ .aura-dialog__title { flex: 1; margin: 0; font-size: max(16px, 1rem); line-height: 1.5; font-weight: 600; }
701
701
  .aura-dialog__close { margin: -6px -8px 0 0; }
702
- .aura-dialog__desc { margin: var(--aura-space-1) 0 0; font-size: 14px; line-height: 1.7; color: var(--aura-fg-secondary); }
702
+ .aura-dialog__desc { margin: var(--aura-space-1) 0 0; font-size: max(14px, .875rem); line-height: 1.7; color: var(--aura-fg-secondary); }
703
703
  /* Head and footer stay put; only the body scrolls (long forms keep their Save button in view). Side padding moves into the body so focus rings are not clipped. */
704
- .aura-dialog__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: var(--aura-space-4) calc(-1 * var(--aura-space-6)) 0; padding: var(--aura-space-1) var(--aura-space-6); font-size: 14px; line-height: 1.7; }
704
+ .aura-dialog__body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; margin: var(--aura-space-4) calc(-1 * var(--aura-space-6)) 0; padding: var(--aura-space-1) var(--aura-space-6); font-size: max(14px, .875rem); line-height: 1.7; }
705
705
  .aura-dialog__head, .aura-dialog__desc, .aura-dialog__foot { flex: none; }
706
706
  .aura-dialog__foot { margin-top: var(--aura-space-6); display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--aura-space-3); }
707
707
  @media (prefers-reduced-motion: reduce) { .aura-dialog, .aura-scrim, .aura-toast, .aura-tooltip { animation: none; } }
@@ -711,7 +711,7 @@ a.aura-icon-btn { text-decoration: none; }
711
711
  box-sizing: border-box; display: flex; flex-direction: column; gap: var(--aura-space-4);
712
712
  padding: var(--aura-card-padding); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
713
713
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-card-radius); box-shadow: var(--aura-shadow-enterprise);
714
- font-family: var(--font-sans); font-size: 14px;
714
+ font-family: var(--font-sans); font-size: max(14px, .875rem);
715
715
  --aura-card-bleed: var(--aura-card-padding); /* 5.26: how far a bleeding table reaches out; 0 where the card is flush */
716
716
  }
717
717
  .aura-card.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease); }
@@ -743,9 +743,9 @@ a.aura-icon-btn { text-decoration: none; }
743
743
  .aura-card--creative { border: 2px solid var(--aura-border-strong); box-shadow: var(--aura-card-shadow-creative); }
744
744
  .aura-card__head { display: flex; align-items: flex-start; gap: var(--aura-space-3); }
745
745
  .aura-card__heading { flex: 1; min-width: 0; }
746
- .aura-card__title { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
747
- .aura-card--creative .aura-card__title { font-family: var(--font-display); font-size: 24px; line-height: 1.2; }
748
- .aura-card__desc { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--aura-fg-secondary); }
746
+ .aura-card__title { margin: 0; font-size: max(16px, 1rem); line-height: 1.5; font-weight: 600; }
747
+ .aura-card--creative .aura-card__title { font-family: var(--font-display); font-size: max(24px, 1.5rem); line-height: 1.2; }
748
+ .aura-card__desc { margin: 2px 0 0; font-size: max(13px, .8125rem); line-height: 1.5; color: var(--aura-fg-secondary); }
749
749
  .aura-card__actions { display: flex; gap: var(--aura-space-2); margin: -4px -8px 0 0; }
750
750
  .aura-card__body { line-height: 1.7; }
751
751
  .aura-card__foot { display: flex; justify-content: flex-end; gap: var(--aura-space-3); padding-top: var(--aura-space-4); border-top: 1px solid var(--aura-border-subtle); }
@@ -761,7 +761,7 @@ a.aura-icon-btn { text-decoration: none; }
761
761
  box-sizing: border-box; /* 5.39: a link tab (<a>) was 2px taller than a button tab — its underline sat outside the height */
762
762
  height: var(--aura-input-height); padding: 0;
763
763
  border: 0; border-bottom: 2px solid transparent; background: transparent;
764
- color: var(--aura-fg-secondary); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
764
+ color: var(--aura-fg-secondary); font: inherit; font-size: max(13px, .8125rem); font-weight: 500; cursor: pointer;
765
765
  transition: color var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease);
766
766
  }
767
767
  .aura-tab:hover { color: var(--aura-fg-primary); }
@@ -772,7 +772,7 @@ a.aura-tab { text-decoration: none; }
772
772
  .aura-tab__count {
773
773
  min-width: 18px; padding: 0 6px; box-sizing: border-box; border-radius: var(--aura-radius-full);
774
774
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg);
775
- font-size: 11px; line-height: 18px; text-align: center; font-variant-numeric: tabular-nums;
775
+ font-size: max(11px, .6875rem); line-height: max(18px, 1.125rem); text-align: center; font-variant-numeric: tabular-nums;
776
776
  }
777
777
  .aura-tabs__panel { padding-top: var(--aura-space-6); outline: none; }
778
778
  /* 5.39 (Chamber-OS 143): touchHeight — 44px tabs (underline or segmented, buttons or links) below 640px or on a coarse
@@ -798,12 +798,12 @@ a.aura-tab { text-decoration: none; }
798
798
  .aura-nav > .aura-nav__scroll:first-child { padding-top: var(--aura-space-3); }
799
799
  .aura-nav--borderless { border-right: 0; }
800
800
  .aura-nav__section + .aura-nav__section { margin-top: var(--aura-space-5); }
801
- .aura-nav__title { margin: 0 0 var(--aura-space-1); padding: 0 var(--aura-space-3); font-family: var(--font-mono); font-size: 11px; line-height: 20px; color: var(--aura-fg-tertiary); text-transform: uppercase; letter-spacing: 0.04em; }
801
+ .aura-nav__title { margin: 0 0 var(--aura-space-1); padding: 0 var(--aura-space-3); font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: max(20px, 1.25rem); color: var(--aura-fg-tertiary); text-transform: uppercase; letter-spacing: 0.04em; }
802
802
  .aura-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
803
803
  .aura-nav__item {
804
804
  box-sizing: border-box; display: flex; align-items: center; gap: var(--aura-space-3); width: 100%;
805
805
  min-height: 36px; padding: var(--aura-space-1) var(--aura-space-3); border: 0; border-radius: var(--aura-radius-sm);
806
- background: transparent; color: var(--aura-fg-secondary); font: inherit; font-size: 13px; font-weight: 500;
806
+ background: transparent; color: var(--aura-fg-secondary); font: inherit; font-size: max(13px, .8125rem); font-weight: 500;
807
807
  text-decoration: none; text-align: left; cursor: pointer;
808
808
  transition: background var(--aura-duration-fast) var(--aura-ease), color var(--aura-duration-fast) var(--aura-ease);
809
809
  }
@@ -829,10 +829,10 @@ a.aura-tab { text-decoration: none; }
829
829
  * ("Marknadsförings-" / "målgrupp"); breaking anywhere is only the last resort. Only words of 12+ letters hyphenate,
830
830
  * with 5+ on each side, so ordinary English labels keep wrapping between words. */
831
831
  .aura-nav__label {
832
- flex: 1; min-width: 0; line-height: 18px; overflow: hidden; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 5 5;
832
+ flex: 1; min-width: 0; line-height: max(18px, 1.125rem); overflow: hidden; overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; hyphenate-limit-chars: 12 5 5;
833
833
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
834
834
  }
835
- .aura-nav__count { font-size: 11px; font-variant-numeric: tabular-nums; color: var(--aura-fg-secondary); }
835
+ .aura-nav__count { font-size: max(11px, .6875rem); font-variant-numeric: tabular-nums; color: var(--aura-fg-secondary); }
836
836
  .aura-nav__badge { display: inline-flex; align-items: center; flex: none; }
837
837
  /* Groups: a disclosure button, its items indented one step per level. */
838
838
  .aura-nav__item { padding-left: calc(var(--aura-space-3) + var(--aura-nav-depth, 0) * (var(--aura-icon-sm) + var(--aura-space-3))); }
@@ -862,7 +862,7 @@ a.aura-tab { text-decoration: none; }
862
862
  .aura-nav--collapsed .aura-nav__item--group.has-active .aura-icon { color: var(--aura-fg-accent); }
863
863
  .aura-nav__initial {
864
864
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: var(--aura-radius-sm);
865
- background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg); font-size: 12px; font-weight: 600; text-transform: uppercase;
865
+ background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg); font-size: max(12px, .75rem); font-weight: 600; text-transform: uppercase;
866
866
  }
867
867
  .aura-nav__dot {
868
868
  position: absolute; top: 6px; left: calc(50% + 5px); width: 8px; height: 8px; border-radius: var(--aura-radius-full);
@@ -872,7 +872,7 @@ a.aura-tab { text-decoration: none; }
872
872
  @media (prefers-reduced-motion: reduce) { .aura-nav { transition: none; } }
873
873
 
874
874
  /* ---------- Breadcrumb ---------- */
875
- .aura-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); list-style: none; margin: 0; padding: 0; font-family: var(--font-sans); font-size: 13px; }
875
+ .aura-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); list-style: none; margin: 0; padding: 0; font-family: var(--font-sans); font-size: max(13px, .8125rem); }
876
876
  .aura-crumbs li { display: inline-flex; align-items: center; gap: var(--aura-space-2); }
877
877
  .aura-crumbs a, .aura-crumbs button {
878
878
  padding: 0; border: 0; background: none; font: inherit; color: var(--aura-fg-secondary); text-decoration: none; cursor: pointer; border-radius: var(--aura-radius-xs);
@@ -912,6 +912,7 @@ a.aura-tab { text-decoration: none; }
912
912
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg);
913
913
  }
914
914
  .aura-avatar img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
915
+ /* Initials keep px: they are sized to the circle, and the name is the accessible name (5.40). */
915
916
  .aura-avatar--sm { width: var(--aura-avatar-sm); height: var(--aura-avatar-sm); font-size: 10px; }
916
917
  .aura-avatar--md { width: var(--aura-avatar-md); height: var(--aura-avatar-md); font-size: 12px; }
917
918
  .aura-avatar--lg { width: var(--aura-avatar-lg); height: var(--aura-avatar-lg); font-size: 14px; }
@@ -943,7 +944,7 @@ a.aura-tab { text-decoration: none; }
943
944
  position: fixed; z-index: var(--aura-z-menu); box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain;
944
945
  background: var(--aura-bg-surface); color: var(--aura-fg-primary);
945
946
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-md); box-shadow: var(--aura-shadow-overlay);
946
- font-family: var(--font-sans); font-size: 14px;
947
+ font-family: var(--font-sans); font-size: max(14px, .875rem);
947
948
  }
948
949
  .aura-combo__list { list-style: none; margin: 0; padding: var(--aura-space-1); }
949
950
  .aura-combo__option {
@@ -956,15 +957,15 @@ a.aura-tab { text-decoration: none; }
956
957
  .aura-combo__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
957
958
  .aura-combo__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
958
959
  .aura-combo__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
959
- .aura-combo__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
960
+ .aura-combo__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
960
961
  /* Same specificity as `.aura-combo__option > .aura-icon` above and later in the file, so it wins by order (4.18). */
961
962
  .aura-combo__option > .aura-combo__check { color: var(--aura-fg-accent); }
962
963
  /* 5.16 (Chamber-OS 105): option groups under a heading. */
963
964
  .aura-combo__group { list-style: none; }
964
965
  .aura-combo__group + .aura-combo__group, .aura-combo__option + .aura-combo__group { margin-top: var(--aura-space-1); padding-top: var(--aura-space-1); border-top: 1px solid var(--aura-border-subtle); }
965
- .aura-combo__group-label { display: block; padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--aura-fg-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
966
+ .aura-combo__group-label { display: block; padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: max(16px, 1rem); color: var(--aura-fg-secondary); text-transform: uppercase; letter-spacing: 0.04em; }
966
967
  .aura-combo__grouplist { list-style: none; margin: 0; padding: 0; }
967
- .aura-combo__note { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-3) var(--aura-space-2); font-size: 13px; color: var(--aura-fg-secondary); }
968
+ .aura-combo__note { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-3) var(--aura-space-2); font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); }
968
969
 
969
970
  /* ---------- DatePicker / Calendar ---------- */
970
971
  .aura-date .aura-input__control { padding-right: calc(var(--aura-space-2) + 2 * var(--aura-control-sm)); font-variant-numeric: tabular-nums; }
@@ -977,21 +978,21 @@ a.aura-tab { text-decoration: none; }
977
978
  font-family: var(--font-sans);
978
979
  }
979
980
  .aura-cal { width: calc(7 * var(--aura-cal-cell)); }
980
- .aura-cal__hint { margin: 0 0 var(--aura-space-2); font-size: 12px; color: var(--aura-fg-secondary); text-align: center; }
981
+ .aura-cal__hint { margin: 0 0 var(--aura-space-2); font-size: max(12px, .75rem); color: var(--aura-fg-secondary); text-align: center; }
981
982
  .aura-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--aura-space-2); }
982
983
  .aura-cal__title {
983
- display: inline-flex; align-items: center; gap: var(--aura-space-1); height: var(--aura-control-sm); padding: 0 var(--aura-space-2);
984
+ display: inline-flex; align-items: center; gap: var(--aura-space-1); min-height: var(--aura-control-sm); padding: 0 var(--aura-space-2);
984
985
  border: 0; border-radius: var(--aura-radius-sm); background: transparent; color: var(--aura-fg-primary);
985
- font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
986
+ font: inherit; font-size: max(14px, .875rem); font-weight: 600; cursor: pointer;
986
987
  }
987
988
  .aura-cal__title:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
988
989
  .aura-cal__title:focus-visible, .aura-cal__link:focus-visible, .aura-cal__year:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 0; }
989
990
  .aura-cal__grid { border-collapse: separate; border-spacing: 0 2px; width: 100%; }
990
- .aura-cal__grid th { height: 28px; padding: 0; font-size: 12px; font-weight: 500; color: var(--aura-fg-secondary); }
991
+ .aura-cal__grid th { height: 28px; padding: 0; font-size: max(12px, .75rem); font-weight: 500; color: var(--aura-fg-secondary); }
991
992
  .aura-cal__grid td { padding: 0; text-align: center; }
992
993
  .aura-cal__day {
993
994
  width: var(--aura-cal-cell); height: var(--aura-cal-cell); padding: 0; border: 0; border-radius: var(--aura-radius-full);
994
- background: transparent; color: var(--aura-fg-primary); font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; cursor: pointer;
995
+ background: transparent; color: var(--aura-fg-primary); font: inherit; font-size: max(13px, .8125rem); font-variant-numeric: tabular-nums; cursor: pointer;
995
996
  }
996
997
  .aura-cal__day:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
997
998
  .aura-cal__day.is-outside { color: var(--aura-fg-tertiary); }
@@ -1006,14 +1007,14 @@ a.aura-tab { text-decoration: none; }
1006
1007
  .aura-cal__years { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aura-space-1); }
1007
1008
  .aura-cal__year {
1008
1009
  height: 40px; border: 0; border-radius: var(--aura-radius-sm); background: transparent; color: var(--aura-fg-primary);
1009
- font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; cursor: pointer;
1010
+ font: inherit; font-size: max(13px, .8125rem); font-variant-numeric: tabular-nums; cursor: pointer;
1010
1011
  }
1011
1012
  .aura-cal__year:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1012
1013
  .aura-cal__year.is-selected { background: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
1013
1014
  .aura-cal__foot { display: flex; justify-content: space-between; margin-top: var(--aura-space-2); padding-top: var(--aura-space-2); border-top: 1px solid var(--aura-border-subtle); }
1014
1015
  .aura-cal__link {
1015
1016
  height: var(--aura-control-sm); padding: 0 var(--aura-space-2); border: 0; border-radius: var(--aura-radius-sm);
1016
- background: transparent; color: var(--aura-fg-accent); font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
1017
+ background: transparent; color: var(--aura-fg-accent); font: inherit; font-size: max(13px, .8125rem); font-weight: 500; cursor: pointer;
1017
1018
  }
1018
1019
  .aura-cal__link:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1019
1020
  .aura-cal__link:disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
@@ -1036,10 +1037,10 @@ a.aura-tab { text-decoration: none; }
1036
1037
  .aura-drawer--nav { max-width: var(--aura-sidenav-width); }
1037
1038
  .aura-drawer__head { display: flex; align-items: center; gap: var(--aura-space-3); padding: var(--aura-space-4) var(--aura-space-4) var(--aura-space-2) var(--aura-space-6); }
1038
1039
  .aura-drawer--nav .aura-drawer__head { position: absolute; top: var(--aura-space-2); inset-inline-end: var(--aura-space-2); padding: 0; z-index: 1; } /* 5.32: inline-end, so RTL puts it on the left with the header's room */
1039
- .aura-drawer__title { flex: 1; margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
1040
- .aura-drawer__desc { margin: 0; padding: 0 var(--aura-space-6); font-size: 14px; line-height: 1.7; color: var(--aura-fg-secondary); }
1040
+ .aura-drawer__title { flex: 1; margin: 0; font-size: max(16px, 1rem); line-height: 1.5; font-weight: 600; }
1041
+ .aura-drawer__desc { margin: 0; padding: 0 var(--aura-space-6); font-size: max(14px, .875rem); line-height: 1.7; color: var(--aura-fg-secondary); }
1041
1042
  .aura-drawer__body {
1042
- flex: 1; overflow-y: auto; padding: var(--aura-space-4) var(--aura-space-6); font-size: 14px; line-height: 1.7;
1043
+ flex: 1; overflow-y: auto; padding: var(--aura-space-4) var(--aura-space-6); font-size: max(14px, .875rem); line-height: 1.7;
1043
1044
  /* 5.14 (Chamber-OS 91): a field scrolled into view (focus, the phone keyboard) keeps clear of the head and foot. */
1044
1045
  scroll-padding-block: var(--aura-space-4);
1045
1046
  }
@@ -1125,6 +1126,9 @@ a.aura-tab { text-decoration: none; }
1125
1126
  .aura-shell__bar--menu-only { display: none; }
1126
1127
  }
1127
1128
  .aura-shell__bar-content { flex: 1; min-width: 0; display: flex; align-items: center; gap: var(--aura-space-3); }
1129
+ /* 5.41 (DxT Monitor #19): a page with its own back arrow marks itself with data-aura-hide-menubutton (on any element)
1130
+ * and the bar drops the menu button, as BottomNav does for data-aura-hide-bottomnav. */
1131
+ :root:has([data-aura-hide-menubutton]) :is(.aura-shell__menu, .aura-shell__bar--no-header) { display: none; } /* with no header the bar would be empty */
1128
1132
  .aura-shell__content { flex: 1; min-width: 0; padding: var(--aura-space-6) var(--aura-space-4); }
1129
1133
  /* 5.7: <main> takes focus (tabIndex -1) for skip links and "the row you acted on is gone"; a landmark gets no ring. */
1130
1134
  .aura-shell__content:focus { outline: none; }
@@ -1140,11 +1144,25 @@ a.aura-tab { text-decoration: none; }
1140
1144
  * 28px and the actions wrap under the text. */
1141
1145
  .aura-page-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--aura-space-4) var(--aura-space-6); min-width: 0; font-family: var(--font-sans); }
1142
1146
  .aura-page-header__text { display: flex; flex-direction: column; gap: var(--aura-space-1); flex: 1 1 320px; min-width: 0; }
1143
- .aura-page-header__eyebrow { margin: 0; font-family: var(--font-mono); font-size: 12px; line-height: 1.7; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1144
- .aura-page-header__title { margin: 0; font-family: var(--font-display); font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -0.01em; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1147
+ .aura-page-header__eyebrow { margin: 0; font-family: var(--font-mono); font-size: max(12px, .75rem); line-height: 1.7; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1148
+ .aura-page-header__title { margin: 0; font-family: var(--font-display); font-size: max(28px, 1.75rem); line-height: 1.15; font-weight: 600; letter-spacing: -0.01em; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1145
1149
  .aura-page-header__breadcrumb { min-width: 0; } /* 5.33 (DxT Monitor #7): Breadcrumb keeps its own type */
1146
- .aura-page-header__meta { min-width: 0; font-size: 13px; line-height: 1.5; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1150
+ .aura-page-header__meta { min-width: 0; font-size: max(13px, .8125rem); line-height: 1.5; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1147
1151
  .aura-page-header__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-2); }
1152
+ /* 5.41 (DxT Monitor #20): titleHideBelow — the title is visually hidden (still the heading), the breadcrumb and eyebrow
1153
+ * are gone; with no meta line the text block takes no room, so the actions start the header. */
1154
+ @media (max-width: 639.98px) {
1155
+ .aura-page-header--title-hide-below-sm .aura-page-header__title, .aura-page-header--title-hide-below-sm.has-no-meta > .aura-page-header__text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
1156
+ .aura-page-header--title-hide-below-sm :is(.aura-page-header__breadcrumb, .aura-page-header__eyebrow) { display: none; }
1157
+ }
1158
+ @media (max-width: 767.98px) {
1159
+ .aura-page-header--title-hide-below-md .aura-page-header__title, .aura-page-header--title-hide-below-md.has-no-meta > .aura-page-header__text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
1160
+ .aura-page-header--title-hide-below-md :is(.aura-page-header__breadcrumb, .aura-page-header__eyebrow) { display: none; }
1161
+ }
1162
+ @media (max-width: 1023.98px) {
1163
+ .aura-page-header--title-hide-below-lg .aura-page-header__title, .aura-page-header--title-hide-below-lg.has-no-meta > .aura-page-header__text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
1164
+ .aura-page-header--title-hide-below-lg :is(.aura-page-header__breadcrumb, .aura-page-header__eyebrow) { display: none; }
1165
+ }
1148
1166
  /* 5.37 (DxT Monitor #17): actionsFullWidthBelow — the actions take the row under the text; their children share
1149
1167
  * each line equally (wrapping when a label won't fit), a trigger inside a DropdownMenu, Tooltip or Popover wrapper
1150
1168
  * fills it, and icon buttons keep their size. The :has rule is alone so older browsers drop only it. */
@@ -1169,7 +1187,7 @@ a.aura-tab { text-decoration: none; }
1169
1187
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-icon-btn { flex: none; }
1170
1188
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :has(> .aura-icon-btn) { flex: none; }
1171
1189
  }
1172
- @media (min-width: 640px) { .aura-page-header__title { font-size: 36px; } }
1190
+ @media (min-width: 640px) { .aura-page-header__title { font-size: max(36px, 2.25rem); } }
1173
1191
  /* Thai marks need the room a 1.15 line takes away. */
1174
1192
  .aura-page-header__title:lang(th) { line-height: 1.4; letter-spacing: 0; }
1175
1193
  .aura-page-header__meta:lang(th) { line-height: 1.6; }
@@ -1187,27 +1205,27 @@ a.aura-tab { text-decoration: none; }
1187
1205
  box-sizing: border-box; display: flex; flex-direction: column; gap: var(--aura-space-2); min-width: 0;
1188
1206
  padding: var(--aura-space-5); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1189
1207
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-card-radius); box-shadow: var(--aura-shadow-enterprise);
1190
- font-family: var(--font-sans); font-size: 14px; text-align: left; text-decoration: none;
1208
+ font-family: var(--font-sans); font-size: max(14px, .875rem); text-align: left; text-decoration: none;
1191
1209
  }
1192
1210
  button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1193
1211
  .aura-stat.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease), background var(--aura-duration-fast) var(--aura-ease); }
1194
1212
  .aura-stat.is-interactive:hover { border-color: var(--aura-border-strong); }
1195
1213
  .aura-stat.is-interactive:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
1196
1214
  .aura-stat__head { display: flex; align-items: center; justify-content: space-between; gap: var(--aura-space-2); }
1197
- .aura-stat__label { margin: 0; font-size: 13px; font-weight: 500; color: var(--aura-fg-secondary); } /* 5.14: may be a heading */
1215
+ .aura-stat__label { margin: 0; font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-secondary); } /* 5.14: may be a heading */
1198
1216
  .aura-stat__icon { display: inline-flex; color: var(--aura-fg-secondary); }
1199
- .aura-stat__value { display: flex; align-items: baseline; gap: var(--aura-space-1); font-size: 28px; line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; min-height: 34px; }
1217
+ .aura-stat__value { display: flex; align-items: baseline; gap: var(--aura-space-1); font-size: max(28px, 1.75rem); line-height: 1.2; font-weight: 600; letter-spacing: -0.01em; min-height: 34px; }
1200
1218
  .aura-stat__value.is-numeric { font-variant-numeric: tabular-nums; }
1201
- .aura-stat__unit { font-size: 14px; font-weight: 500; color: var(--aura-fg-secondary); letter-spacing: 0; }
1219
+ .aura-stat__unit { font-size: max(14px, .875rem); font-weight: 500; color: var(--aura-fg-secondary); letter-spacing: 0; }
1202
1220
  .aura-stat__skel { width: 55%; height: 24px; align-self: center; }
1203
- .aura-stat__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); font-size: 12px; }
1221
+ .aura-stat__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); font-size: max(12px, .75rem); }
1204
1222
  .aura-stat__change { display: inline-flex; align-items: center; gap: 2px; font-weight: 600; font-variant-numeric: tabular-nums; }
1205
1223
  .aura-stat__change.is-positive { color: var(--aura-fg-positive); }
1206
1224
  .aura-stat__change.is-negative { color: var(--aura-fg-danger); }
1207
1225
  .aura-stat__change.is-neutral { color: var(--aura-fg-secondary); }
1208
1226
  .aura-stat__caption { color: var(--aura-fg-secondary); }
1209
1227
  /* 5.17 (Chamber-OS 110): a status line under the value, and a link on the label that covers the tile. */
1210
- .aura-stat__status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); font-size: 13px; color: var(--aura-fg-secondary); }
1228
+ .aura-stat__status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); }
1211
1229
  .aura-stat--label-link { position: relative; }
1212
1230
  .aura-stat__link { color: inherit; text-decoration: none; }
1213
1231
  .aura-stat__link::after { content: ''; position: absolute; inset: 0; border-radius: var(--aura-card-radius); }
@@ -1229,7 +1247,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1229
1247
  position: relative; box-sizing: border-box; display: flex; flex-direction: column; gap: 2px; min-width: 0;
1230
1248
  padding: var(--aura-space-2) var(--aura-space-3); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1231
1249
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-sm);
1232
- font-family: var(--font-sans); font-size: 13px; line-height: 18px; text-align: start; text-decoration: none;
1250
+ font-family: var(--font-sans); font-size: max(13px, .8125rem); line-height: max(18px, 1.125rem); text-align: start; text-decoration: none;
1233
1251
  --aura-hover: var(--aura-bg-surface-hover);
1234
1252
  }
1235
1253
  .aura-status-tile--down { background: var(--aura-alert-danger-bg); border-color: var(--aura-alert-danger-border); }
@@ -1265,11 +1283,11 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1265
1283
  .aura-status-tile__value { flex-basis: 100%; margin-inline-start: 0; padding-inline-start: 24px; }
1266
1284
  }
1267
1285
  /* The second line starts under the title. */
1268
- .aura-status-tile__foot { display: flex; align-items: center; gap: var(--aura-space-2); min-width: 0; padding-inline-start: 24px; font-size: 12px; color: var(--aura-fg-secondary); }
1286
+ .aura-status-tile__foot { display: flex; align-items: center; gap: var(--aura-space-2); min-width: 0; padding-inline-start: 24px; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1269
1287
  .aura-status-tile__meta { flex: 1; min-width: 0; overflow-wrap: anywhere; }
1270
1288
  .aura-status-tile__markers { display: inline-flex; align-items: center; gap: var(--aura-space-1); margin-inline-start: auto; flex: none; }
1271
1289
  .aura-status-tile__marker { display: inline-flex; }
1272
- .aura-status-tile:lang(th) { line-height: 20px; }
1290
+ .aura-status-tile:lang(th) { line-height: max(20px, 1.25rem); }
1273
1291
  .aura-sparkline { display: inline-block; flex: none; vertical-align: middle; overflow: visible; color: var(--aura-fg-secondary); }
1274
1292
  .aura-sparkline.is-accent { color: var(--aura-fg-accent); }
1275
1293
  .aura-sparkline.is-danger { color: var(--aura-fg-danger); }
@@ -1292,7 +1310,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1292
1310
  .aura-upload {
1293
1311
  position: relative; box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--aura-space-2);
1294
1312
  min-height: 96px; padding: var(--aura-space-5); text-align: center; cursor: pointer;
1295
- background: var(--aura-bg-input); color: var(--aura-fg-secondary); font-size: 14px;
1313
+ background: var(--aura-bg-input); color: var(--aura-fg-secondary); font-size: max(14px, .875rem);
1296
1314
  border: 1px dashed var(--aura-border-control); border-radius: var(--aura-radius-md);
1297
1315
  transition: border-color var(--aura-duration-fast) var(--aura-ease), background var(--aura-duration-fast) var(--aura-ease);
1298
1316
  }
@@ -1303,7 +1321,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1303
1321
  .aura-upload.is-disabled { opacity: var(--aura-disabled-opacity); pointer-events: none; background: var(--aura-bg-input-disabled); }
1304
1322
  .aura-upload__icon { flex-basis: 100%; color: var(--aura-fg-secondary); }
1305
1323
  .aura-upload__browse { color: var(--aura-fg-accent); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
1306
- .aura-upload__note { flex-basis: 100%; font-size: 12px; color: var(--aura-fg-secondary); }
1324
+ .aura-upload__note { flex-basis: 100%; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1307
1325
  .aura-upload__input { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
1308
1326
  .aura-upload__list { list-style: none; margin: var(--aura-space-3) 0 0; padding: 0; display: grid; gap: var(--aura-space-2); }
1309
1327
  .aura-upload__item {
@@ -1314,26 +1332,26 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1314
1332
  .aura-upload__thumb { flex: none; width: 40px; height: 40px; border-radius: var(--aura-radius-sm); object-fit: cover; background: var(--aura-bg-surface-hover); }
1315
1333
  .aura-upload__thumb.is-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--aura-fg-secondary); }
1316
1334
  .aura-upload__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
1317
- .aura-upload__name { font-size: 13px; font-weight: 500; color: var(--aura-fg-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1335
+ .aura-upload__name { font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1318
1336
  a.aura-upload__name { color: var(--aura-fg-accent); text-decoration: underline; text-underline-offset: 2px; border-radius: var(--aura-radius-xs); }
1319
1337
  a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 2px; }
1320
- .aura-upload__sub { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--aura-fg-secondary); }
1338
+ .aura-upload__sub { display: inline-flex; align-items: center; gap: 4px; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1321
1339
  .aura-upload__item.is-error .aura-upload__sub { color: var(--aura-fg-danger); }
1322
1340
  .aura-upload__bar { display: block; height: 4px; border-radius: var(--aura-radius-full); background: var(--aura-progress-track); box-shadow: inset 0 0 0 1px var(--aura-progress-track-edge); overflow: hidden; }
1323
1341
  .aura-upload__bar > span { display: block; height: 100%; background: var(--aura-fg-accent); transition: width var(--aura-duration-base) var(--aura-ease); }
1324
1342
 
1325
1343
  /* ---------- Checkbox with a visible label ---------- */
1326
- .aura-check--labelled { width: auto; height: auto; max-width: 100%; display: inline-flex; align-items: flex-start; gap: var(--aura-space-2); cursor: pointer; font-size: 14px; line-height: 1.5; color: var(--aura-fg-primary); }
1344
+ .aura-check--labelled { width: auto; height: auto; max-width: 100%; display: inline-flex; align-items: flex-start; gap: var(--aura-space-2); cursor: pointer; font-size: max(14px, .875rem); line-height: 1.5; color: var(--aura-fg-primary); }
1327
1345
  .aura-check--labelled .aura-check__input { inset: auto; top: 3px; left: 0; width: var(--aura-icon-sm); height: var(--aura-icon-sm); }
1328
1346
  .aura-check--labelled .aura-check__box { flex: none; width: var(--aura-icon-sm); height: var(--aura-icon-sm); margin-top: 3px; }
1329
1347
  .aura-check__text { display: flex; flex-direction: column; }
1330
- .aura-check__desc { font-size: 12px; color: var(--aura-fg-secondary); }
1348
+ .aura-check__desc { font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1331
1349
  .aura-check.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1332
1350
 
1333
1351
  /* ---------- Badge ---------- */
1334
1352
  .aura-badge {
1335
- display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 var(--aura-space-2); box-sizing: border-box;
1336
- border-radius: var(--aura-radius-full); border: 1px solid transparent; font-family: var(--font-sans); font-size: 11px; font-weight: 600; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums;
1353
+ display: inline-flex; align-items: center; gap: 4px; min-height: 20px; padding: 0 var(--aura-space-2); box-sizing: border-box; /* 5.40: min-, so a larger default font grows it */
1354
+ border-radius: var(--aura-radius-full); border: 1px solid transparent; font-family: var(--font-sans); font-size: max(11px, .6875rem); font-weight: 600; line-height: 1; white-space: nowrap; font-variant-numeric: tabular-nums;
1337
1355
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg); /* 5.30: surface-hover vanished on the light canvas */
1338
1356
  }
1339
1357
  .aura-badge--accent { background: var(--aura-alert-info-bg); color: var(--aura-alert-info-fg); }
@@ -1349,7 +1367,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1349
1367
  .aura-tag {
1350
1368
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 var(--aura-space-3); box-sizing: border-box;
1351
1369
  border: 1px solid var(--aura-border-control); border-radius: var(--aura-radius-full); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1352
- font-family: var(--font-sans); font-size: 13px; font-weight: 500; white-space: nowrap;
1370
+ font-family: var(--font-sans); font-size: max(13px, .8125rem); font-weight: 500; white-space: nowrap;
1353
1371
  }
1354
1372
  .aura-tag__text { overflow: hidden; text-overflow: ellipsis; max-width: 24ch; }
1355
1373
  .aura-tag.is-selectable { cursor: pointer; transition: background var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease); }
@@ -1365,7 +1383,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1365
1383
 
1366
1384
  /* ---------- Progress ---------- */
1367
1385
  .aura-progress { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-sans); }
1368
- .aura-progress__head { display: flex; justify-content: space-between; gap: var(--aura-space-2); font-size: 13px; }
1386
+ .aura-progress__head { display: flex; justify-content: space-between; gap: var(--aura-space-2); font-size: max(13px, .8125rem); }
1369
1387
  .aura-progress__label { font-weight: 500; color: var(--aura-fg-primary); }
1370
1388
  .aura-progress__value { color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
1371
1389
  .aura-progress__track { position: relative; height: 8px; border-radius: var(--aura-radius-full); background: var(--aura-progress-track); box-shadow: inset 0 0 0 1px var(--aura-progress-track-edge); overflow: hidden; }
@@ -1384,7 +1402,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1384
1402
  .aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
1385
1403
  @keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
1386
1404
  @media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
1387
- .aura-progress__hint { margin: 0; font-size: 12px; color: var(--aura-fg-secondary); }
1405
+ .aura-progress__hint { margin: 0; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1388
1406
 
1389
1407
  /* ---------- Skeleton ---------- */
1390
1408
  .aura-skel--text { height: 10px; margin: 5px 0; }
@@ -1399,8 +1417,8 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1399
1417
  .aura-empty.is-bordered { border: 1px dashed var(--aura-border-control); border-radius: var(--aura-radius-lg); }
1400
1418
  .aura-empty__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: var(--aura-space-2); border-radius: var(--aura-radius-full); background: var(--aura-status-neutral-bg); color: var(--aura-fg-secondary); }
1401
1419
  .aura-empty.is-sm .aura-empty__icon { width: 36px; height: 36px; }
1402
- .aura-empty__title { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
1403
- .aura-empty__text { margin: 0; max-width: 44ch; font-size: 14px; line-height: 1.6; color: var(--aura-fg-secondary); }
1420
+ .aura-empty__title { margin: 0; font-size: max(16px, 1rem); line-height: 1.5; font-weight: 600; }
1421
+ .aura-empty__text { margin: 0; max-width: 44ch; font-size: max(14px, .875rem); line-height: 1.6; color: var(--aura-fg-secondary); }
1404
1422
  .aura-empty__action { margin-top: var(--aura-space-3); display: flex; gap: var(--aura-space-3); flex-wrap: wrap; justify-content: center; }
1405
1423
  /* 5.13 (Chamber-OS 82): tone="danger" — a load failure. */
1406
1424
  .aura-empty.is-danger { background: var(--aura-alert-danger-bg); border-radius: var(--aura-radius-lg); }
@@ -1408,7 +1426,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1408
1426
  .aura-empty.is-danger .aura-empty__icon { background: var(--aura-bg-surface); color: var(--aura-fg-danger); }
1409
1427
 
1410
1428
  /* ---------- Pagination ---------- */
1411
- .aura-pagination { display: flex; align-items: center; gap: var(--aura-space-1); font-family: var(--font-sans); font-size: 13px; }
1429
+ .aura-pagination { display: flex; align-items: center; gap: var(--aura-space-1); font-family: var(--font-sans); font-size: max(13px, .8125rem); }
1412
1430
  .aura-pagination__list { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
1413
1431
  .aura-page {
1414
1432
  display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 var(--aura-space-2); box-sizing: border-box;
@@ -1427,7 +1445,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1427
1445
  /* ---------- Accordion ---------- */
1428
1446
  .aura-accordion { border-top: 1px solid var(--aura-border-default); font-family: var(--font-sans); }
1429
1447
  .aura-accordion__item { border-bottom: 1px solid var(--aura-border-default); }
1430
- .aura-accordion__heading { margin: 0; font-size: 14px; font-weight: 600; }
1448
+ .aura-accordion__heading { margin: 0; font-size: max(14px, .875rem); font-weight: 600; }
1431
1449
  .aura-accordion__heading > button {
1432
1450
  display: flex; align-items: center; gap: var(--aura-space-3); width: 100%; min-height: 48px; padding: var(--aura-space-3) var(--aura-space-1); box-sizing: border-box;
1433
1451
  border: 0; background: transparent; color: var(--aura-fg-primary); font: inherit; text-align: left; cursor: pointer;
@@ -1436,22 +1454,22 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1436
1454
  .aura-accordion__heading > button:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: calc(-1 * var(--aura-focus-ring-width)); border-radius: var(--aura-radius-sm); }
1437
1455
  .aura-accordion__heading > button:disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1438
1456
  .aura-accordion__title { flex: 1; display: flex; flex-direction: column; gap: 2px; }
1439
- .aura-accordion__desc { font-size: 13px; font-weight: 400; color: var(--aura-fg-secondary); }
1457
+ .aura-accordion__desc { font-size: max(13px, .8125rem); font-weight: 400; color: var(--aura-fg-secondary); }
1440
1458
  .aura-accordion__lead { color: var(--aura-fg-secondary); }
1441
1459
  .aura-accordion__chevron { flex: none; color: var(--aura-fg-secondary); transition: transform var(--aura-duration-fast) var(--aura-ease); }
1442
1460
  .aura-accordion__item.is-open .aura-accordion__chevron { transform: rotate(180deg); }
1443
- .aura-accordion__panel { padding: 0 var(--aura-space-1) var(--aura-space-4); font-size: 14px; line-height: 1.7; color: var(--aura-fg-primary); }
1461
+ .aura-accordion__panel { padding: 0 var(--aura-space-1) var(--aura-space-4); font-size: max(14px, .875rem); line-height: 1.7; color: var(--aura-fg-primary); }
1444
1462
 
1445
1463
  /* ---------- Popover ---------- */
1446
1464
  .aura-popover-anchor { display: inline-flex; }
1447
1465
  .aura-popover {
1448
1466
  position: fixed; z-index: var(--aura-z-menu); box-sizing: border-box; width: max-content; min-width: 200px; max-width: min(360px, calc(100vw - 16px));
1449
1467
  background: var(--aura-bg-surface); color: var(--aura-fg-primary); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg);
1450
- box-shadow: var(--aura-shadow-overlay); font-family: var(--font-sans); font-size: 14px; outline: none; animation: aura-fade-in var(--aura-duration-fast) var(--aura-ease);
1468
+ box-shadow: var(--aura-shadow-overlay); font-family: var(--font-sans); font-size: max(14px, .875rem); outline: none; animation: aura-fade-in var(--aura-duration-fast) var(--aura-ease);
1451
1469
  overflow-y: auto; overscroll-behavior: contain;
1452
1470
  }
1453
1471
  .aura-popover__head { display: flex; align-items: center; justify-content: space-between; gap: var(--aura-space-2); padding: var(--aura-space-2) var(--aura-space-2) 0 var(--aura-space-4); position: sticky; top: 0; z-index: 1; background: var(--aura-bg-surface); } /* 5.2: stays while a tall popover scrolls */
1454
- .aura-popover__title { margin: 0; font-size: 14px; font-weight: 600; }
1472
+ .aura-popover__title { margin: 0; font-size: max(14px, .875rem); font-weight: 600; }
1455
1473
  .aura-popover__body { padding: var(--aura-space-4); }
1456
1474
  .aura-popover__head + .aura-popover__body { padding-top: var(--aura-space-2); }
1457
1475
  @media (prefers-reduced-motion: reduce) { .aura-popover { animation: none; } }
@@ -1466,7 +1484,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1466
1484
  .aura-combo__chip {
1467
1485
  display: inline-flex; align-items: center; gap: 2px; max-width: 100%; height: 28px; box-sizing: border-box;
1468
1486
  padding: 0 2px 0 var(--aura-space-2); border-radius: var(--aura-radius-full);
1469
- background: var(--aura-bg-selected); color: var(--aura-fg-primary); font-size: 13px; font-weight: 500;
1487
+ background: var(--aura-bg-selected); color: var(--aura-fg-primary); font-size: max(13px, .8125rem); font-weight: 500;
1470
1488
  }
1471
1489
  .aura-combo__chip-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 24ch; }
1472
1490
  .aura-combo__chip-remove {
@@ -1478,7 +1496,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1478
1496
 
1479
1497
  /* ---------- NumberField ---------- */
1480
1498
  .aura-number .aura-input__control { font-variant-numeric: tabular-nums; }
1481
- .aura-number__affix { padding-left: var(--aura-space-3); color: var(--aura-fg-secondary); font-size: 14px; white-space: nowrap; }
1499
+ .aura-number__affix { padding-left: var(--aura-space-3); color: var(--aura-fg-secondary); font-size: max(14px, .875rem); white-space: nowrap; }
1482
1500
  .aura-number__affix + .aura-input__control { padding-left: var(--aura-space-2); }
1483
1501
  .aura-input__control + .aura-number__affix { padding: 0 var(--aura-space-2) 0 0; }
1484
1502
  .aura-number__steps { display: flex; align-self: stretch; border-left: 1px solid var(--aura-border-default); }
@@ -1506,16 +1524,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1506
1524
  .aura-stepper__marker {
1507
1525
  position: relative; z-index: 1; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; box-sizing: border-box;
1508
1526
  border-radius: var(--aura-radius-full); border: 1px solid var(--aura-border-control); background: var(--aura-bg-surface);
1509
- color: var(--aura-fg-secondary); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums;
1527
+ color: var(--aura-fg-secondary); font-size: max(13px, .8125rem); font-weight: 600; font-variant-numeric: tabular-nums;
1510
1528
  }
1511
1529
  .aura-stepper__marker .aura-icon { width: 16px; height: 16px; }
1512
1530
  .aura-stepper__item.is-done .aura-stepper__marker { background: var(--aura-control-checked-bg); border-color: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
1513
1531
  .aura-stepper__item.is-current .aura-stepper__marker { border: 2px solid var(--aura-fg-accent); color: var(--aura-fg-accent); }
1514
1532
  .aura-stepper__text { display: flex; flex-direction: column; min-width: 0; padding-top: 4px; }
1515
- .aura-stepper__label { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--aura-fg-secondary); }
1533
+ .aura-stepper__label { font-size: max(13px, .8125rem); font-weight: 500; line-height: 1.4; color: var(--aura-fg-secondary); }
1516
1534
  .aura-stepper__item.is-current .aura-stepper__label, .aura-stepper__item.is-done .aura-stepper__label { color: var(--aura-fg-primary); }
1517
1535
  .aura-stepper__item.is-current .aura-stepper__label { font-weight: 600; }
1518
- .aura-stepper__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
1536
+ .aura-stepper__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
1519
1537
  /* Connector: a line from each marker to the next (labels sit under the markers), or down the left when vertical. */
1520
1538
  .aura-stepper--horizontal .aura-stepper__item:not(:last-child)::after {
1521
1539
  content: ""; position: absolute; top: 14px; left: 36px; right: var(--aura-space-2); height: 1px; background: var(--aura-border-control); pointer-events: none;
@@ -1528,7 +1546,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1528
1546
  content: ""; position: absolute; left: 14px; top: 32px; bottom: 4px; width: 1px; background: var(--aura-border-control);
1529
1547
  }
1530
1548
  .aura-stepper--vertical .aura-stepper__item.is-done::after { background: var(--aura-control-checked-bg); }
1531
- .aura-stepper__compact { display: none; margin: var(--aura-space-2) 0 0; font-size: 13px; }
1549
+ .aura-stepper__compact { display: none; margin: var(--aura-space-2) 0 0; font-size: max(13px, .8125rem); }
1532
1550
  .aura-stepper__count { color: var(--aura-fg-secondary); margin-right: var(--aura-space-2); }
1533
1551
  .aura-stepper__compact-label { font-weight: 600; }
1534
1552
  /* 5.18 (Chamber-OS 112): a step with errors — the danger fill and an alert icon; outlined when it is the current step. */
@@ -1549,7 +1567,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1549
1567
  height: calc(var(--aura-input-height) - 6px); /* 5.30: the control is as tall as a field beside it (2px padding, 1px edge) */
1550
1568
  padding: 0 var(--aura-space-4); box-sizing: border-box;
1551
1569
  border: 0; border-radius: var(--aura-radius-full); background: transparent; color: var(--aura-fg-secondary);
1552
- font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;
1570
+ font: inherit; font-size: max(13px, .8125rem); font-weight: 500; white-space: nowrap; cursor: pointer;
1553
1571
  transition: background-color var(--aura-duration-fast) var(--aura-ease), color var(--aura-duration-fast) var(--aura-ease), box-shadow var(--aura-duration-fast) var(--aura-ease);
1554
1572
  }
1555
1573
  .aura-segmented.is-full .aura-segmented__option { flex: 1 1 0; min-width: 0; }
@@ -1558,7 +1576,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1558
1576
  .aura-segmented__option.is-selected { background: var(--aura-segmented-thumb-bg); color: var(--aura-fg-primary); font-weight: 600; box-shadow: inset 0 0 0 1px var(--aura-border-control), var(--aura-shadow-enterprise); } /* 5.2: the edge marks the choice at 3:1; the fill alone was 1.04:1 on the track */
1559
1577
  .aura-segmented__option:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; }
1560
1578
  .aura-segmented__option:disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1561
- .aura-segmented--sm .aura-segmented__option { height: 24px; padding: 0 var(--aura-space-3); font-size: 12px; }
1579
+ .aura-segmented--sm .aura-segmented__option { height: auto; min-height: 24px; padding: 0 var(--aura-space-3); font-size: max(12px, .75rem); }
1562
1580
  .aura-segmented--sm .aura-segmented__option.is-icon { width: 28px; padding: 0; }
1563
1581
  .aura-segmented.is-disabled { opacity: var(--aura-disabled-opacity); }
1564
1582
  /* 5.37 (DxT Monitor #18): touchHeight — 44px options below 640px or on a coarse pointer (is-touch), or always. */
@@ -1646,7 +1664,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1646
1664
  .aura-toaster.is-top { top: calc(var(--aura-toaster-offset, var(--aura-space-4)) + env(safe-area-inset-top, 0px)); }
1647
1665
  .aura-card { padding: var(--aura-space-4); --aura-card-bleed: var(--aura-space-4); }
1648
1666
  .aura-stat { padding: var(--aura-space-4); }
1649
- .aura-stat__value { font-size: 24px; }
1667
+ .aura-stat__value { font-size: max(24px, 1.5rem); }
1650
1668
  .aura-tabs__list { gap: var(--aura-space-4); }
1651
1669
  }
1652
1670
  @keyframes aura-sheet-in { from { transform: translateY(24px); opacity: 0; } }
@@ -1711,22 +1729,22 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1711
1729
  /* FormErrorSummary: a danger alert whose items link to their fields */
1712
1730
  .aura-error-summary:focus-visible, .aura-error-summary:focus { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
1713
1731
  .aura-error-summary h2.aura-alert__title { font-family: inherit; }
1714
- .aura-error-summary__list { margin: var(--aura-space-2) 0 0; padding-left: var(--aura-space-5); display: grid; gap: var(--aura-space-1); font-size: 14px; line-height: 20px; }
1732
+ .aura-error-summary__list { margin: var(--aura-space-2) 0 0; padding-left: var(--aura-space-5); display: grid; gap: var(--aura-space-1); font-size: max(14px, .875rem); line-height: max(20px, 1.25rem); }
1715
1733
  .aura-error-summary__list a { color: var(--aura-alert-danger-fg); text-decoration: underline; text-underline-offset: 2px; font-weight: 500; }
1716
1734
  .aura-error-summary__list a:hover { text-decoration-thickness: 2px; }
1717
1735
  .aura-error-summary__list a:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 2px; border-radius: var(--aura-radius-xs); }
1718
1736
 
1719
1737
  /* aura-prose: sanitised rich text (editor output, e-mail previews). Styles exactly p, h1–h4, ul/ol/li, blockquote,
1720
1738
  * hr, a, strong, em, u with AURA type and spacing, in both themes. */
1721
- .aura-prose { font-family: var(--font-sans); font-size: 14px; line-height: 1.7; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1739
+ .aura-prose { font-family: var(--font-sans); font-size: max(14px, .875rem); line-height: 1.7; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1722
1740
  .aura-prose > :first-child { margin-top: 0; }
1723
1741
  .aura-prose > :last-child { margin-bottom: 0; }
1724
1742
  .aura-prose p { margin: 0 0 var(--aura-space-4); }
1725
1743
  .aura-prose h1, .aura-prose h2, .aura-prose h3, .aura-prose h4 { color: var(--aura-fg-primary); margin: var(--aura-space-8) 0 var(--aura-space-3); }
1726
- .aura-prose h1 { font-family: var(--font-display); font-weight: 600; font-size: 30px; line-height: 1.2; letter-spacing: -0.01em; }
1727
- .aura-prose h2 { font-weight: 600; font-size: 22px; line-height: 1.3; }
1728
- .aura-prose h3 { font-weight: 600; font-size: 17px; line-height: 1.45; }
1729
- .aura-prose h4 { font-weight: 600; font-size: 15px; line-height: 1.5; }
1744
+ .aura-prose h1 { font-family: var(--font-display); font-weight: 600; font-size: max(30px, 1.875rem); line-height: 1.2; letter-spacing: -0.01em; }
1745
+ .aura-prose h2 { font-weight: 600; font-size: max(22px, 1.375rem); line-height: 1.3; }
1746
+ .aura-prose h3 { font-weight: 600; font-size: max(17px, 1.0625rem); line-height: 1.45; }
1747
+ .aura-prose h4 { font-weight: 600; font-size: max(15px, .9375rem); line-height: 1.5; }
1730
1748
  .aura-prose ul, .aura-prose ol { margin: 0 0 var(--aura-space-4); padding-left: var(--aura-space-6); }
1731
1749
  .aura-prose li { margin: var(--aura-space-1) 0; }
1732
1750
  .aura-prose li > ul, .aura-prose li > ol { margin: var(--aura-space-1) 0 0; }
@@ -1750,7 +1768,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1750
1768
  .aura-filterbar__clear-search { margin-right: 6px; }
1751
1769
  .aura-filterbar__controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-3); }
1752
1770
  .aura-filterbar__spacer { flex: 1 1 0; }
1753
- .aura-filterbar__count { font-size: 13px; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
1771
+ .aura-filterbar__count { font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
1754
1772
  .aura-filterbar__actions { display: flex; align-items: center; gap: var(--aura-space-2); }
1755
1773
  .aura-filterbar__chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-2); }
1756
1774
  /* 5.28 (Chamber-OS 132): an applied-filter chip takes its text's width, cut only when it is wider than the row. */
@@ -1761,7 +1779,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1761
1779
  .aura-filterbar__chips > .aura-tag .aura-tag__text { max-width: none; min-width: 0; }
1762
1780
  .aura-filterbar__clear {
1763
1781
  border: 0; background: transparent; padding: 4px var(--aura-space-2); border-radius: var(--aura-radius-sm);
1764
- font: inherit; font-size: 13px; font-weight: 500; color: var(--aura-fg-accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
1782
+ font: inherit; font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
1765
1783
  }
1766
1784
  .aura-filterbar__clear:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1767
1785
  .aura-filterbar__clear:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
@@ -1792,7 +1810,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1792
1810
  min-height: var(--aura-input-height); padding-block: 0; padding-inline: var(--aura-space-2) var(--aura-space-1);
1793
1811
  background: var(--aura-bg-input); color: var(--aura-fg-primary);
1794
1812
  border: 1px solid var(--aura-border-control); border-radius: var(--aura-radius-md);
1795
- font: inherit; font-size: 13px; line-height: 18px; text-align: start; cursor: pointer;
1813
+ font: inherit; font-size: max(13px, .8125rem); line-height: max(18px, 1.125rem); text-align: start; cursor: pointer;
1796
1814
  transition: border-color var(--aura-duration-fast) var(--aura-ease);
1797
1815
  }
1798
1816
  .aura-filterselect__face:hover { border-color: var(--aura-fg-secondary); }
@@ -1802,7 +1820,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1802
1820
  /* 5.30: from 640px the face has a field's inset and text size, like the search box beside it; phones keep the tight
1803
1821
  * face so three filters and a chip share one row. */
1804
1822
  @media (min-width: 640px) {
1805
- .aura-filterselect__face { padding-inline: var(--aura-space-3) var(--aura-space-2); font-size: 14px; }
1823
+ .aura-filterselect__face { padding-inline: var(--aura-space-3) var(--aura-space-2); font-size: max(14px, .875rem); }
1806
1824
  .aura-filterselect__chevron { width: var(--aura-icon-sm); height: var(--aura-icon-sm); }
1807
1825
  }
1808
1826
  .aura-filterselect.is-open .aura-filterselect__chevron { transform: rotate(180deg); }
@@ -1812,7 +1830,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1812
1830
  .aura-filterselect__face:focus { outline-style: none; }
1813
1831
  .aura-filterselect__face:focus-visible { outline-style: solid; }
1814
1832
  /* Before hydration: the real <select>, invisible, over the face (16px so iOS doesn't zoom when it opens). */
1815
- .aura-filterselect__native { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; font-size: 16px; cursor: pointer; appearance: none; }
1833
+ .aura-filterselect__native { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; opacity: 0; font-size: max(16px, 1rem); cursor: pointer; appearance: none; }
1816
1834
  .aura-filterselect.is-disabled .aura-filterselect__face { background: var(--aura-bg-input-disabled); color: var(--aura-fg-secondary); border-color: var(--aura-border-default); cursor: not-allowed; }
1817
1835
  .aura-filterselect.is-disabled .aura-filterselect__native { cursor: not-allowed; }
1818
1836
  /* 5.38 (Chamber-OS 140): touchHeight on FilterBar (its search and field-height controls) or on one FilterSelect —
@@ -1857,21 +1875,21 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1857
1875
  .aura-command__input::placeholder { color: var(--aura-fg-tertiary); opacity: 1; }
1858
1876
  .aura-command__list { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: var(--aura-space-2); }
1859
1877
  .aura-command__group + .aura-command__group { margin-top: var(--aura-space-2); }
1860
- .aura-command__heading { padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--aura-fg-secondary); }
1861
- .aura-command__item { display: flex; align-items: center; gap: var(--aura-space-3); min-height: 40px; padding: 6px var(--aura-space-2); border-radius: var(--aura-radius-sm); cursor: pointer; font-size: 14px; }
1878
+ .aura-command__heading { padding: var(--aura-space-2) var(--aura-space-2) var(--aura-space-1); font-family: var(--font-mono); font-size: max(11px, .6875rem); text-transform: uppercase; letter-spacing: 0.04em; color: var(--aura-fg-secondary); }
1879
+ .aura-command__item { display: flex; align-items: center; gap: var(--aura-space-3); min-height: 40px; padding: 6px var(--aura-space-2); border-radius: var(--aura-radius-sm); cursor: pointer; font-size: max(14px, .875rem); }
1862
1880
  .aura-command__item > .aura-icon { color: var(--aura-fg-secondary); }
1863
1881
  .aura-command__item.is-active { background: var(--aura-hover, var(--aura-bg-surface-hover)); outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: calc(-1 * var(--aura-focus-ring-width)); }
1864
1882
  .aura-command__item.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1865
1883
  .aura-command__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
1866
1884
  .aura-command__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1867
- .aura-command__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
1885
+ .aura-command__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
1868
1886
  .aura-command__kbd {
1869
1887
  flex: none; padding: 2px 6px; border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-xs);
1870
- font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--aura-fg-secondary); background: var(--aura-bg-canvas);
1888
+ font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: max(16px, 1rem); color: var(--aura-fg-secondary); background: var(--aura-bg-canvas);
1871
1889
  }
1872
- .aura-command__loading { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-2) var(--aura-space-3); font-size: 13px; color: var(--aura-fg-secondary); }
1873
- .aura-command__empty { margin: 0; padding: var(--aura-space-6) var(--aura-space-2); text-align: center; font-size: 14px; color: var(--aura-fg-secondary); }
1874
- .aura-command__foot { display: flex; justify-content: space-between; gap: var(--aura-space-3); padding: var(--aura-space-2) var(--aura-space-4); border-top: 1px solid var(--aura-border-default); font-size: 12px; color: var(--aura-fg-secondary); }
1890
+ .aura-command__loading { display: flex; align-items: center; gap: var(--aura-space-2); padding: var(--aura-space-2) var(--aura-space-3); font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); }
1891
+ .aura-command__empty { margin: 0; padding: var(--aura-space-6) var(--aura-space-2); text-align: center; font-size: max(14px, .875rem); color: var(--aura-fg-secondary); }
1892
+ .aura-command__foot { display: flex; justify-content: space-between; gap: var(--aura-space-3); padding: var(--aura-space-2) var(--aura-space-4); border-top: 1px solid var(--aura-border-default); font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1875
1893
  @media (max-width: 639.98px) {
1876
1894
  .aura-dialog-layer.aura-command-layer { align-items: flex-start; padding: var(--aura-space-4); }
1877
1895
  .aura-command { max-height: 80vh; }
@@ -1915,7 +1933,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1915
1933
  .aura-bottomnav__item {
1916
1934
  box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
1917
1935
  width: 100%; height: var(--aura-bottomnav-height); padding: 0 2px; border: 0; background: transparent;
1918
- color: var(--aura-fg-secondary); font: inherit; font-size: 11px; font-weight: 500; line-height: 14px;
1936
+ color: var(--aura-fg-secondary); font: inherit; font-size: max(11px, .6875rem); font-weight: 500; line-height: max(14px, .875rem);
1919
1937
  text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
1920
1938
  }
1921
1939
  .aura-bottomnav__item:hover { color: var(--aura-fg-primary); }
@@ -1929,9 +1947,9 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1929
1947
  .aura-bottomnav__item.is-active .aura-bottomnav__icon { background: var(--aura-bg-selected); }
1930
1948
  .aura-bottomnav__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1931
1949
  .aura-bottomnav__count {
1932
- position: absolute; top: -2px; left: calc(50% + 4px); min-width: 16px; height: 16px; box-sizing: border-box; padding: 0 4px;
1950
+ position: absolute; top: -2px; left: calc(50% + 4px); min-width: 16px; min-height: 16px; box-sizing: border-box; padding: 0 4px;
1933
1951
  border-radius: var(--aura-radius-full); background: var(--aura-bg-inverted); color: var(--aura-fg-inverted);
1934
- font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; font-variant-numeric: tabular-nums;
1952
+ font-size: max(10px, .625rem); font-weight: 600; line-height: max(16px, 1rem); text-align: center; font-variant-numeric: tabular-nums;
1935
1953
  box-shadow: 0 0 0 2px var(--aura-bg-surface);
1936
1954
  }
1937
1955
  .aura-bottomnav__dot {
@@ -1968,7 +1986,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1968
1986
  }
1969
1987
  .aura-actionbar--container { bottom: 0; border-top: 1px solid var(--aura-border-default); }
1970
1988
  .aura-actionbar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-2) var(--aura-space-3); min-height: 60px; box-sizing: border-box; padding-block: var(--aura-space-2); padding-inline: var(--aura-space-4) var(--aura-space-3); }
1971
- .aura-actionbar__status { flex: 1 1 8rem; min-width: 0; font-size: 14px; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
1989
+ .aura-actionbar__status { flex: 1 1 8rem; min-width: 0; font-size: max(14px, .875rem); color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
1972
1990
  .aura-actionbar__status:empty { flex-basis: 0; }
1973
1991
  /* 5.20: an empty status leaves the row (it would still take a gap and push the start slot away from its edge) but
1974
1992
  * stays in the page as a live region, so the next status is announced. */
@@ -2005,8 +2023,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2005
2023
  linear-gradient(to left, var(--aura-scroll-shadow), transparent) right / 12px 100% no-repeat scroll,
2006
2024
  var(--aura-tbl-bg, var(--aura-bg-surface));
2007
2025
  }
2008
- .aura-tbl { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: 13px; line-height: 20px; }
2009
- .aura-tbl__caption { caption-side: top; padding: var(--aura-space-4) var(--aura-space-6) var(--aura-space-3); text-align: left; font-size: 14px; font-weight: 600; }
2026
+ .aura-tbl { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: max(13px, .8125rem); line-height: max(20px, 1.25rem); }
2027
+ .aura-tbl__caption { caption-side: top; padding: var(--aura-space-4) var(--aura-space-6) var(--aura-space-3); text-align: left; font-size: max(14px, .875rem); font-weight: 600; }
2010
2028
  /* 5.30: from 640px a cell is at least 10ch wide, so the table never squeezes a column to one letter; a longer word (an
2011
2029
  * email, a URL) still breaks to fit instead of widening the table. Phones keep fitting the box: use stackBelow there. */
2012
2030
  .aura-tbl__th, .aura-tbl__td { padding: var(--aura-tbl-cell-py, var(--aura-space-3)) var(--aura-space-4); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
@@ -2015,14 +2033,14 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2015
2033
  .aura-tbl__th:last-child, .aura-tbl__td:last-child { padding-right: var(--aura-space-6); }
2016
2034
  .aura-tbl__head .aura-tbl__th {
2017
2035
  background: var(--aura-table-head-bg); border-bottom: 1px solid var(--aura-border-default);
2018
- font-family: var(--font-mono); font-size: 12px; font-weight: 400; color: var(--aura-fg-secondary); white-space: nowrap;
2036
+ font-family: var(--font-mono); font-size: max(12px, .75rem); font-weight: 400; color: var(--aura-fg-secondary); white-space: nowrap;
2019
2037
  }
2020
2038
  .aura-tbl__body .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
2021
2039
  .aura-tbl__body .aura-tbl__th { font-weight: 500; }
2022
2040
  .aura-tbl__foot > .aura-tbl__row > * { background: var(--aura-table-head-bg); font-weight: 600; }
2023
2041
  .aura-tbl__foot > .aura-tbl__row:first-child > * { border-top: 2px solid var(--aura-border-default); }
2024
2042
  /* 5.30: with several totals rows (Subtotal, VAT, Total) the last one reads as the total. */
2025
- .aura-tbl__foot > .aura-tbl__row:last-child:not(:first-child) > * { font-size: 14px; font-weight: 700; }
2043
+ .aura-tbl__foot > .aura-tbl__row:last-child:not(:first-child) > * { font-size: max(14px, .875rem); font-weight: 700; }
2026
2044
  .aura-tbl__foot > .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
2027
2045
  .aura-tbl .is-end { text-align: right; }
2028
2046
  .aura-tbl .is-center { text-align: center; }
@@ -2071,18 +2089,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2071
2089
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row + .aura-tbl__row, .aura-tbl--stack-md > .aura-tbl__foot > .aura-tbl__row:first-child { border-top: 1px solid var(--aura-border-default); }
2072
2090
  .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__td { padding: 0; border-top: 0; background: none; text-align: start; white-space: normal; }
2073
2091
  .aura-tbl--stack-md > * > .aura-tbl__row > * + * { margin-top: var(--aura-space-2); }
2074
- .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: 14px; font-weight: 600; }
2092
+ .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: max(14px, .875rem); font-weight: 600; }
2075
2093
  /* 5.13 (Chamber-OS 84): a row with a title or action cell — title and action share the first line, fields two to a line under them. */
2076
2094
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: var(--aura-space-4); }
2077
2095
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card])::after { content: ''; order: 3; flex: 0 0 100%; }
2078
2096
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > * { order: 4; flex: 0 0 calc(50% - var(--aura-space-4) / 2); min-width: 0; margin-top: var(--aura-space-2); }
2079
2097
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card] { margin-top: 0; }
2080
- .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='title'] { order: 1; flex: 1 1 0; font-size: 14px; font-weight: 600; }
2098
+ .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='title'] { order: 1; flex: 1 1 0; font-size: max(14px, .875rem); font-weight: 600; }
2081
2099
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='action'] { order: 2; flex: none; margin-inline-start: auto; }
2082
2100
  .aura-tbl-wrap.is-flush > .aura-tbl--stack-md > .aura-tbl__caption { padding-inline: var(--aura-space-4); }
2083
2101
  .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__td[data-label]::before {
2084
2102
  content: attr(data-label); content: attr(data-label) / '';
2085
- display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
2103
+ display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: max(16px, 1rem); font-weight: 400; color: var(--aura-fg-secondary);
2086
2104
  }
2087
2105
  /* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
2088
2106
  .aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-md:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
@@ -2095,18 +2113,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2095
2113
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row + .aura-tbl__row, .aura-tbl--stack-sm > .aura-tbl__foot > .aura-tbl__row:first-child { border-top: 1px solid var(--aura-border-default); }
2096
2114
  .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__th, .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td { padding: 0; border-top: 0; background: none; text-align: start; white-space: normal; }
2097
2115
  .aura-tbl--stack-sm > * > .aura-tbl__row > * + * { margin-top: var(--aura-space-2); }
2098
- .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: 14px; font-weight: 600; }
2116
+ .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: max(14px, .875rem); font-weight: 600; }
2099
2117
  /* 5.13 (Chamber-OS 84): a row with a title or action cell — title and action share the first line, fields two to a line under them. */
2100
2118
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: var(--aura-space-4); }
2101
2119
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card])::after { content: ''; order: 3; flex: 0 0 100%; }
2102
2120
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > * { order: 4; flex: 0 0 calc(50% - var(--aura-space-4) / 2); min-width: 0; margin-top: var(--aura-space-2); }
2103
2121
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card] { margin-top: 0; }
2104
- .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='title'] { order: 1; flex: 1 1 0; font-size: 14px; font-weight: 600; }
2122
+ .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='title'] { order: 1; flex: 1 1 0; font-size: max(14px, .875rem); font-weight: 600; }
2105
2123
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='action'] { order: 2; flex: none; margin-inline-start: auto; }
2106
2124
  .aura-tbl-wrap.is-flush > .aura-tbl--stack-sm > .aura-tbl__caption { padding-inline: var(--aura-space-4); }
2107
2125
  .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td[data-label]::before {
2108
2126
  content: attr(data-label); content: attr(data-label) / '';
2109
- display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
2127
+ display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: max(16px, 1rem); font-weight: 400; color: var(--aura-fg-secondary);
2110
2128
  }
2111
2129
  /* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
2112
2130
  .aura-card__body .aura-bleed.aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row, .aura-card__body .aura-bleed > .aura-bleed-frame > .aura-tbl--stack-sm:not(.aura-tbl--cards) > * > .aura-tbl__row { padding-inline: max(var(--aura-card-bleed), var(--aura-space-4) - var(--aura-card-bleed) * 1000); }
@@ -2169,7 +2187,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2169
2187
  .aura-table__picker { display: none; }
2170
2188
  .aura-table__head {
2171
2189
  position: static; height: auto; min-width: 0; padding: 0 0 var(--aura-space-3); border: 0; background: none;
2172
- font-family: var(--font-sans); font-size: 13px;
2190
+ font-family: var(--font-sans); font-size: max(13px, .8125rem);
2173
2191
  }
2174
2192
  .aura-table__head > .aura-table__th {
2175
2193
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
@@ -2209,16 +2227,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2209
2227
  .aura-table__td[data-label]::before {
2210
2228
  content: attr(data-label); content: attr(data-label) / '';
2211
2229
  display: block; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: start;
2212
- font-family: var(--font-mono); font-size: 11px; line-height: normal; font-weight: 400; color: var(--aura-fg-secondary);
2230
+ font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: normal; font-weight: 400; color: var(--aura-fg-secondary);
2213
2231
  }
2214
2232
  .aura-table__td[data-card='title'], .aura-table__td[data-card='pill'], .aura-table__td[data-card='actions'] { align-self: center; margin-bottom: 0; }
2215
- .aura-table__td[data-card='title'] { order: 1; flex: 1 1 0; font-size: 14px; font-weight: 600; }
2233
+ .aura-table__td[data-card='title'] { order: 1; flex: 1 1 0; font-size: max(14px, .875rem); font-weight: 600; }
2216
2234
  .aura-table__td[data-card='pill'] { order: 2; flex: none; }
2217
2235
  .aura-table__td[data-card='actions'] { order: 3; flex: none; margin: calc(-1 * var(--aura-space-1)) calc(-1 * var(--aura-space-2)) calc(-1 * var(--aura-space-1)) 0; }
2218
2236
  /* 5.22 (Chamber-OS 119): the title wraps rather than being cut — a member's full name before a one-click action —
2219
2237
  * and the row box and the pill line up with its first line (a 20px line; the 16px box 2px down). */
2220
- .aura-table__td[data-card='title'] { white-space: normal; overflow-wrap: anywhere; overflow: visible; line-height: 20px; align-self: flex-start; }
2221
- .aura-table__td[data-card='pill'] { align-self: flex-start; line-height: 20px; }
2238
+ .aura-table__td[data-card='title'] { white-space: normal; overflow-wrap: anywhere; overflow: visible; line-height: max(20px, 1.25rem); align-self: flex-start; }
2239
+ .aura-table__td[data-card='pill'] { align-self: flex-start; line-height: max(20px, 1.25rem); }
2222
2240
  .aura-table__row > .aura-table__sel { align-self: flex-start; margin-top: 2px; }
2223
2241
  /* Actions top-right sit on that first line too (a 32px button centred on 20px, the same 24px footprint as before). */
2224
2242
  .aura-table__td[data-card='actions'] { align-self: flex-start; margin-top: calc(-1 * var(--aura-space-1) - 2px); margin-bottom: -2px; }
@@ -2280,18 +2298,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2280
2298
 
2281
2299
  /* 5.30: Thai needs more room than Latin — tone marks and vowels stack above and below the line. Where the page or a
2282
2300
  * part of it is Thai (lang="th"), small labels are at least 12px and lines are taller. */
2283
- .aura-pill:lang(th), .aura-badge:lang(th), .aura-tab__count:lang(th) { font-size: 12px; }
2284
- .aura-pill:lang(th) { line-height: 18px; }
2301
+ .aura-pill:lang(th), .aura-badge:lang(th), .aura-tab__count:lang(th) { font-size: max(12px, .75rem); }
2302
+ .aura-pill:lang(th) { line-height: max(18px, 1.125rem); }
2285
2303
  .aura-skel--pill:lang(th) { height: 22px; } /* the loading pill stays as tall as the Thai one */
2286
- .aura-bottomnav__item:lang(th) { font-size: 12px; line-height: 18px; }
2287
- .aura-stepper__desc:lang(th) { font-size: 13px; line-height: 1.6; }
2288
- .aura-nav__label:lang(th) { line-height: 22px; }
2304
+ .aura-bottomnav__item:lang(th) { font-size: max(12px, .75rem); line-height: max(18px, 1.125rem); }
2305
+ .aura-stepper__desc:lang(th) { font-size: max(13px, .8125rem); line-height: 1.6; }
2306
+ .aura-nav__label:lang(th) { line-height: max(22px, 1.375rem); }
2289
2307
  /* 5.30 (audit D): field labels, hints and errors and choice descriptions get Thai line room; a stacked card's field
2290
2308
  * labels are 12px in the sans face (the mono face has no Thai), and a stacked DataTable card's values sit on a set
2291
2309
  * 1.6 line, so a loading card (its bars follow 1lh) is as tall as one with Thai text. */
2292
2310
  .aura-field__label:lang(th), .aura-field__hint:lang(th), .aura-field__error:lang(th), .aura-field__addon:lang(th) { line-height: 1.6; }
2293
- .aura-choice__desc:lang(th), .aura-check__desc:lang(th) { font-size: 13px; line-height: 1.6; }
2294
- .aura-tbl__row > .aura-tbl__td[data-label]:lang(th)::before, .aura-table__td[data-label]:lang(th)::before { font-family: var(--font-sans); font-size: 12px; line-height: 18px; }
2311
+ .aura-choice__desc:lang(th), .aura-check__desc:lang(th) { font-size: max(13px, .8125rem); line-height: 1.6; }
2312
+ .aura-tbl__row > .aura-tbl__td[data-label]:lang(th)::before, .aura-table__td[data-label]:lang(th)::before { font-family: var(--font-sans); font-size: max(12px, .75rem); line-height: max(18px, 1.125rem); }
2295
2313
  .aura-table--stacked .aura-table__td[data-label]:lang(th) { line-height: 1.6; }
2296
2314
 
2297
2315
  /* 5.30: a plain link (no class) inside AURA's surfaces takes the accent colour instead of the browser's blue. Zero