/* R36.42.18 — additive, low-risk interface foundation.
   Existing module styles, theme accent mapping, PDF print styles and event handlers remain authoritative. */
:root {
  --erp-ui-space-1:4px; --erp-ui-space-2:8px; --erp-ui-space-3:12px;
  --erp-ui-space-4:16px; --erp-ui-space-6:24px;
  --erp-ui-radius-sm:6px; --erp-ui-radius-md:10px;
  --erp-ui-focus:#2563eb; --erp-ui-control-min-height:36px;
}
/* Visible keyboard focus, without forcing a new mouse-click outline. */
:where(button,a,input,select,textarea,[role="button"],[tabindex]):focus-visible {
  outline:3px solid var(--erp-accent,var(--erp-ui-focus));
  outline-offset:2px;
}
/* Protect wide content from flexbox intrinsic minimums. */
:where(main,section,.panel,.table-wrap,.tablewrap,.modal-content) { min-width:0; }
/* Form controls must remain usable on narrow screens. */
:where(input,select,textarea) { max-width:100%; box-sizing:border-box; }
:where(button,[role="button"]) { touch-action:manipulation; }
/* Tables keep numerical columns readable; no global alignment overrides. */
:where(td,th)[data-type="currency"],
:where(td,th).erp-money,
:where(td,th).text-right { text-align:right; font-variant-numeric:tabular-nums; }
/* Opt-in reusable UI primitives for progressive adoption. */
.erp-ui-actions { display:flex; align-items:center; gap:var(--erp-ui-space-2); flex-wrap:wrap; }
.erp-ui-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:var(--erp-ui-space-2); }
.erp-ui-panel { border:1px solid var(--erp-border,#dfe5ec); border-radius:var(--erp-ui-radius-md); padding:var(--erp-ui-space-4); }
.erp-ui-table-scroll { overflow-x:auto; max-width:100%; }
.erp-ui-status { display:inline-flex; align-items:center; gap:var(--erp-ui-space-1); border-radius:999px; padding:3px 9px; font-size:.85em; font-weight:600; }
.erp-ui-sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@media (max-width:600px) {
  .erp-ui-actions { gap:var(--erp-ui-space-2); }
  .erp-ui-panel { padding:var(--erp-ui-space-3); }
  :where(dialog) { max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); box-sizing:border-box; }
}
@media (prefers-reduced-motion:reduce) {
  .erp-ui-actions *, .erp-ui-status { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
/* Preserve print/PDF styling exactly as provided by existing engines. */
@media print { .erp-ui-status { print-color-adjust:exact; } }
