/* Audit Lite — overlay containment.
   Structural rules an overlay needs that cannot be expressed inline, because
   they apply to descendants the overlay does not author: a modal's body is
   filled by the screen that opens it, and a docked panel's sections are
   authored per screen. Scoped to [data-al-overlay] so nothing leaks to the page.
   Requires tokens.css first. */

/* No flex or grid child may size itself by its intrinsic content: a select or a
   date input with min-width:auto is what pushes a field out of the plate. */
[data-al-overlay] * { min-width: 0; }

/* Fields are sized by their track, never by their content. */
[data-al-overlay] input,
[data-al-overlay] select,
[data-al-overlay] textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* A label stacks above its field, so a long label wraps instead of squeezing
   the input beside it. */
[data-al-overlay] label {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Nothing scrolls sideways inside an overlay; the panel's own body scrolls
   vertically, and a wide table scrolls inside its own wrapper. */
[data-al-overlay] { overflow-x: hidden; }
[data-al-overlay] table { max-width: none; }
