@jirawatpyk/aura-react 5.38.0 → 5.40.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;
@@ -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); }
@@ -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); }
@@ -758,9 +758,10 @@ a.aura-icon-btn { text-decoration: none; }
758
758
  .aura-tabs__list { display: flex; gap: var(--aura-space-6); box-shadow: inset 0 -1px 0 var(--aura-border-default); overflow-x: auto; scrollbar-width: none; }
759
759
  .aura-tab {
760
760
  position: relative; display: inline-flex; align-items: center; gap: var(--aura-space-2); flex: none;
761
+ box-sizing: border-box; /* 5.39: a link tab (<a>) was 2px taller than a button tab — its underline sat outside the height */
761
762
  height: var(--aura-input-height); padding: 0;
762
763
  border: 0; border-bottom: 2px solid transparent; background: transparent;
763
- 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;
764
765
  transition: color var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease);
765
766
  }
766
767
  .aura-tab:hover { color: var(--aura-fg-primary); }
@@ -771,9 +772,13 @@ a.aura-tab { text-decoration: none; }
771
772
  .aura-tab__count {
772
773
  min-width: 18px; padding: 0 6px; box-sizing: border-box; border-radius: var(--aura-radius-full);
773
774
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg);
774
- 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;
775
776
  }
776
777
  .aura-tabs__panel { padding-top: var(--aura-space-6); outline: none; }
778
+ /* 5.39 (Chamber-OS 143): touchHeight — 44px tabs (underline or segmented, buttons or links) below 640px or on a coarse
779
+ * pointer (is-touch), or always. The height is set on the tabs, not through --aura-input-height, so panels keep theirs. */
780
+ .aura-tabs.is-touch-always .aura-tab { height: var(--aura-touch-target); }
781
+ @media (max-width: 639.98px), (pointer: coarse) { .aura-tabs.is-touch .aura-tab { height: var(--aura-touch-target); } }
777
782
  .aura-tabs__panel[hidden] { display: none; }
778
783
  .aura-tabs__panel:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 2px; border-radius: var(--aura-radius-sm); }
779
784
 
@@ -793,12 +798,12 @@ a.aura-tab { text-decoration: none; }
793
798
  .aura-nav > .aura-nav__scroll:first-child { padding-top: var(--aura-space-3); }
794
799
  .aura-nav--borderless { border-right: 0; }
795
800
  .aura-nav__section + .aura-nav__section { margin-top: var(--aura-space-5); }
796
- .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; }
797
802
  .aura-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
798
803
  .aura-nav__item {
799
804
  box-sizing: border-box; display: flex; align-items: center; gap: var(--aura-space-3); width: 100%;
800
805
  min-height: 36px; padding: var(--aura-space-1) var(--aura-space-3); border: 0; border-radius: var(--aura-radius-sm);
801
- 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;
802
807
  text-decoration: none; text-align: left; cursor: pointer;
803
808
  transition: background var(--aura-duration-fast) var(--aura-ease), color var(--aura-duration-fast) var(--aura-ease);
804
809
  }
@@ -824,10 +829,10 @@ a.aura-tab { text-decoration: none; }
824
829
  * ("Marknadsförings-" / "målgrupp"); breaking anywhere is only the last resort. Only words of 12+ letters hyphenate,
825
830
  * with 5+ on each side, so ordinary English labels keep wrapping between words. */
826
831
  .aura-nav__label {
827
- 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;
828
833
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
829
834
  }
830
- .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); }
831
836
  .aura-nav__badge { display: inline-flex; align-items: center; flex: none; }
832
837
  /* Groups: a disclosure button, its items indented one step per level. */
833
838
  .aura-nav__item { padding-left: calc(var(--aura-space-3) + var(--aura-nav-depth, 0) * (var(--aura-icon-sm) + var(--aura-space-3))); }
@@ -857,7 +862,7 @@ a.aura-tab { text-decoration: none; }
857
862
  .aura-nav--collapsed .aura-nav__item--group.has-active .aura-icon { color: var(--aura-fg-accent); }
858
863
  .aura-nav__initial {
859
864
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: var(--aura-radius-sm);
860
- 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;
861
866
  }
862
867
  .aura-nav__dot {
863
868
  position: absolute; top: 6px; left: calc(50% + 5px); width: 8px; height: 8px; border-radius: var(--aura-radius-full);
@@ -867,7 +872,7 @@ a.aura-tab { text-decoration: none; }
867
872
  @media (prefers-reduced-motion: reduce) { .aura-nav { transition: none; } }
868
873
 
869
874
  /* ---------- Breadcrumb ---------- */
870
- .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); }
871
876
  .aura-crumbs li { display: inline-flex; align-items: center; gap: var(--aura-space-2); }
872
877
  .aura-crumbs a, .aura-crumbs button {
873
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);
@@ -907,6 +912,7 @@ a.aura-tab { text-decoration: none; }
907
912
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg);
908
913
  }
909
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). */
910
916
  .aura-avatar--sm { width: var(--aura-avatar-sm); height: var(--aura-avatar-sm); font-size: 10px; }
911
917
  .aura-avatar--md { width: var(--aura-avatar-md); height: var(--aura-avatar-md); font-size: 12px; }
912
918
  .aura-avatar--lg { width: var(--aura-avatar-lg); height: var(--aura-avatar-lg); font-size: 14px; }
@@ -938,7 +944,7 @@ a.aura-tab { text-decoration: none; }
938
944
  position: fixed; z-index: var(--aura-z-menu); box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain;
939
945
  background: var(--aura-bg-surface); color: var(--aura-fg-primary);
940
946
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-md); box-shadow: var(--aura-shadow-overlay);
941
- font-family: var(--font-sans); font-size: 14px;
947
+ font-family: var(--font-sans); font-size: max(14px, .875rem);
942
948
  }
943
949
  .aura-combo__list { list-style: none; margin: 0; padding: var(--aura-space-1); }
944
950
  .aura-combo__option {
@@ -951,15 +957,15 @@ a.aura-tab { text-decoration: none; }
951
957
  .aura-combo__option.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
952
958
  .aura-combo__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
953
959
  .aura-combo__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
954
- .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); }
955
961
  /* Same specificity as `.aura-combo__option > .aura-icon` above and later in the file, so it wins by order (4.18). */
956
962
  .aura-combo__option > .aura-combo__check { color: var(--aura-fg-accent); }
957
963
  /* 5.16 (Chamber-OS 105): option groups under a heading. */
958
964
  .aura-combo__group { list-style: none; }
959
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); }
960
- .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; }
961
967
  .aura-combo__grouplist { list-style: none; margin: 0; padding: 0; }
962
- .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); }
963
969
 
964
970
  /* ---------- DatePicker / Calendar ---------- */
965
971
  .aura-date .aura-input__control { padding-right: calc(var(--aura-space-2) + 2 * var(--aura-control-sm)); font-variant-numeric: tabular-nums; }
@@ -972,21 +978,21 @@ a.aura-tab { text-decoration: none; }
972
978
  font-family: var(--font-sans);
973
979
  }
974
980
  .aura-cal { width: calc(7 * var(--aura-cal-cell)); }
975
- .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; }
976
982
  .aura-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--aura-space-2); }
977
983
  .aura-cal__title {
978
- 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);
979
985
  border: 0; border-radius: var(--aura-radius-sm); background: transparent; color: var(--aura-fg-primary);
980
- font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
986
+ font: inherit; font-size: max(14px, .875rem); font-weight: 600; cursor: pointer;
981
987
  }
982
988
  .aura-cal__title:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
983
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; }
984
990
  .aura-cal__grid { border-collapse: separate; border-spacing: 0 2px; width: 100%; }
985
- .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); }
986
992
  .aura-cal__grid td { padding: 0; text-align: center; }
987
993
  .aura-cal__day {
988
994
  width: var(--aura-cal-cell); height: var(--aura-cal-cell); padding: 0; border: 0; border-radius: var(--aura-radius-full);
989
- 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;
990
996
  }
991
997
  .aura-cal__day:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
992
998
  .aura-cal__day.is-outside { color: var(--aura-fg-tertiary); }
@@ -1001,14 +1007,14 @@ a.aura-tab { text-decoration: none; }
1001
1007
  .aura-cal__years { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--aura-space-1); }
1002
1008
  .aura-cal__year {
1003
1009
  height: 40px; border: 0; border-radius: var(--aura-radius-sm); background: transparent; color: var(--aura-fg-primary);
1004
- 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;
1005
1011
  }
1006
1012
  .aura-cal__year:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1007
1013
  .aura-cal__year.is-selected { background: var(--aura-control-checked-bg); color: var(--aura-control-checked-fg); }
1008
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); }
1009
1015
  .aura-cal__link {
1010
1016
  height: var(--aura-control-sm); padding: 0 var(--aura-space-2); border: 0; border-radius: var(--aura-radius-sm);
1011
- 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;
1012
1018
  }
1013
1019
  .aura-cal__link:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1014
1020
  .aura-cal__link:disabled { opacity: var(--aura-disabled-opacity); cursor: not-allowed; }
@@ -1031,10 +1037,10 @@ a.aura-tab { text-decoration: none; }
1031
1037
  .aura-drawer--nav { max-width: var(--aura-sidenav-width); }
1032
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); }
1033
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 */
1034
- .aura-drawer__title { flex: 1; margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
1035
- .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); }
1036
1042
  .aura-drawer__body {
1037
- 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;
1038
1044
  /* 5.14 (Chamber-OS 91): a field scrolled into view (focus, the phone keyboard) keeps clear of the head and foot. */
1039
1045
  scroll-padding-block: var(--aura-space-4);
1040
1046
  }
@@ -1135,10 +1141,10 @@ a.aura-tab { text-decoration: none; }
1135
1141
  * 28px and the actions wrap under the text. */
1136
1142
  .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); }
1137
1143
  .aura-page-header__text { display: flex; flex-direction: column; gap: var(--aura-space-1); flex: 1 1 320px; min-width: 0; }
1138
- .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; }
1139
- .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; }
1144
+ .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; }
1145
+ .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; }
1140
1146
  .aura-page-header__breadcrumb { min-width: 0; } /* 5.33 (DxT Monitor #7): Breadcrumb keeps its own type */
1141
- .aura-page-header__meta { min-width: 0; font-size: 13px; line-height: 1.5; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1147
+ .aura-page-header__meta { min-width: 0; font-size: max(13px, .8125rem); line-height: 1.5; color: var(--aura-fg-secondary); overflow-wrap: anywhere; }
1142
1148
  .aura-page-header__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-2); }
1143
1149
  /* 5.37 (DxT Monitor #17): actionsFullWidthBelow — the actions take the row under the text; their children share
1144
1150
  * each line equally (wrapping when a label won't fit), a trigger inside a DropdownMenu, Tooltip or Popover wrapper
@@ -1164,7 +1170,7 @@ a.aura-tab { text-decoration: none; }
1164
1170
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > .aura-icon-btn { flex: none; }
1165
1171
  .aura-page-header--actions-full-below-lg > .aura-page-header__actions > :has(> .aura-icon-btn) { flex: none; }
1166
1172
  }
1167
- @media (min-width: 640px) { .aura-page-header__title { font-size: 36px; } }
1173
+ @media (min-width: 640px) { .aura-page-header__title { font-size: max(36px, 2.25rem); } }
1168
1174
  /* Thai marks need the room a 1.15 line takes away. */
1169
1175
  .aura-page-header__title:lang(th) { line-height: 1.4; letter-spacing: 0; }
1170
1176
  .aura-page-header__meta:lang(th) { line-height: 1.6; }
@@ -1182,27 +1188,27 @@ a.aura-tab { text-decoration: none; }
1182
1188
  box-sizing: border-box; display: flex; flex-direction: column; gap: var(--aura-space-2); min-width: 0;
1183
1189
  padding: var(--aura-space-5); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1184
1190
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-card-radius); box-shadow: var(--aura-shadow-enterprise);
1185
- font-family: var(--font-sans); font-size: 14px; text-align: left; text-decoration: none;
1191
+ font-family: var(--font-sans); font-size: max(14px, .875rem); text-align: left; text-decoration: none;
1186
1192
  }
1187
1193
  button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1188
1194
  .aura-stat.is-interactive { cursor: pointer; transition: border-color var(--aura-duration-fast) var(--aura-ease), background var(--aura-duration-fast) var(--aura-ease); }
1189
1195
  .aura-stat.is-interactive:hover { border-color: var(--aura-border-strong); }
1190
1196
  .aura-stat.is-interactive:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
1191
1197
  .aura-stat__head { display: flex; align-items: center; justify-content: space-between; gap: var(--aura-space-2); }
1192
- .aura-stat__label { margin: 0; font-size: 13px; font-weight: 500; color: var(--aura-fg-secondary); } /* 5.14: may be a heading */
1198
+ .aura-stat__label { margin: 0; font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-secondary); } /* 5.14: may be a heading */
1193
1199
  .aura-stat__icon { display: inline-flex; color: var(--aura-fg-secondary); }
1194
- .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; }
1200
+ .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; }
1195
1201
  .aura-stat__value.is-numeric { font-variant-numeric: tabular-nums; }
1196
- .aura-stat__unit { font-size: 14px; font-weight: 500; color: var(--aura-fg-secondary); letter-spacing: 0; }
1202
+ .aura-stat__unit { font-size: max(14px, .875rem); font-weight: 500; color: var(--aura-fg-secondary); letter-spacing: 0; }
1197
1203
  .aura-stat__skel { width: 55%; height: 24px; align-self: center; }
1198
- .aura-stat__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-1) var(--aura-space-2); font-size: 12px; }
1204
+ .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); }
1199
1205
  .aura-stat__change { display: inline-flex; align-items: center; gap: 2px; font-weight: 600; font-variant-numeric: tabular-nums; }
1200
1206
  .aura-stat__change.is-positive { color: var(--aura-fg-positive); }
1201
1207
  .aura-stat__change.is-negative { color: var(--aura-fg-danger); }
1202
1208
  .aura-stat__change.is-neutral { color: var(--aura-fg-secondary); }
1203
1209
  .aura-stat__caption { color: var(--aura-fg-secondary); }
1204
1210
  /* 5.17 (Chamber-OS 110): a status line under the value, and a link on the label that covers the tile. */
1205
- .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); }
1211
+ .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); }
1206
1212
  .aura-stat--label-link { position: relative; }
1207
1213
  .aura-stat__link { color: inherit; text-decoration: none; }
1208
1214
  .aura-stat__link::after { content: ''; position: absolute; inset: 0; border-radius: var(--aura-card-radius); }
@@ -1224,7 +1230,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1224
1230
  position: relative; box-sizing: border-box; display: flex; flex-direction: column; gap: 2px; min-width: 0;
1225
1231
  padding: var(--aura-space-2) var(--aura-space-3); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1226
1232
  border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-sm);
1227
- font-family: var(--font-sans); font-size: 13px; line-height: 18px; text-align: start; text-decoration: none;
1233
+ font-family: var(--font-sans); font-size: max(13px, .8125rem); line-height: max(18px, 1.125rem); text-align: start; text-decoration: none;
1228
1234
  --aura-hover: var(--aura-bg-surface-hover);
1229
1235
  }
1230
1236
  .aura-status-tile--down { background: var(--aura-alert-danger-bg); border-color: var(--aura-alert-danger-border); }
@@ -1260,11 +1266,11 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1260
1266
  .aura-status-tile__value { flex-basis: 100%; margin-inline-start: 0; padding-inline-start: 24px; }
1261
1267
  }
1262
1268
  /* The second line starts under the title. */
1263
- .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); }
1269
+ .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); }
1264
1270
  .aura-status-tile__meta { flex: 1; min-width: 0; overflow-wrap: anywhere; }
1265
1271
  .aura-status-tile__markers { display: inline-flex; align-items: center; gap: var(--aura-space-1); margin-inline-start: auto; flex: none; }
1266
1272
  .aura-status-tile__marker { display: inline-flex; }
1267
- .aura-status-tile:lang(th) { line-height: 20px; }
1273
+ .aura-status-tile:lang(th) { line-height: max(20px, 1.25rem); }
1268
1274
  .aura-sparkline { display: inline-block; flex: none; vertical-align: middle; overflow: visible; color: var(--aura-fg-secondary); }
1269
1275
  .aura-sparkline.is-accent { color: var(--aura-fg-accent); }
1270
1276
  .aura-sparkline.is-danger { color: var(--aura-fg-danger); }
@@ -1287,7 +1293,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1287
1293
  .aura-upload {
1288
1294
  position: relative; box-sizing: border-box; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--aura-space-2);
1289
1295
  min-height: 96px; padding: var(--aura-space-5); text-align: center; cursor: pointer;
1290
- background: var(--aura-bg-input); color: var(--aura-fg-secondary); font-size: 14px;
1296
+ background: var(--aura-bg-input); color: var(--aura-fg-secondary); font-size: max(14px, .875rem);
1291
1297
  border: 1px dashed var(--aura-border-control); border-radius: var(--aura-radius-md);
1292
1298
  transition: border-color var(--aura-duration-fast) var(--aura-ease), background var(--aura-duration-fast) var(--aura-ease);
1293
1299
  }
@@ -1298,7 +1304,7 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1298
1304
  .aura-upload.is-disabled { opacity: var(--aura-disabled-opacity); pointer-events: none; background: var(--aura-bg-input-disabled); }
1299
1305
  .aura-upload__icon { flex-basis: 100%; color: var(--aura-fg-secondary); }
1300
1306
  .aura-upload__browse { color: var(--aura-fg-accent); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
1301
- .aura-upload__note { flex-basis: 100%; font-size: 12px; color: var(--aura-fg-secondary); }
1307
+ .aura-upload__note { flex-basis: 100%; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1302
1308
  .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; }
1303
1309
  .aura-upload__list { list-style: none; margin: var(--aura-space-3) 0 0; padding: 0; display: grid; gap: var(--aura-space-2); }
1304
1310
  .aura-upload__item {
@@ -1309,26 +1315,26 @@ button.aura-stat { font: inherit; width: 100%; cursor: pointer; }
1309
1315
  .aura-upload__thumb { flex: none; width: 40px; height: 40px; border-radius: var(--aura-radius-sm); object-fit: cover; background: var(--aura-bg-surface-hover); }
1310
1316
  .aura-upload__thumb.is-icon { display: inline-flex; align-items: center; justify-content: center; color: var(--aura-fg-secondary); }
1311
1317
  .aura-upload__meta { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
1312
- .aura-upload__name { font-size: 13px; font-weight: 500; color: var(--aura-fg-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1318
+ .aura-upload__name { font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1313
1319
  a.aura-upload__name { color: var(--aura-fg-accent); text-decoration: underline; text-underline-offset: 2px; border-radius: var(--aura-radius-xs); }
1314
1320
  a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 2px; }
1315
- .aura-upload__sub { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; color: var(--aura-fg-secondary); }
1321
+ .aura-upload__sub { display: inline-flex; align-items: center; gap: 4px; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1316
1322
  .aura-upload__item.is-error .aura-upload__sub { color: var(--aura-fg-danger); }
1317
1323
  .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; }
1318
1324
  .aura-upload__bar > span { display: block; height: 100%; background: var(--aura-fg-accent); transition: width var(--aura-duration-base) var(--aura-ease); }
1319
1325
 
1320
1326
  /* ---------- Checkbox with a visible label ---------- */
1321
- .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); }
1327
+ .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); }
1322
1328
  .aura-check--labelled .aura-check__input { inset: auto; top: 3px; left: 0; width: var(--aura-icon-sm); height: var(--aura-icon-sm); }
1323
1329
  .aura-check--labelled .aura-check__box { flex: none; width: var(--aura-icon-sm); height: var(--aura-icon-sm); margin-top: 3px; }
1324
1330
  .aura-check__text { display: flex; flex-direction: column; }
1325
- .aura-check__desc { font-size: 12px; color: var(--aura-fg-secondary); }
1331
+ .aura-check__desc { font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1326
1332
  .aura-check.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1327
1333
 
1328
1334
  /* ---------- Badge ---------- */
1329
1335
  .aura-badge {
1330
- display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 var(--aura-space-2); box-sizing: border-box;
1331
- 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;
1336
+ 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 */
1337
+ 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;
1332
1338
  background: var(--aura-status-neutral-bg); color: var(--aura-status-neutral-fg); /* 5.30: surface-hover vanished on the light canvas */
1333
1339
  }
1334
1340
  .aura-badge--accent { background: var(--aura-alert-info-bg); color: var(--aura-alert-info-fg); }
@@ -1344,7 +1350,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1344
1350
  .aura-tag {
1345
1351
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 var(--aura-space-3); box-sizing: border-box;
1346
1352
  border: 1px solid var(--aura-border-control); border-radius: var(--aura-radius-full); background: var(--aura-bg-surface); color: var(--aura-fg-primary);
1347
- font-family: var(--font-sans); font-size: 13px; font-weight: 500; white-space: nowrap;
1353
+ font-family: var(--font-sans); font-size: max(13px, .8125rem); font-weight: 500; white-space: nowrap;
1348
1354
  }
1349
1355
  .aura-tag__text { overflow: hidden; text-overflow: ellipsis; max-width: 24ch; }
1350
1356
  .aura-tag.is-selectable { cursor: pointer; transition: background var(--aura-duration-fast) var(--aura-ease), border-color var(--aura-duration-fast) var(--aura-ease); }
@@ -1360,7 +1366,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1360
1366
 
1361
1367
  /* ---------- Progress ---------- */
1362
1368
  .aura-progress { display: flex; flex-direction: column; gap: 6px; font-family: var(--font-sans); }
1363
- .aura-progress__head { display: flex; justify-content: space-between; gap: var(--aura-space-2); font-size: 13px; }
1369
+ .aura-progress__head { display: flex; justify-content: space-between; gap: var(--aura-space-2); font-size: max(13px, .8125rem); }
1364
1370
  .aura-progress__label { font-weight: 500; color: var(--aura-fg-primary); }
1365
1371
  .aura-progress__value { color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
1366
1372
  .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; }
@@ -1379,7 +1385,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1379
1385
  .aura-progress__track.is-indeterminate .aura-progress__bar { width: 35%; animation: aura-progress-slide var(--aura-duration-pulse) var(--aura-ease) infinite; }
1380
1386
  @keyframes aura-progress-slide { from { left: -35%; } to { left: 100%; } }
1381
1387
  @media (prefers-reduced-motion: reduce) { .aura-progress__track.is-indeterminate .aura-progress__bar { animation-duration: calc(var(--aura-duration-pulse) * 3); } }
1382
- .aura-progress__hint { margin: 0; font-size: 12px; color: var(--aura-fg-secondary); }
1388
+ .aura-progress__hint { margin: 0; font-size: max(12px, .75rem); color: var(--aura-fg-secondary); }
1383
1389
 
1384
1390
  /* ---------- Skeleton ---------- */
1385
1391
  .aura-skel--text { height: 10px; margin: 5px 0; }
@@ -1394,8 +1400,8 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1394
1400
  .aura-empty.is-bordered { border: 1px dashed var(--aura-border-control); border-radius: var(--aura-radius-lg); }
1395
1401
  .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); }
1396
1402
  .aura-empty.is-sm .aura-empty__icon { width: 36px; height: 36px; }
1397
- .aura-empty__title { margin: 0; font-size: 16px; line-height: 1.5; font-weight: 600; }
1398
- .aura-empty__text { margin: 0; max-width: 44ch; font-size: 14px; line-height: 1.6; color: var(--aura-fg-secondary); }
1403
+ .aura-empty__title { margin: 0; font-size: max(16px, 1rem); line-height: 1.5; font-weight: 600; }
1404
+ .aura-empty__text { margin: 0; max-width: 44ch; font-size: max(14px, .875rem); line-height: 1.6; color: var(--aura-fg-secondary); }
1399
1405
  .aura-empty__action { margin-top: var(--aura-space-3); display: flex; gap: var(--aura-space-3); flex-wrap: wrap; justify-content: center; }
1400
1406
  /* 5.13 (Chamber-OS 82): tone="danger" — a load failure. */
1401
1407
  .aura-empty.is-danger { background: var(--aura-alert-danger-bg); border-radius: var(--aura-radius-lg); }
@@ -1403,7 +1409,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1403
1409
  .aura-empty.is-danger .aura-empty__icon { background: var(--aura-bg-surface); color: var(--aura-fg-danger); }
1404
1410
 
1405
1411
  /* ---------- Pagination ---------- */
1406
- .aura-pagination { display: flex; align-items: center; gap: var(--aura-space-1); font-family: var(--font-sans); font-size: 13px; }
1412
+ .aura-pagination { display: flex; align-items: center; gap: var(--aura-space-1); font-family: var(--font-sans); font-size: max(13px, .8125rem); }
1407
1413
  .aura-pagination__list { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
1408
1414
  .aura-page {
1409
1415
  display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 var(--aura-space-2); box-sizing: border-box;
@@ -1422,7 +1428,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1422
1428
  /* ---------- Accordion ---------- */
1423
1429
  .aura-accordion { border-top: 1px solid var(--aura-border-default); font-family: var(--font-sans); }
1424
1430
  .aura-accordion__item { border-bottom: 1px solid var(--aura-border-default); }
1425
- .aura-accordion__heading { margin: 0; font-size: 14px; font-weight: 600; }
1431
+ .aura-accordion__heading { margin: 0; font-size: max(14px, .875rem); font-weight: 600; }
1426
1432
  .aura-accordion__heading > button {
1427
1433
  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;
1428
1434
  border: 0; background: transparent; color: var(--aura-fg-primary); font: inherit; text-align: left; cursor: pointer;
@@ -1431,22 +1437,22 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1431
1437
  .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); }
1432
1438
  .aura-accordion__heading > button:disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1433
1439
  .aura-accordion__title { flex: 1; display: flex; flex-direction: column; gap: 2px; }
1434
- .aura-accordion__desc { font-size: 13px; font-weight: 400; color: var(--aura-fg-secondary); }
1440
+ .aura-accordion__desc { font-size: max(13px, .8125rem); font-weight: 400; color: var(--aura-fg-secondary); }
1435
1441
  .aura-accordion__lead { color: var(--aura-fg-secondary); }
1436
1442
  .aura-accordion__chevron { flex: none; color: var(--aura-fg-secondary); transition: transform var(--aura-duration-fast) var(--aura-ease); }
1437
1443
  .aura-accordion__item.is-open .aura-accordion__chevron { transform: rotate(180deg); }
1438
- .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); }
1444
+ .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); }
1439
1445
 
1440
1446
  /* ---------- Popover ---------- */
1441
1447
  .aura-popover-anchor { display: inline-flex; }
1442
1448
  .aura-popover {
1443
1449
  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));
1444
1450
  background: var(--aura-bg-surface); color: var(--aura-fg-primary); border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-lg);
1445
- 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);
1451
+ 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);
1446
1452
  overflow-y: auto; overscroll-behavior: contain;
1447
1453
  }
1448
1454
  .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 */
1449
- .aura-popover__title { margin: 0; font-size: 14px; font-weight: 600; }
1455
+ .aura-popover__title { margin: 0; font-size: max(14px, .875rem); font-weight: 600; }
1450
1456
  .aura-popover__body { padding: var(--aura-space-4); }
1451
1457
  .aura-popover__head + .aura-popover__body { padding-top: var(--aura-space-2); }
1452
1458
  @media (prefers-reduced-motion: reduce) { .aura-popover { animation: none; } }
@@ -1461,7 +1467,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1461
1467
  .aura-combo__chip {
1462
1468
  display: inline-flex; align-items: center; gap: 2px; max-width: 100%; height: 28px; box-sizing: border-box;
1463
1469
  padding: 0 2px 0 var(--aura-space-2); border-radius: var(--aura-radius-full);
1464
- background: var(--aura-bg-selected); color: var(--aura-fg-primary); font-size: 13px; font-weight: 500;
1470
+ background: var(--aura-bg-selected); color: var(--aura-fg-primary); font-size: max(13px, .8125rem); font-weight: 500;
1465
1471
  }
1466
1472
  .aura-combo__chip-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 24ch; }
1467
1473
  .aura-combo__chip-remove {
@@ -1473,7 +1479,7 @@ a.aura-upload__name:focus-visible { outline: var(--aura-focus-ring-width) solid
1473
1479
 
1474
1480
  /* ---------- NumberField ---------- */
1475
1481
  .aura-number .aura-input__control { font-variant-numeric: tabular-nums; }
1476
- .aura-number__affix { padding-left: var(--aura-space-3); color: var(--aura-fg-secondary); font-size: 14px; white-space: nowrap; }
1482
+ .aura-number__affix { padding-left: var(--aura-space-3); color: var(--aura-fg-secondary); font-size: max(14px, .875rem); white-space: nowrap; }
1477
1483
  .aura-number__affix + .aura-input__control { padding-left: var(--aura-space-2); }
1478
1484
  .aura-input__control + .aura-number__affix { padding: 0 var(--aura-space-2) 0 0; }
1479
1485
  .aura-number__steps { display: flex; align-self: stretch; border-left: 1px solid var(--aura-border-default); }
@@ -1501,16 +1507,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1501
1507
  .aura-stepper__marker {
1502
1508
  position: relative; z-index: 1; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; box-sizing: border-box;
1503
1509
  border-radius: var(--aura-radius-full); border: 1px solid var(--aura-border-control); background: var(--aura-bg-surface);
1504
- color: var(--aura-fg-secondary); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums;
1510
+ color: var(--aura-fg-secondary); font-size: max(13px, .8125rem); font-weight: 600; font-variant-numeric: tabular-nums;
1505
1511
  }
1506
1512
  .aura-stepper__marker .aura-icon { width: 16px; height: 16px; }
1507
1513
  .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); }
1508
1514
  .aura-stepper__item.is-current .aura-stepper__marker { border: 2px solid var(--aura-fg-accent); color: var(--aura-fg-accent); }
1509
1515
  .aura-stepper__text { display: flex; flex-direction: column; min-width: 0; padding-top: 4px; }
1510
- .aura-stepper__label { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--aura-fg-secondary); }
1516
+ .aura-stepper__label { font-size: max(13px, .8125rem); font-weight: 500; line-height: 1.4; color: var(--aura-fg-secondary); }
1511
1517
  .aura-stepper__item.is-current .aura-stepper__label, .aura-stepper__item.is-done .aura-stepper__label { color: var(--aura-fg-primary); }
1512
1518
  .aura-stepper__item.is-current .aura-stepper__label { font-weight: 600; }
1513
- .aura-stepper__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
1519
+ .aura-stepper__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
1514
1520
  /* Connector: a line from each marker to the next (labels sit under the markers), or down the left when vertical. */
1515
1521
  .aura-stepper--horizontal .aura-stepper__item:not(:last-child)::after {
1516
1522
  content: ""; position: absolute; top: 14px; left: 36px; right: var(--aura-space-2); height: 1px; background: var(--aura-border-control); pointer-events: none;
@@ -1523,7 +1529,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1523
1529
  content: ""; position: absolute; left: 14px; top: 32px; bottom: 4px; width: 1px; background: var(--aura-border-control);
1524
1530
  }
1525
1531
  .aura-stepper--vertical .aura-stepper__item.is-done::after { background: var(--aura-control-checked-bg); }
1526
- .aura-stepper__compact { display: none; margin: var(--aura-space-2) 0 0; font-size: 13px; }
1532
+ .aura-stepper__compact { display: none; margin: var(--aura-space-2) 0 0; font-size: max(13px, .8125rem); }
1527
1533
  .aura-stepper__count { color: var(--aura-fg-secondary); margin-right: var(--aura-space-2); }
1528
1534
  .aura-stepper__compact-label { font-weight: 600; }
1529
1535
  /* 5.18 (Chamber-OS 112): a step with errors — the danger fill and an alert icon; outlined when it is the current step. */
@@ -1544,7 +1550,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1544
1550
  height: calc(var(--aura-input-height) - 6px); /* 5.30: the control is as tall as a field beside it (2px padding, 1px edge) */
1545
1551
  padding: 0 var(--aura-space-4); box-sizing: border-box;
1546
1552
  border: 0; border-radius: var(--aura-radius-full); background: transparent; color: var(--aura-fg-secondary);
1547
- font: inherit; font-size: 13px; font-weight: 500; white-space: nowrap; cursor: pointer;
1553
+ font: inherit; font-size: max(13px, .8125rem); font-weight: 500; white-space: nowrap; cursor: pointer;
1548
1554
  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);
1549
1555
  }
1550
1556
  .aura-segmented.is-full .aura-segmented__option { flex: 1 1 0; min-width: 0; }
@@ -1553,7 +1559,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1553
1559
  .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 */
1554
1560
  .aura-segmented__option:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: 1px; }
1555
1561
  .aura-segmented__option:disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1556
- .aura-segmented--sm .aura-segmented__option { height: 24px; padding: 0 var(--aura-space-3); font-size: 12px; }
1562
+ .aura-segmented--sm .aura-segmented__option { height: auto; min-height: 24px; padding: 0 var(--aura-space-3); font-size: max(12px, .75rem); }
1557
1563
  .aura-segmented--sm .aura-segmented__option.is-icon { width: 28px; padding: 0; }
1558
1564
  .aura-segmented.is-disabled { opacity: var(--aura-disabled-opacity); }
1559
1565
  /* 5.37 (DxT Monitor #18): touchHeight — 44px options below 640px or on a coarse pointer (is-touch), or always. */
@@ -1641,7 +1647,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1641
1647
  .aura-toaster.is-top { top: calc(var(--aura-toaster-offset, var(--aura-space-4)) + env(safe-area-inset-top, 0px)); }
1642
1648
  .aura-card { padding: var(--aura-space-4); --aura-card-bleed: var(--aura-space-4); }
1643
1649
  .aura-stat { padding: var(--aura-space-4); }
1644
- .aura-stat__value { font-size: 24px; }
1650
+ .aura-stat__value { font-size: max(24px, 1.5rem); }
1645
1651
  .aura-tabs__list { gap: var(--aura-space-4); }
1646
1652
  }
1647
1653
  @keyframes aura-sheet-in { from { transform: translateY(24px); opacity: 0; } }
@@ -1706,22 +1712,22 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1706
1712
  /* FormErrorSummary: a danger alert whose items link to their fields */
1707
1713
  .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); }
1708
1714
  .aura-error-summary h2.aura-alert__title { font-family: inherit; }
1709
- .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; }
1715
+ .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); }
1710
1716
  .aura-error-summary__list a { color: var(--aura-alert-danger-fg); text-decoration: underline; text-underline-offset: 2px; font-weight: 500; }
1711
1717
  .aura-error-summary__list a:hover { text-decoration-thickness: 2px; }
1712
1718
  .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); }
1713
1719
 
1714
1720
  /* aura-prose: sanitised rich text (editor output, e-mail previews). Styles exactly p, h1–h4, ul/ol/li, blockquote,
1715
1721
  * hr, a, strong, em, u with AURA type and spacing, in both themes. */
1716
- .aura-prose { font-family: var(--font-sans); font-size: 14px; line-height: 1.7; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1722
+ .aura-prose { font-family: var(--font-sans); font-size: max(14px, .875rem); line-height: 1.7; color: var(--aura-fg-primary); overflow-wrap: anywhere; }
1717
1723
  .aura-prose > :first-child { margin-top: 0; }
1718
1724
  .aura-prose > :last-child { margin-bottom: 0; }
1719
1725
  .aura-prose p { margin: 0 0 var(--aura-space-4); }
1720
1726
  .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); }
1721
- .aura-prose h1 { font-family: var(--font-display); font-weight: 600; font-size: 30px; line-height: 1.2; letter-spacing: -0.01em; }
1722
- .aura-prose h2 { font-weight: 600; font-size: 22px; line-height: 1.3; }
1723
- .aura-prose h3 { font-weight: 600; font-size: 17px; line-height: 1.45; }
1724
- .aura-prose h4 { font-weight: 600; font-size: 15px; line-height: 1.5; }
1727
+ .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; }
1728
+ .aura-prose h2 { font-weight: 600; font-size: max(22px, 1.375rem); line-height: 1.3; }
1729
+ .aura-prose h3 { font-weight: 600; font-size: max(17px, 1.0625rem); line-height: 1.45; }
1730
+ .aura-prose h4 { font-weight: 600; font-size: max(15px, .9375rem); line-height: 1.5; }
1725
1731
  .aura-prose ul, .aura-prose ol { margin: 0 0 var(--aura-space-4); padding-left: var(--aura-space-6); }
1726
1732
  .aura-prose li { margin: var(--aura-space-1) 0; }
1727
1733
  .aura-prose li > ul, .aura-prose li > ol { margin: var(--aura-space-1) 0 0; }
@@ -1745,7 +1751,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1745
1751
  .aura-filterbar__clear-search { margin-right: 6px; }
1746
1752
  .aura-filterbar__controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-3); }
1747
1753
  .aura-filterbar__spacer { flex: 1 1 0; }
1748
- .aura-filterbar__count { font-size: 13px; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
1754
+ .aura-filterbar__count { font-size: max(13px, .8125rem); color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; white-space: nowrap; }
1749
1755
  .aura-filterbar__actions { display: flex; align-items: center; gap: var(--aura-space-2); }
1750
1756
  .aura-filterbar__chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--aura-space-2); }
1751
1757
  /* 5.28 (Chamber-OS 132): an applied-filter chip takes its text's width, cut only when it is wider than the row. */
@@ -1756,7 +1762,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1756
1762
  .aura-filterbar__chips > .aura-tag .aura-tag__text { max-width: none; min-width: 0; }
1757
1763
  .aura-filterbar__clear {
1758
1764
  border: 0; background: transparent; padding: 4px var(--aura-space-2); border-radius: var(--aura-radius-sm);
1759
- font: inherit; font-size: 13px; font-weight: 500; color: var(--aura-fg-accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
1765
+ font: inherit; font-size: max(13px, .8125rem); font-weight: 500; color: var(--aura-fg-accent); cursor: pointer; text-decoration: underline; text-underline-offset: 2px;
1760
1766
  }
1761
1767
  .aura-filterbar__clear:hover { background: var(--aura-hover, var(--aura-bg-surface-hover)); }
1762
1768
  .aura-filterbar__clear:focus-visible { outline: var(--aura-focus-ring-width) solid var(--aura-focus-ring); outline-offset: var(--aura-focus-ring-offset); }
@@ -1787,7 +1793,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1787
1793
  min-height: var(--aura-input-height); padding-block: 0; padding-inline: var(--aura-space-2) var(--aura-space-1);
1788
1794
  background: var(--aura-bg-input); color: var(--aura-fg-primary);
1789
1795
  border: 1px solid var(--aura-border-control); border-radius: var(--aura-radius-md);
1790
- font: inherit; font-size: 13px; line-height: 18px; text-align: start; cursor: pointer;
1796
+ font: inherit; font-size: max(13px, .8125rem); line-height: max(18px, 1.125rem); text-align: start; cursor: pointer;
1791
1797
  transition: border-color var(--aura-duration-fast) var(--aura-ease);
1792
1798
  }
1793
1799
  .aura-filterselect__face:hover { border-color: var(--aura-fg-secondary); }
@@ -1797,7 +1803,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1797
1803
  /* 5.30: from 640px the face has a field's inset and text size, like the search box beside it; phones keep the tight
1798
1804
  * face so three filters and a chip share one row. */
1799
1805
  @media (min-width: 640px) {
1800
- .aura-filterselect__face { padding-inline: var(--aura-space-3) var(--aura-space-2); font-size: 14px; }
1806
+ .aura-filterselect__face { padding-inline: var(--aura-space-3) var(--aura-space-2); font-size: max(14px, .875rem); }
1801
1807
  .aura-filterselect__chevron { width: var(--aura-icon-sm); height: var(--aura-icon-sm); }
1802
1808
  }
1803
1809
  .aura-filterselect.is-open .aura-filterselect__chevron { transform: rotate(180deg); }
@@ -1807,7 +1813,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1807
1813
  .aura-filterselect__face:focus { outline-style: none; }
1808
1814
  .aura-filterselect__face:focus-visible { outline-style: solid; }
1809
1815
  /* Before hydration: the real <select>, invisible, over the face (16px so iOS doesn't zoom when it opens). */
1810
- .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; }
1816
+ .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; }
1811
1817
  .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; }
1812
1818
  .aura-filterselect.is-disabled .aura-filterselect__native { cursor: not-allowed; }
1813
1819
  /* 5.38 (Chamber-OS 140): touchHeight on FilterBar (its search and field-height controls) or on one FilterSelect —
@@ -1852,21 +1858,21 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1852
1858
  .aura-command__input::placeholder { color: var(--aura-fg-tertiary); opacity: 1; }
1853
1859
  .aura-command__list { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: var(--aura-space-2); }
1854
1860
  .aura-command__group + .aura-command__group { margin-top: var(--aura-space-2); }
1855
- .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); }
1856
- .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; }
1861
+ .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); }
1862
+ .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); }
1857
1863
  .aura-command__item > .aura-icon { color: var(--aura-fg-secondary); }
1858
1864
  .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)); }
1859
1865
  .aura-command__item.is-disabled { opacity: var(--aura-disabled-opacity); cursor: default; }
1860
1866
  .aura-command__text { flex: 1; min-width: 0; display: flex; flex-direction: column; }
1861
1867
  .aura-command__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1862
- .aura-command__desc { font-size: 12px; line-height: 1.5; color: var(--aura-fg-secondary); }
1868
+ .aura-command__desc { font-size: max(12px, .75rem); line-height: 1.5; color: var(--aura-fg-secondary); }
1863
1869
  .aura-command__kbd {
1864
1870
  flex: none; padding: 2px 6px; border: 1px solid var(--aura-border-default); border-radius: var(--aura-radius-xs);
1865
- font-family: var(--font-mono); font-size: 11px; line-height: 16px; color: var(--aura-fg-secondary); background: var(--aura-bg-canvas);
1871
+ 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);
1866
1872
  }
1867
- .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); }
1868
- .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); }
1869
- .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); }
1873
+ .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); }
1874
+ .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); }
1875
+ .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); }
1870
1876
  @media (max-width: 639.98px) {
1871
1877
  .aura-dialog-layer.aura-command-layer { align-items: flex-start; padding: var(--aura-space-4); }
1872
1878
  .aura-command { max-height: 80vh; }
@@ -1910,7 +1916,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1910
1916
  .aura-bottomnav__item {
1911
1917
  box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
1912
1918
  width: 100%; height: var(--aura-bottomnav-height); padding: 0 2px; border: 0; background: transparent;
1913
- color: var(--aura-fg-secondary); font: inherit; font-size: 11px; font-weight: 500; line-height: 14px;
1919
+ color: var(--aura-fg-secondary); font: inherit; font-size: max(11px, .6875rem); font-weight: 500; line-height: max(14px, .875rem);
1914
1920
  text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
1915
1921
  }
1916
1922
  .aura-bottomnav__item:hover { color: var(--aura-fg-primary); }
@@ -1924,9 +1930,9 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1924
1930
  .aura-bottomnav__item.is-active .aura-bottomnav__icon { background: var(--aura-bg-selected); }
1925
1931
  .aura-bottomnav__label { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1926
1932
  .aura-bottomnav__count {
1927
- position: absolute; top: -2px; left: calc(50% + 4px); min-width: 16px; height: 16px; box-sizing: border-box; padding: 0 4px;
1933
+ position: absolute; top: -2px; left: calc(50% + 4px); min-width: 16px; min-height: 16px; box-sizing: border-box; padding: 0 4px;
1928
1934
  border-radius: var(--aura-radius-full); background: var(--aura-bg-inverted); color: var(--aura-fg-inverted);
1929
- font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; font-variant-numeric: tabular-nums;
1935
+ font-size: max(10px, .625rem); font-weight: 600; line-height: max(16px, 1rem); text-align: center; font-variant-numeric: tabular-nums;
1930
1936
  box-shadow: 0 0 0 2px var(--aura-bg-surface);
1931
1937
  }
1932
1938
  .aura-bottomnav__dot {
@@ -1963,7 +1969,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
1963
1969
  }
1964
1970
  .aura-actionbar--container { bottom: 0; border-top: 1px solid var(--aura-border-default); }
1965
1971
  .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); }
1966
- .aura-actionbar__status { flex: 1 1 8rem; min-width: 0; font-size: 14px; color: var(--aura-fg-secondary); font-variant-numeric: tabular-nums; }
1972
+ .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; }
1967
1973
  .aura-actionbar__status:empty { flex-basis: 0; }
1968
1974
  /* 5.20: an empty status leaves the row (it would still take a gap and push the start slot away from its edge) but
1969
1975
  * stays in the page as a live region, so the next status is announced. */
@@ -2000,8 +2006,8 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2000
2006
  linear-gradient(to left, var(--aura-scroll-shadow), transparent) right / 12px 100% no-repeat scroll,
2001
2007
  var(--aura-tbl-bg, var(--aura-bg-surface));
2002
2008
  }
2003
- .aura-tbl { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: 13px; line-height: 20px; }
2004
- .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; }
2009
+ .aura-tbl { width: 100%; border-collapse: collapse; border-spacing: 0; font-size: max(13px, .8125rem); line-height: max(20px, 1.25rem); }
2010
+ .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; }
2005
2011
  /* 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
2006
2012
  * email, a URL) still breaks to fit instead of widening the table. Phones keep fitting the box: use stackBelow there. */
2007
2013
  .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; }
@@ -2010,14 +2016,14 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2010
2016
  .aura-tbl__th:last-child, .aura-tbl__td:last-child { padding-right: var(--aura-space-6); }
2011
2017
  .aura-tbl__head .aura-tbl__th {
2012
2018
  background: var(--aura-table-head-bg); border-bottom: 1px solid var(--aura-border-default);
2013
- font-family: var(--font-mono); font-size: 12px; font-weight: 400; color: var(--aura-fg-secondary); white-space: nowrap;
2019
+ font-family: var(--font-mono); font-size: max(12px, .75rem); font-weight: 400; color: var(--aura-fg-secondary); white-space: nowrap;
2014
2020
  }
2015
2021
  .aura-tbl__body .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
2016
2022
  .aura-tbl__body .aura-tbl__th { font-weight: 500; }
2017
2023
  .aura-tbl__foot > .aura-tbl__row > * { background: var(--aura-table-head-bg); font-weight: 600; }
2018
2024
  .aura-tbl__foot > .aura-tbl__row:first-child > * { border-top: 2px solid var(--aura-border-default); }
2019
2025
  /* 5.30: with several totals rows (Subtotal, VAT, Total) the last one reads as the total. */
2020
- .aura-tbl__foot > .aura-tbl__row:last-child:not(:first-child) > * { font-size: 14px; font-weight: 700; }
2026
+ .aura-tbl__foot > .aura-tbl__row:last-child:not(:first-child) > * { font-size: max(14px, .875rem); font-weight: 700; }
2021
2027
  .aura-tbl__foot > .aura-tbl__row + .aura-tbl__row > * { border-top: 1px solid var(--aura-border-default); }
2022
2028
  .aura-tbl .is-end { text-align: right; }
2023
2029
  .aura-tbl .is-center { text-align: center; }
@@ -2066,18 +2072,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2066
2072
  .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); }
2067
2073
  .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; }
2068
2074
  .aura-tbl--stack-md > * > .aura-tbl__row > * + * { margin-top: var(--aura-space-2); }
2069
- .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: 14px; font-weight: 600; }
2075
+ .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: max(14px, .875rem); font-weight: 600; }
2070
2076
  /* 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. */
2071
2077
  .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); }
2072
2078
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card])::after { content: ''; order: 3; flex: 0 0 100%; }
2073
2079
  .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); }
2074
2080
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card] { margin-top: 0; }
2075
- .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; }
2081
+ .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; }
2076
2082
  .aura-tbl--stack-md > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='action'] { order: 2; flex: none; margin-inline-start: auto; }
2077
2083
  .aura-tbl-wrap.is-flush > .aura-tbl--stack-md > .aura-tbl__caption { padding-inline: var(--aura-space-4); }
2078
2084
  .aura-tbl--stack-md > * > .aura-tbl__row > .aura-tbl__td[data-label]::before {
2079
2085
  content: attr(data-label); content: attr(data-label) / '';
2080
- display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
2086
+ 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);
2081
2087
  }
2082
2088
  /* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
2083
2089
  .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); }
@@ -2090,18 +2096,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2090
2096
  .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); }
2091
2097
  .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; }
2092
2098
  .aura-tbl--stack-sm > * > .aura-tbl__row > * + * { margin-top: var(--aura-space-2); }
2093
- .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: 14px; font-weight: 600; }
2099
+ .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row > .aura-tbl__th { font-size: max(14px, .875rem); font-weight: 600; }
2094
2100
  /* 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. */
2095
2101
  .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); }
2096
2102
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card])::after { content: ''; order: 3; flex: 0 0 100%; }
2097
2103
  .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); }
2098
2104
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card] { margin-top: 0; }
2099
- .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; }
2105
+ .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; }
2100
2106
  .aura-tbl--stack-sm > .aura-tbl__body > .aura-tbl__row:has(> [data-card]) > [data-card='action'] { order: 2; flex: none; margin-inline-start: auto; }
2101
2107
  .aura-tbl-wrap.is-flush > .aura-tbl--stack-sm > .aura-tbl__caption { padding-inline: var(--aura-space-4); }
2102
2108
  .aura-tbl--stack-sm > * > .aura-tbl__row > .aura-tbl__td[data-label]::before {
2103
2109
  content: attr(data-label); content: attr(data-label) / '';
2104
- display: block; margin-bottom: 2px; font-family: var(--font-mono); font-size: 11px; line-height: 16px; font-weight: 400; color: var(--aura-fg-secondary);
2110
+ 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);
2105
2111
  }
2106
2112
  /* 5.26: a bleeding list keeps its rows' text level with the Card's content (16px where it doesn't bleed). */
2107
2113
  .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); }
@@ -2164,7 +2170,7 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2164
2170
  .aura-table__picker { display: none; }
2165
2171
  .aura-table__head {
2166
2172
  position: static; height: auto; min-width: 0; padding: 0 0 var(--aura-space-3); border: 0; background: none;
2167
- font-family: var(--font-sans); font-size: 13px;
2173
+ font-family: var(--font-sans); font-size: max(13px, .8125rem);
2168
2174
  }
2169
2175
  .aura-table__head > .aura-table__th {
2170
2176
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
@@ -2204,16 +2210,16 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2204
2210
  .aura-table__td[data-label]::before {
2205
2211
  content: attr(data-label); content: attr(data-label) / '';
2206
2212
  display: block; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: start;
2207
- font-family: var(--font-mono); font-size: 11px; line-height: normal; font-weight: 400; color: var(--aura-fg-secondary);
2213
+ font-family: var(--font-mono); font-size: max(11px, .6875rem); line-height: normal; font-weight: 400; color: var(--aura-fg-secondary);
2208
2214
  }
2209
2215
  .aura-table__td[data-card='title'], .aura-table__td[data-card='pill'], .aura-table__td[data-card='actions'] { align-self: center; margin-bottom: 0; }
2210
- .aura-table__td[data-card='title'] { order: 1; flex: 1 1 0; font-size: 14px; font-weight: 600; }
2216
+ .aura-table__td[data-card='title'] { order: 1; flex: 1 1 0; font-size: max(14px, .875rem); font-weight: 600; }
2211
2217
  .aura-table__td[data-card='pill'] { order: 2; flex: none; }
2212
2218
  .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; }
2213
2219
  /* 5.22 (Chamber-OS 119): the title wraps rather than being cut — a member's full name before a one-click action —
2214
2220
  * and the row box and the pill line up with its first line (a 20px line; the 16px box 2px down). */
2215
- .aura-table__td[data-card='title'] { white-space: normal; overflow-wrap: anywhere; overflow: visible; line-height: 20px; align-self: flex-start; }
2216
- .aura-table__td[data-card='pill'] { align-self: flex-start; line-height: 20px; }
2221
+ .aura-table__td[data-card='title'] { white-space: normal; overflow-wrap: anywhere; overflow: visible; line-height: max(20px, 1.25rem); align-self: flex-start; }
2222
+ .aura-table__td[data-card='pill'] { align-self: flex-start; line-height: max(20px, 1.25rem); }
2217
2223
  .aura-table__row > .aura-table__sel { align-self: flex-start; margin-top: 2px; }
2218
2224
  /* Actions top-right sit on that first line too (a 32px button centred on 20px, the same 24px footprint as before). */
2219
2225
  .aura-table__td[data-card='actions'] { align-self: flex-start; margin-top: calc(-1 * var(--aura-space-1) - 2px); margin-bottom: -2px; }
@@ -2275,18 +2281,18 @@ button.aura-stepper__step:hover .aura-stepper__label { text-decoration: underlin
2275
2281
 
2276
2282
  /* 5.30: Thai needs more room than Latin — tone marks and vowels stack above and below the line. Where the page or a
2277
2283
  * part of it is Thai (lang="th"), small labels are at least 12px and lines are taller. */
2278
- .aura-pill:lang(th), .aura-badge:lang(th), .aura-tab__count:lang(th) { font-size: 12px; }
2279
- .aura-pill:lang(th) { line-height: 18px; }
2284
+ .aura-pill:lang(th), .aura-badge:lang(th), .aura-tab__count:lang(th) { font-size: max(12px, .75rem); }
2285
+ .aura-pill:lang(th) { line-height: max(18px, 1.125rem); }
2280
2286
  .aura-skel--pill:lang(th) { height: 22px; } /* the loading pill stays as tall as the Thai one */
2281
- .aura-bottomnav__item:lang(th) { font-size: 12px; line-height: 18px; }
2282
- .aura-stepper__desc:lang(th) { font-size: 13px; line-height: 1.6; }
2283
- .aura-nav__label:lang(th) { line-height: 22px; }
2287
+ .aura-bottomnav__item:lang(th) { font-size: max(12px, .75rem); line-height: max(18px, 1.125rem); }
2288
+ .aura-stepper__desc:lang(th) { font-size: max(13px, .8125rem); line-height: 1.6; }
2289
+ .aura-nav__label:lang(th) { line-height: max(22px, 1.375rem); }
2284
2290
  /* 5.30 (audit D): field labels, hints and errors and choice descriptions get Thai line room; a stacked card's field
2285
2291
  * labels are 12px in the sans face (the mono face has no Thai), and a stacked DataTable card's values sit on a set
2286
2292
  * 1.6 line, so a loading card (its bars follow 1lh) is as tall as one with Thai text. */
2287
2293
  .aura-field__label:lang(th), .aura-field__hint:lang(th), .aura-field__error:lang(th), .aura-field__addon:lang(th) { line-height: 1.6; }
2288
- .aura-choice__desc:lang(th), .aura-check__desc:lang(th) { font-size: 13px; line-height: 1.6; }
2289
- .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; }
2294
+ .aura-choice__desc:lang(th), .aura-check__desc:lang(th) { font-size: max(13px, .8125rem); line-height: 1.6; }
2295
+ .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); }
2290
2296
  .aura-table--stacked .aura-table__td[data-label]:lang(th) { line-height: 1.6; }
2291
2297
 
2292
2298
  /* 5.30: a plain link (no class) inside AURA's surfaces takes the accent colour instead of the browser's blue. Zero