/* Page widths shared by the office landing page and application shell. */
:root {
  --page-gutter: clamp(1.5rem,4vw,4rem);
  --public-page-width: 94rem;
  --form-page-width: 72rem;
  --form-compact-width: 42rem;
  --auth-workspace-width: 56rem;
  --auth-form-width: 36rem;
  --reading-page-width: 56rem;
  --search-input-width: 34rem;
  /* U2 (B-154): the line length of text on a full-width page. */
  --reading-measure: 70ch;
}
.page-wrap, .wrap { width: calc(100% - var(--page-gutter)); margin-inline: auto; }
/* U1 (B-154): the public cap holds the content; a signed-in person's header keeps the workspace width on every frame, so the menu never jumps. */
[data-page-layout="public"] :is(.page-wrap, .wrap):not(.header-lab-inner),
[data-page-layout="public"]:not([data-signed-in]) .header-lab-inner { max-width: var(--public-page-width); }
@media (max-width: 39rem) {
  :root { --page-gutter: 1.25rem; }
}
/* U2 (B-154): on a full-width page, text keeps a reading measure while tables
   and forms keep the width; a short value's field is as wide as its value. */
/* B-160: Kontrola's blocker list, notes and the notes' description keep it too. */
:is(.page-description, .step-intro-copy > p, .context-notice-content > p, .tool-card > p, .people-section-note, .checklist-copy, .field-note, .hint, .blocker-list, .review-meta, .proposal-notes-heading > p) { max-width: var(--reading-measure); }
.office-ui input:is([type="date"], [type="time"], [type="datetime-local"]) { max-width: 16rem; }
/* U1, U2 (B-154): a table of few columns sizes to its content. */
.table-fit { width: auto; max-width: 100%; }
