/* ISO QMS — application layout on top of IBM Carbon (assets/carbon/carbon.css + web components).
 *
 * Rules for this file: colours are Carbon theme tokens (var(--cds-…)), spacing is the Carbon spacing scale
 * (--cds-spacing-01 … 13), type uses Carbon type tokens (--cds-<style>-font-size etc.) and IBM Plex. No gradients,
 * no shadows beyond Carbon's own, no rounded corners: Carbon components are square. The report preview (.paper)
 * is the one exception — it reproduces the Word report template's own print colours.
 */

[hidden] { display: none !important; }
html { scroll-padding-top: 4rem; }
body { margin: 0; background: var(--cds-background); color: var(--cds-text-primary); font-family: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: var(--cds-body-01-font-size, .875rem); line-height: var(--cds-body-01-line-height, 1.42857); letter-spacing: var(--cds-body-01-letter-spacing, .16px); }
:not(:defined) { visibility: hidden; }                          /* no flash of un-upgraded web components */
cds-loading:not(:defined), cds-header:not(:defined) { visibility: visible; }
b, strong { font-weight: 600; }
code, .qms-mono, .mono { font-family: 'IBM Plex Mono', ui-monospace, 'Cascadia Mono', monospace; font-size: .9em; letter-spacing: 0; }
.qms-dim, .dim { color: var(--cds-text-secondary); }
.qms-role-note { margin: 0 0 var(--cds-spacing-05); font-size: var(--cds-helper-text-01-font-size, 0.75rem); line-height: 1.34; color: var(--cds-text-secondary); }
.qms-small { font-size: var(--cds-helper-text-01-font-size, .75rem); }
.qms-nowrap { white-space: nowrap; }
.qms-req { color: var(--cds-text-helper); font-weight: 400; }
.qms-gap { margin-bottom: var(--cds-spacing-05); }
.qms-gap-top { margin-top: var(--cds-spacing-05); }
.qms-spacer { flex: 1 1 auto; }
.qms-code { font-family: 'IBM Plex Mono', monospace; font-size: var(--cds-code-01-font-size, .75rem); color: var(--cds-text-secondary); word-break: break-word; }
.qms-file { display: none; }
.cds--visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---- UI shell ------------------------------------------------------------------------------- */
.qms-app .qms-main { padding-top: 3rem; min-height: 100vh; box-sizing: border-box; outline: none; }
@media (min-width: 66rem) { .qms-app .qms-main { margin-left: 16rem; } }
.qms-bar { display: flex; align-items: center; gap: var(--cds-spacing-05); min-height: 3rem; padding: 0 var(--cds-spacing-07);
  border-bottom: 1px solid var(--cds-border-subtle-01); background: var(--cds-background); position: sticky; top: 3rem; z-index: 50; }
.qms-crumbs { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: var(--cds-spacing-04); overflow: hidden; }
.qms-crumb-tag { flex: none; }
.qms-save { display: inline-flex; align-items: center; gap: var(--cds-spacing-02); color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); white-space: nowrap; }
.qms-save.ok svg { color: var(--cds-support-success); }
.qms-save.err { color: var(--cds-text-error); }
.qms-save.err svg { color: var(--cds-support-error); }
.qms-view { padding: var(--cds-spacing-07) var(--cds-spacing-07) var(--cds-spacing-10); max-width: 99rem; }
@media (max-width: 42rem) { .qms-view { padding: var(--cds-spacing-05) var(--cds-spacing-05) var(--cds-spacing-09); } .qms-bar { padding: 0 var(--cds-spacing-05); } }
.qms-nav-num { display: inline-block; min-width: 2.25rem; font-family: 'IBM Plex Mono', monospace; font-size: .75rem; color: var(--cds-text-secondary); }
.qms-nav-tag { font-size: .75rem; color: var(--cds-text-secondary); }
.qms-nav-tag.err { color: var(--cds-text-error); }

/* header panels (theme, account) */
.qms-panel { padding: var(--cds-spacing-05); color: var(--cds-text-primary); }
.qms-panel .cds--radio-button-wrapper { margin-bottom: var(--cds-spacing-03); }
.qms-panel__name { font-size: var(--cds-heading-compact-02-font-size, 1rem); font-weight: 600; margin: 0 0 var(--cds-spacing-02); }
.qms-panel__meta { margin: 0 0 var(--cds-spacing-02); color: var(--cds-text-secondary); word-break: break-word; }
.qms-panel__actions { display: flex; flex-direction: column; align-items: stretch; margin-top: var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); padding-top: var(--cds-spacing-03); }
.qms-panel__actions cds-button { width: 100%; }
.qms-panel__actions cds-button::part(button) { width: 100%; max-width: none; }

/* toasts */
.qms-toasts { position: fixed; top: 3.5rem; right: var(--cds-spacing-05); z-index: 9000; display: flex; flex-direction: column; gap: var(--cds-spacing-03); max-width: calc(100vw - 2rem); }

/* modals: a <form> wrapping body and footer must not break the modal's flex layout */
.qms-modal-form { display: contents; }
cds-modal-body .qms-grid { margin-bottom: var(--cds-spacing-03); }
.qms-pick { display: grid; gap: var(--cds-spacing-03); }

/* ---- page header, sections ------------------------------------------------------------------ */
.qms-page-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--cds-spacing-05) var(--cds-spacing-07); margin-bottom: var(--cds-spacing-07); }
.qms-page-head__text { flex: 1 1 32rem; min-width: 0; }
.qms-page-head__label { margin: 0 0 var(--cds-spacing-02); color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); letter-spacing: var(--cds-label-01-letter-spacing, .32px); }
.qms-page-head__title { margin: 0; font-size: var(--cds-heading-05-font-size, 2rem); font-weight: var(--cds-heading-05-font-weight, 400); line-height: var(--cds-heading-05-line-height, 1.25); letter-spacing: 0; overflow-wrap: anywhere; }
.qms-page-head__desc { margin: var(--cds-spacing-03) 0 0; max-width: 52rem; color: var(--cds-text-secondary); font-size: var(--cds-body-01-font-size); line-height: var(--cds-body-01-line-height); }
.qms-page-head__actions { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); align-items: center; }
.qms-subhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: var(--cds-spacing-05); margin: var(--cds-spacing-05) 0; }
.qms-subhead__title { margin: 0; font-size: var(--cds-heading-03-font-size, 1.25rem); font-weight: 400; line-height: 1.4; display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); align-items: center; }

.qms-section { background: var(--cds-layer-01); padding: var(--cds-spacing-06); margin-bottom: var(--cds-spacing-05); }
.qms-section__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-03) var(--cds-spacing-05); margin-bottom: var(--cds-spacing-05); }
.qms-section__title { margin: 0; font-size: var(--cds-heading-03-font-size, 1.25rem); font-weight: var(--cds-heading-03-font-weight, 400); line-height: var(--cds-heading-03-line-height, 1.4); display: flex; align-items: baseline; gap: var(--cds-spacing-03); flex-wrap: wrap; }
.qms-section__tools { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); align-items: center; }
.qms-section__intro { margin: calc(-1 * var(--cds-spacing-03)) 0 var(--cds-spacing-05); max-width: 60rem; color: var(--cds-text-secondary); }
.qms-section__sub { margin: var(--cds-spacing-07) 0 var(--cds-spacing-03); font-size: var(--cds-heading-compact-01-font-size, .875rem); font-weight: 600; }
.qms-num { font-family: 'IBM Plex Mono', monospace; font-size: .875rem; color: var(--cds-text-secondary); min-width: 2rem; }
.qms-guide { display: flex; gap: var(--cds-spacing-03); align-items: flex-start; margin-bottom: var(--cds-spacing-05); padding: var(--cds-spacing-04) var(--cds-spacing-05);
  background: var(--cds-layer-02); border-left: 3px solid var(--cds-border-interactive); color: var(--cds-text-secondary); max-width: 64rem; }
.qms-guide svg { flex: none; margin-top: 2px; color: var(--cds-icon-secondary); }
.qms-guide p { margin: 0; }
.qms-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr)); gap: var(--cds-spacing-05); align-items: start; }
.qms-split { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--cds-spacing-05); align-items: start; }
@media (max-width: 66rem) { .qms-split { grid-template-columns: 1fr; } }
.qms-stack { display: flex; flex-direction: column; gap: var(--cds-spacing-06); }
.qms-narrow { max-width: 26rem; }
.qms-row, .qms-actions, .qms-tags { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); align-items: center; }
.qms-tags { gap: var(--cds-spacing-02); }
.qms-actions { margin-top: var(--cds-spacing-05); }
.qms-notice { margin-bottom: var(--cds-spacing-05); }
.qms-notice cds-inline-notification, .access-note cds-inline-notification, .err-line cds-inline-notification { max-width: 100%; }
.err-line:empty { display: none; }
.qms-overdue { display: inline-flex; align-items: center; gap: var(--cds-spacing-02); margin-left: var(--cds-spacing-02); color: var(--cds-text-error); font-size: var(--cds-label-01-font-size, .75rem); font-weight: 600; }
.qms-overdue svg { color: var(--cds-support-error); }
.qms-busy { display: inline-flex; margin-left: var(--cds-spacing-05); }

/* ---- form layout (fields are native elements with Carbon classes) ---------------------------- */
.qms-grid { display: grid; gap: var(--cds-spacing-06) var(--cds-spacing-05); grid-template-columns: minmax(0, 1fr); align-items: start; }
.qms-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.qms-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.qms-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qms-grid .qms-grid { gap: var(--cds-spacing-05); }
.qms-span-2 { grid-column: span 2; }
.qms-span-all { grid-column: 1 / -1; }
@media (max-width: 66rem) { .qms-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .qms-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 42rem) { .qms-grid--2, .qms-grid--3, .qms-grid--4 { grid-template-columns: minmax(0, 1fr); } .qms-span-2 { grid-column: auto; } }
.qms-field { width: 100%; }
.qms-field .cds--text-input, .qms-field .cds--text-area, .qms-field .cds--select-input { width: 100%; }
.cds--text-area { resize: vertical; min-height: 2.5rem; }
.cds--text-input__field-wrapper, .cds--text-area__wrapper { width: 100%; }
.f.missing .cds--label .qms-req { color: var(--cds-text-error); }
.f.missing .cds--text-input, .f.missing .cds--text-area, .f.missing .cds--select-input { box-shadow: inset 0 -2px 0 var(--cds-support-warning); }
input[type="date"].cds--text-input, input[type="time"].cds--text-input { color-scheme: inherit; }
.qms-checks { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-02) var(--cds-spacing-06); }
.qms-checks .cds--form-item { flex: none; width: auto; }
.qms-inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--cds-spacing-03); }
.qms-inline .qms-field { width: 18rem; max-width: 100%; }
.qms-form-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--cds-spacing-03); margin-top: var(--cds-spacing-06); padding-top: var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); }
.qms-invalid-icon { position: absolute; right: var(--cds-spacing-05); top: 50%; transform: translateY(-50%); fill: var(--cds-support-error); color: var(--cds-support-error); pointer-events: none; }
.cds--text-area__wrapper .qms-invalid-icon { top: var(--cds-spacing-04); transform: none; }
.cds--select-input__wrapper .qms-invalid-icon { right: var(--cds-spacing-08); }
.cds--text-input__field-wrapper { position: relative; display: flex; }
.cds--text-input--password__visibility__toggle { position: absolute; right: 0; top: 0; height: 100%; width: 2.5rem; display: flex; align-items: center; justify-content: center;
  background: transparent; border: 0; color: var(--cds-icon-secondary); cursor: pointer; padding: 0; }
.cds--text-input--password__visibility__toggle:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.cds--text-input--password__visibility__toggle:hover { color: var(--cds-icon-primary); }
input[type="password"].cds--text-input, .cds--text-input:has(+ .cds--text-input--password__visibility__toggle) { padding-right: 2.5rem; }
.qms-details summary { cursor: pointer; color: var(--cds-link-primary); padding: var(--cds-spacing-03) 0; }
.qms-details summary:focus { outline: 2px solid var(--cds-focus); }
.qms-details[open] summary { margin-bottom: var(--cds-spacing-03); }

/* ---- tables ----------------------------------------------------------------------------------- */
.qms-table { overflow-x: auto; max-width: 100%; }
.qms-table__empty { margin: 0; padding: var(--cds-spacing-04) var(--cds-spacing-05); background: var(--cds-layer); border-bottom: 1px solid var(--cds-border-subtle); color: var(--cds-text-secondary); font-size: var(--cds-body-compact-01-font-size, .875rem); line-height: var(--cds-body-compact-01-line-height, 1.28572); }
.qms-table--click cds-table-row[data-goto], .qms-table--click cds-table-row[data-href] { cursor: pointer; }
.qms-lt__scroll { overflow-x: auto; max-width: 100%; }
.qms-lt__table, .qms-dt { width: 100%; }
.qms-lt__table td { vertical-align: top; padding-top: var(--cds-spacing-02) !important; padding-bottom: var(--cds-spacing-02) !important; min-width: 7rem; }
.qms-lt__table td.rn, .qms-lt__table th:first-child { min-width: 0; width: 2rem; color: var(--cds-text-secondary); font-family: 'IBM Plex Mono', monospace; padding-top: var(--cds-spacing-04) !important; }
.qms-lt__table td.ops { min-width: 0; width: 1%; white-space: nowrap; }
.qms-lt__table .cds--text-input, .qms-lt__table .cds--text-area, .qms-lt__table .cds--select-input { background: var(--cds-field-02); }
.qms-lt__table .qms-cell-area { min-height: 2rem; padding: var(--cds-spacing-02) var(--cds-spacing-03); }
.qms-lt__tools { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); margin-top: var(--cds-spacing-03); }
.qms-dt td.num, .qms-dt th.num { text-align: right; font-family: 'IBM Plex Mono', monospace; }
.qms-dt tr.total td { font-weight: 600; background: var(--cds-layer-accent-01); }
.qms-dt td.dim { color: var(--cds-text-secondary); }

/* ---- dashboard tiles ------------------------------------------------------------------------- */
.qms-tiles { display: grid; grid-template-columns: repeat(16, minmax(0, 1fr)); gap: var(--cds-spacing-05); }
.qms-tiles__kpis { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--cds-spacing-05); }
.qms-tile { grid-column: span 16; min-width: 0; }
.qms-tile--wide { grid-column: span 10; }
.qms-tile--side { grid-column: span 6; }
.qms-tiles > .qms-tile--wide:first-of-type:not(:has(+ .qms-tile--side)) { grid-column: span 16; }
@media (max-width: 82rem) { .qms-tile--wide, .qms-tile--side { grid-column: span 16; } }
@media (max-width: 66rem) { .qms-tiles__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 42rem) { .qms-tiles__kpis { gap: var(--cds-spacing-03); } .qms-kpi { min-height: 6.5rem; } .qms-kpi__value { margin-top: var(--cds-spacing-03); font-size: var(--cds-heading-05-font-size, 2rem); } }
.qms-tile__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--cds-spacing-05); margin-bottom: var(--cds-spacing-05); }
.qms-tile__title { margin: 0; font-size: var(--cds-heading-compact-02-font-size, 1rem); font-weight: 600; line-height: 1.375; }
.qms-kpi { display: block; min-height: 8rem; }
.qms-kpi__label { display: flex; align-items: center; gap: var(--cds-spacing-03); color: var(--cds-text-secondary); }
.qms-kpi__label svg { color: var(--cds-icon-secondary); flex: none; }
.qms-kpi__value { display: block; margin-top: var(--cds-spacing-05); font-size: var(--cds-heading-06-font-size, 2.625rem); font-weight: 300; line-height: 1.2; color: var(--cds-text-primary); }
.qms-kpi__status { display: inline-flex; align-items: center; gap: var(--cds-spacing-02); margin-top: var(--cds-spacing-03); font-size: var(--cds-label-01-font-size, .75rem); color: var(--cds-text-secondary); }
.qms-kpi__status--error svg { color: var(--cds-support-error); }
.qms-kpi__status--warn svg { color: var(--cds-support-warning); }
.qms-kpi__status--ok svg { color: var(--cds-support-success); }
.qms-checklist { list-style: none; margin: 0; padding: 0; }
.qms-checklist li { display: flex; align-items: center; gap: var(--cds-spacing-04); padding: var(--cds-spacing-04) 0; border-top: 1px solid var(--cds-border-subtle-01); }
.qms-checklist li > span { flex: 1 1 auto; }
.qms-checklist li.is-done > span { color: var(--cds-text-secondary); }
.qms-ok { color: var(--cds-support-success); flex: none; }
.qms-todo { color: var(--cds-icon-secondary); flex: none; }
.qms-list { list-style: none; margin: 0; padding: 0; }
.qms-list__row { display: flex; justify-content: space-between; gap: var(--cds-spacing-04); padding: var(--cds-spacing-04) var(--cds-spacing-03); border-top: 1px solid var(--cds-border-subtle-01);
  color: var(--cds-text-primary); text-decoration: none; }
.qms-list__row:hover { background: var(--cds-layer-hover-01); }
.qms-list__row:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.qms-list__main { display: flex; flex-direction: column; min-width: 0; }
.qms-list__ref { color: var(--cds-link-primary); }
.qms-list__meta { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-02); align-items: flex-start; justify-content: flex-end; }

/* empty states (pictograms) */
.qms-empty { display: flex; flex-direction: column; align-items: flex-start; padding: var(--cds-spacing-07) var(--cds-spacing-05); max-width: 36rem; }
.qms-empty h3 { margin: var(--cds-spacing-05) 0 var(--cds-spacing-03); }
.qms-empty p { margin: 0; color: var(--cds-text-secondary); }
.qms-picto { display: block; width: 4rem; height: 4rem; background-color: var(--cds-icon-primary);
  -webkit-mask: var(--picto) center / contain no-repeat; mask: var(--picto) center / contain no-repeat; }   /* themed by token, never inverted */
.qms-picto--lg { width: 10rem; height: 10rem; margin-bottom: var(--cds-spacing-07); }

/* ---- sign-in and set-up (Carbon login pattern) ------------------------------------------------ */
.qms-gate__main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; padding-top: 3rem; box-sizing: border-box; }
.qms-gate__form { padding: var(--cds-spacing-09) var(--cds-spacing-07); max-width: 30rem; width: 100%; box-sizing: border-box; justify-self: start; margin-left: max(0px, calc((50vw - 30rem) / 2)); }
.qms-gate__title { margin: 0; font-size: var(--cds-heading-05-font-size, 2rem); font-weight: 400; line-height: 1.25; }
.qms-gate__lede { margin: var(--cds-spacing-03) 0 var(--cds-spacing-07); color: var(--cds-text-secondary); padding-bottom: var(--cds-spacing-06); border-bottom: 1px solid var(--cds-border-subtle-01); }
.qms-gate__actions cds-button { width: 100%; }
.qms-gate__actions cds-button::part(button) { width: 100%; max-width: none; }
.qms-gate__actions { display: flex; align-items: center; flex-wrap: wrap; }
.qms-gate__actions .qms-busy { margin: var(--cds-spacing-03) 0 0; }
.qms-gate__foot { margin-top: var(--cds-spacing-09); padding-top: var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); color: var(--cds-text-secondary); font-size: var(--cds-helper-text-01-font-size, .75rem); }
.qms-gate__art { background: var(--cds-layer-01); border-left: 1px solid var(--cds-border-subtle-01); display: flex; flex-direction: column; justify-content: center; padding: var(--cds-spacing-10); color: var(--cds-text-primary); }
.qms-gate__art-title { font-size: var(--cds-heading-04-font-size, 1.75rem); font-weight: 300; line-height: 1.3; margin: 0 0 var(--cds-spacing-05); max-width: 26rem; }
.qms-gate__art-text { color: var(--cds-text-secondary); max-width: 30rem; margin: 0; }
#code.cds--text-input { font-family: 'IBM Plex Mono', monospace; letter-spacing: .3em; font-size: 1.25rem; }
/* sign-in: the "or" divider before other ways in, a phone number (country code + number), the WhatsApp code boxes */
.qms-gate__or { display: flex; align-items: center; gap: var(--cds-spacing-04); margin: var(--cds-spacing-07) 0 var(--cds-spacing-05); color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); }
.qms-gate__or::before, .qms-gate__or::after { content: ''; flex: 1; border-top: 1px solid var(--cds-border-subtle-01); }
.qms-phone-now { margin: 0 0 var(--cds-spacing-05); }
.qms-phone { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--cds-spacing-05); align-items: start; }
.qms-gate .qms-phone .cds--select-input { block-size: 3rem; }   /* beside the large sign-in input */
@media (max-width: 26rem) { .qms-phone { grid-template-columns: 1fr; } }
.qms-otp { border: 0; margin: 0; padding: 0; min-width: 0; }
.qms-otp__boxes { display: flex; gap: var(--cds-spacing-03); }
.qms-otp .cds--text-input.qms-otp__box { flex: 1 1 0; min-width: 0; max-width: 3.5rem; block-size: 3.5rem; padding: 0; text-align: center; font-size: var(--cds-heading-04-font-size, 1.75rem); font-variant-numeric: tabular-nums; }
.qms-otp__box:disabled { cursor: not-allowed; }
.qms-otp__sent { display: block; margin-top: var(--cds-spacing-02); font-size: var(--cds-helper-text-01-font-size, .75rem); line-height: 1.34; }
.qms-otp__timer { display: flex; align-items: center; gap: var(--cds-spacing-03); margin: 0; color: var(--cds-text-secondary); font-variant-numeric: tabular-nums; }
.qms-otp__timer--low { color: var(--cds-text-error); }
.qms-otp__more { flex-wrap: wrap; }
@media (max-width: 66rem) { .qms-gate__main { grid-template-columns: 1fr; } .qms-gate__art { display: none; } .qms-gate__form { margin: 0 auto; justify-self: center; padding: var(--cds-spacing-07) var(--cds-spacing-05); } }

/* ---- settings ------------------------------------------------------------------------------ */
.qms-tabs { margin-bottom: var(--cds-spacing-05); max-width: 100%; }
.qms-setting { display: grid; grid-template-columns: minmax(0, 28rem) minmax(0, 1fr); gap: var(--cds-spacing-03) var(--cds-spacing-07); align-items: start; padding: var(--cds-spacing-05) 0; border-top: 1px solid var(--cds-border-subtle-01); }
.qms-setting:first-child { border-top: 0; padding-top: 0; }
.qms-setting__meta { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-02); padding-top: var(--cds-spacing-06); }
@media (max-width: 52rem) { .qms-setting { grid-template-columns: 1fr; } .qms-setting__meta { padding-top: 0; } }
.qms-var { cursor: pointer; }
.qms-var:focus { outline: 2px solid var(--cds-focus); }
.qms-preview { white-space: pre-wrap; font-family: 'IBM Plex Sans', sans-serif; background: var(--cds-layer-02); padding: var(--cds-spacing-05); margin: 0 0 var(--cds-spacing-03); border-left: 3px solid var(--cds-border-strong-01); }
.qms-preview__subject { margin: 0 0 var(--cds-spacing-03); font-weight: 600; }
.qms-preview__frame { width: 100%; height: 34rem; border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-02); margin-bottom: var(--cds-spacing-03); }

/* ---- internal audits ------------------------------------------------------------------------ */
.qms-glance { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--cds-border-subtle-01); margin-bottom: var(--cds-spacing-05); border: 1px solid var(--cds-border-subtle-01); }
.qms-glance__item { background: var(--cds-layer-01); padding: var(--cds-spacing-04) var(--cds-spacing-05); display: flex; flex-direction: column; gap: var(--cds-spacing-02); border-top: 3px solid transparent; }
.qms-glance__item.is-major { border-top-color: var(--cds-support-error); }
.qms-glance__item.is-minor { border-top-color: var(--cds-support-warning); }
.qms-glance__item.is-obs { border-top-color: var(--cds-border-strong-01); }
.qms-glance__item.is-ofi { border-top-color: var(--cds-support-info); }
.qms-glance__item.is-ok { border-top-color: var(--cds-support-success); }
.qms-glance__label { color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); }
.qms-glance__value { font-size: var(--cds-heading-04-font-size, 1.75rem); font-weight: 300; line-height: 1.2; }
@media (max-width: 42rem) { .qms-glance { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.qms-section .qms-glance .qms-glance__item { background: var(--cds-layer-02); }
.qms-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--cds-spacing-05); margin-bottom: var(--cds-spacing-05); }
.qms-toolbar cds-content-switcher { max-width: 100%; overflow-x: auto; }
.qms-toolbar__select { width: 15rem; }
.qms-audit-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--cds-spacing-05); }
.qms-audit-card { display: block; height: 100%; }
.qms-audit-card > span { display: flex; }
.qms-audit-card__top { justify-content: space-between; align-items: center; margin-bottom: var(--cds-spacing-04); }
.qms-audit-card__ref { color: var(--cds-link-primary); font-size: .875rem; }
.qms-audit-card__title { font-size: var(--cds-heading-compact-02-font-size, 1rem); font-weight: 600; margin-bottom: var(--cds-spacing-03); color: var(--cds-text-primary); }
.qms-audit-card__text { color: var(--cds-text-secondary); margin-bottom: var(--cds-spacing-03); min-height: 2.5rem; }
.qms-audit-card__meta { align-items: center; gap: var(--cds-spacing-02); color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); margin-bottom: var(--cds-spacing-04); }

/* evidence checklists */
.qms-ck { margin-bottom: var(--cds-spacing-07); }
.qms-ck__head { display: flex; justify-content: space-between; align-items: center; gap: var(--cds-spacing-05); margin-bottom: var(--cds-spacing-03); }
.ev { background: var(--cds-layer-01); border-left: 3px solid var(--cds-border-strong-01); margin-bottom: 1px; }
.ev.o-conforming { border-left-color: var(--cds-support-success); }
.ev.o-nonconforming { border-left-color: var(--cds-support-error); }
.ev.o-observation { border-left-color: var(--cds-border-inverse); }
.ev.o-ofi { border-left-color: var(--cds-support-info); }
.ev-sum { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; gap: var(--cds-spacing-05); align-items: start; padding: var(--cds-spacing-04) var(--cds-spacing-05); cursor: pointer; }
.ev-sum:hover { background: var(--cds-layer-hover-01); }
.ev-sum:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.ev-sum .cl { color: var(--cds-link-primary); padding-top: 2px; }
.ev-sum .q { font-weight: 600; }
.ev-sum .res { color: var(--cds-text-secondary); margin-top: var(--cds-spacing-02); }
.side-r { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: var(--cds-spacing-02); }
.ev-chev { color: var(--cds-icon-secondary); transition: transform var(--cds-duration-fast-02, 110ms); transform: rotate(-90deg); }
.ev-chev.is-open { transform: none; }
.ev-body { padding: var(--cds-spacing-03) var(--cds-spacing-05) var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); }
.files { margin-top: var(--cds-spacing-05); }
.file-chip { display: inline-flex; align-items: center; gap: var(--cds-spacing-02); padding-left: var(--cds-spacing-03); background: var(--cds-layer-02); }
.ev-foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--cds-spacing-03); margin-top: var(--cds-spacing-05); padding-top: var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); }
.raise { display: inline-flex; flex-wrap: wrap; gap: var(--cds-spacing-03); align-items: center; }
.raise .cds--select { width: 12rem; }
@media (max-width: 42rem) { .ev-sum { grid-template-columns: 3.5rem minmax(0, 1fr); } .side-r { grid-column: 1 / -1; justify-content: flex-start; } }

/* findings lists (structured rows) */
.f-list { display: flex; flex-direction: column; border-top: 1px solid var(--cds-border-subtle-01); }
.f-row { display: grid; grid-template-columns: 7.5rem 8rem minmax(0, 1fr) auto; gap: var(--cds-spacing-05); align-items: start; padding: var(--cds-spacing-04) var(--cds-spacing-03);
  border-bottom: 1px solid var(--cds-border-subtle-01); color: var(--cds-text-primary); text-decoration: none; }
.f-row--ev { grid-template-columns: 5rem minmax(0, 1fr) auto; }
.f-row:hover { background: var(--cds-layer-hover-01); }
.f-row:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.f-row .ref { color: var(--cds-link-primary); }
.f-row .d { color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); }
.f-row .meta { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: var(--cds-spacing-02); color: var(--cds-icon-secondary); }
@media (max-width: 52rem) { .f-row { grid-template-columns: 6rem minmax(0, 1fr); } .f-row > span:nth-child(3), .f-row .meta { grid-column: 1 / -1; justify-content: flex-start; } }
.qms-scope { margin-left: var(--cds-spacing-02); color: var(--cds-text-secondary); }

/* selectable tiles (classification, conclusion) */
.choice-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap: var(--cds-spacing-03); }
.choice.cds--tile { text-align: left; font: inherit; color: var(--cds-text-primary); display: flex; flex-direction: column; gap: var(--cds-spacing-02); padding: var(--cds-spacing-05); padding-right: var(--cds-spacing-05);
  border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-02); cursor: pointer; min-height: 0; width: 100%; }
.choice.cds--tile:hover { background: var(--cds-layer-hover-02); }
.choice.cds--tile:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.choice.on { border-color: var(--cds-border-inverse); box-shadow: inset 0 0 0 1px var(--cds-border-inverse); }
.choice-check { color: var(--cds-icon-secondary); }
.choice.on .choice-check { color: var(--cds-icon-primary); }
.choice span:not(.choice-check):not(.sugg) { color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); }
.choice:disabled { cursor: not-allowed; color: var(--cds-text-disabled); }
.def { margin-top: var(--cds-spacing-04); padding: var(--cds-spacing-04) var(--cds-spacing-05); background: var(--cds-layer-02); color: var(--cds-text-secondary); border-left: 3px solid var(--cds-border-strong-01); }
.ncr-band { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--cds-spacing-03); margin: var(--cds-spacing-07) 0 var(--cds-spacing-05); padding-bottom: var(--cds-spacing-03); border-bottom: 1px solid var(--cds-border-strong-01); }
.ncr-band:first-child { margin-top: 0; }
.ncr-band h2 { margin: 0; font-size: var(--cds-heading-compact-02-font-size, 1rem); font-weight: 600; }
.ncr-band .who { color: var(--cds-text-secondary); font-size: var(--cds-label-01-font-size, .75rem); }
fieldset[data-yn] .cds--radio-button-group { flex-wrap: wrap; gap: var(--cds-spacing-02) 0; }

/* issues before issuing */
.issues { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--cds-border-subtle-01); }
.issue { display: grid; grid-template-columns: 1rem 4.5rem 10rem minmax(0, 1fr) 1rem; gap: var(--cds-spacing-04); align-items: start; padding: var(--cds-spacing-04) var(--cds-spacing-03);
  border-bottom: 1px solid var(--cds-border-subtle-01); color: var(--cds-text-primary); text-decoration: none; }
.issue:hover { background: var(--cds-layer-hover-01); }
.issue:focus { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.issue .lv { font-weight: 600; }
.issue.error .lv-ic { color: var(--cds-support-error); }
.issue.warning .lv-ic { color: var(--cds-support-warning); }
.issue .sx { color: var(--cds-text-secondary); }
@media (max-width: 52rem) { .issue { grid-template-columns: 1rem 1fr; } .issue > :nth-child(n+3) { grid-column: 2; } .issue > svg:last-child { display: none; } }
.access-note { margin-bottom: var(--cds-spacing-05); }

/* ---- report preview: the Word template's own look (document colours, not UI tokens) ----------- */
.paper-wrap { background: var(--cds-layer-accent-01); padding: var(--cds-spacing-07); overflow-x: auto; }
.paper { background: #fff; color: #1f2933; width: 794px; max-width: 100%; margin: 0 auto; padding: 46px 52px 60px; box-sizing: border-box; font-family: 'IBM Plex Sans', Calibri, sans-serif; font-size: 11.5px; line-height: 1.45; }
.paper .run-head { text-align: right; font-size: 9.5px; color: #52606d; border-bottom: 1px solid #dde2e7; padding-bottom: 4px; margin-bottom: 18px; }
.paper .eyebrow-p { font-size: 10.5px; color: #52606d; letter-spacing: .02em; }
.paper .title-p { font-size: 32px; font-weight: 600; color: #1f2933; margin: 2px 0; }
.paper .company-p { font-size: 16px; color: #52606d; }
.paper .subtitle-p { font-size: 12px; color: #52606d; margin: 2px 0 18px; }
.paper .draft-p { color: #b3261e; font-weight: 600; font-size: 11px; margin-bottom: 10px; }
.paper h1 { font-size: 17px; font-weight: 600; margin: 20px 0 6px; color: #1f2933; }
.paper h2 { font-size: 14px; font-weight: 600; margin: 14px 0 5px; color: #1f2933; }
.paper h5 { font-size: 12.5px; font-weight: 600; margin: 10px 0 4px; }
.paper p { margin: 0 0 5px; }
.paper p.note { font-size: 10.5px; color: #52606d; font-style: italic; }
.paper ul { margin: 0 0 6px 18px; padding: 0; }
.paper table { width: 100%; border-collapse: collapse; margin: 4px 0 10px; font-size: 10.5px; table-layout: fixed; border: 1px solid #bcc5ce; }
.paper th { background: #2f3e4c; color: #fff; text-align: left; font-weight: 600; padding: 4px 6px; font-size: 10px; vertical-align: top; }
.paper td { border: 1px solid #dde2e7; padding: 4px 6px; vertical-align: top; white-space: pre-line; overflow-wrap: anywhere; }
.paper td.lab { background: #f0f3f5; font-weight: 600; }
.paper td.c { text-align: center; }
.paper tr.tot td { background: #f0f3f5; font-weight: 600; }
.paper td.band { background: #2f3e4c; color: #fff; font-weight: 600; font-size: 10.5px; }
.paper td.band2 { background: #56677a; color: #fff; font-weight: 600; font-size: 10px; }
.paper td.chk { background: #e3ecf3; }
.paper td .hint { display: block; font-style: italic; color: #52606d; font-size: 10px; }
.paper .pb { border-top: 2px dashed #dde2e7; margin: 26px -52px; position: relative; }
.paper .pb::after { content: 'page break'; position: absolute; right: 52px; top: -8px; background: #fff; color: #6f7c88; font-size: 9px; padding: 0 6px; font-family: 'IBM Plex Mono', monospace; }
.paper .ncr { margin-bottom: 16px; page-break-inside: avoid; }

@media print {
  cds-header, cds-side-nav, .qms-bar, .qms-page-head__actions, .no-print, .qms-toasts, .access-note { display: none !important; }
  .qms-app .qms-main { margin: 0; padding: 0; }
  .qms-view { padding: 0; max-width: none; }
  .qms-page-head { display: none; }
  .paper-wrap { background: none; padding: 0; }
  .paper { width: auto; padding: 0; }
  .paper .pb { border: none; page-break-after: always; margin: 0; }
  .paper .pb::after { display: none; }
  /* printing one section of a report: only the cloned section is on the paper */
  body.printing-section .qms-view, body.printing-section .qms-glance, body.printing-section .qms-toolbar { display: none !important; }
  body.printing-section #print-area { display: block !important; }
}
#print-area { display: none; }
#print-area .qms-section { page-break-inside: avoid; }
@media (prefers-reduced-motion: reduce) { .ev-chev { transition: none; } }

/* clickable tiles fill their grid cell (the tile is the shadow part "link") */
.qms-kpi, .qms-audit-card { height: 100%; }
.qms-kpi::part(link), .qms-audit-card::part(link) { height: 100%; box-sizing: border-box; }
/* IDs never break inside table cells */
.cds--data-table a.qms-mono, cds-table-cell a.qms-mono, .qms-list__ref { white-space: nowrap; }
cds-table-cell.qms-col-wide, cds-table-header-cell.qms-col-wide { min-width: 18rem; }

/* small screens: the breadcrumb keeps its last two steps; the glance has no empty cell */
@media (max-width: 42rem) {
  #crumbs cds-breadcrumb-item:not(:nth-last-child(-n+2)) { display: none; }
  .qms-glance__item:last-child:nth-child(3n+2) { grid-column: span 2; }
  .qms-glance__item:last-child:nth-child(3n+1) { grid-column: span 3; }
}

/* Carbon layering: content sits on layer 01 (sections, tiles), so controls inside take the layer-02 tokens —
   the declarations of Carbon's own .cds--layer-two, copied here so every section gets them without extra markup */
.qms-section, .qms-tile, .qms-glance {--cds-layer:var(--cds-layer-02, #ffffff);--cds-layer-active:var(--cds-layer-active-02, #c6c6c6);--cds-layer-background:var(--cds-layer-background-02, #f4f4f4);--cds-layer-hover:var(--cds-layer-hover-02, #e8e8e8);--cds-layer-selected:var(--cds-layer-selected-02, #e0e0e0);--cds-layer-selected-hover:var(--cds-layer-selected-hover-02, #d1d1d1);--cds-layer-accent:var(--cds-layer-accent-02, #e0e0e0);--cds-layer-accent-hover:var(--cds-layer-accent-hover-02, #d1d1d1);--cds-layer-accent-active:var(--cds-layer-accent-active-02, #a8a8a8);--cds-field:var(--cds-field-02, #ffffff);--cds-field-hover:var(--cds-field-hover-02, #e8e8e8);--cds-border-subtle:var(--cds-border-subtle-01, #c6c6c6);--cds-border-subtle-selected:var(--cds-border-subtle-selected-02, #c6c6c6);--cds-border-strong:var(--cds-border-strong-02, #8d8d8d);--cds-border-tile:var(--cds-border-tile-02, #a8a8a8)}
.qms-section > .qms-section__title { margin-bottom: var(--cds-spacing-05); }

/* validation: the message is always shown under an invalid field (it is linked by aria-describedby) */
.cds--form-item > .cds--form-requirement { display: block; max-block-size: none; overflow: visible; margin-top: var(--cds-spacing-02);
  color: var(--cds-text-error); font-size: var(--cds-helper-text-01-font-size, .75rem); line-height: var(--cds-helper-text-01-line-height, 1.33); }
.cds--text-input__field-wrapper:has(.cds--text-input--password__visibility__toggle) .qms-invalid-icon { right: 3rem; }
.cds--text-input--invalid:has(+ .cds--text-input--password__visibility__toggle),
.cds--text-input__field-wrapper:has(.cds--text-input--password__visibility__toggle) .cds--text-input--invalid { padding-right: 5rem; }

/* ---- add-ons (addons/*): ISO 9001 clauses, Audit Room, Documents, Assistant — Carbon tokens only ---------- */
.qms-lib__search { flex: 1 1 18rem; max-width: 32rem; }
.qms-lib__chapter .qms-section__title { display: flex; gap: var(--cds-spacing-03); align-items: baseline; }
.qms-lib__row { align-items: flex-start; text-decoration: none; color: var(--cds-text-primary); }
.qms-lib__row--l3 { padding-left: var(--cds-spacing-07); }
.qms-lib__row--l4 { padding-left: var(--cds-spacing-09); }
.qms-lib__bullets, .qms-assist__list { margin: 0; padding-left: var(--cds-spacing-06); }
.qms-lib__bullets li, .qms-assist__list li { margin-bottom: var(--cds-spacing-03); line-height: 1.5; }
.qms-lib__bullets, ul.qms-assist__list { list-style: square; }
ol.qms-assist__list { list-style: decimal; }
ol.qms-assist__list li::marker { font-family: var(--cds-code-01-font-family, 'IBM Plex Mono', monospace); }
.qms-assist__list + .qms-assist__part, .qms-assist__list + .cds--form-item { margin-top: var(--cds-spacing-06); }
.qms-lib__check { margin-top: var(--cds-spacing-05); padding: var(--cds-spacing-04) var(--cds-spacing-05); border-left: 3px solid var(--cds-border-interactive); background: var(--cds-layer-01); }
.qms-lib__check h3 { margin: 0 0 var(--cds-spacing-02); }
.qms-lib__room { justify-content: space-between; }
.qms-lib__standard { margin-top: var(--cds-spacing-06); padding: 0; }
.qms-lib__text { white-space: pre-wrap; line-height: 1.6; max-width: 48rem; margin-bottom: var(--cds-spacing-04); }
.qms-lib__pager { display: flex; justify-content: space-between; gap: var(--cds-spacing-05); margin-top: var(--cds-spacing-06); flex-wrap: wrap; }

.qms-ar-ladder { margin: 0 0 var(--cds-spacing-06); padding-left: var(--cds-spacing-06); }
.qms-ar-ladder li { margin-bottom: var(--cds-spacing-04); }
.qms-ar-badges { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cds-spacing-04); }
.qms-ar-badges li { display: flex; gap: var(--cds-spacing-04); align-items: flex-start; }
.qms-ar-badges li > svg { flex: none; margin-top: 2px; color: var(--cds-icon-secondary); }
.qms-ar-status { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03) var(--cds-spacing-06); margin-bottom: var(--cds-spacing-05); color: var(--cds-text-secondary); }
.qms-ar-status__n { font-family: 'IBM Plex Mono', monospace; font-size: .875rem; color: var(--cds-text-primary); }
.qms-ar-timer { max-width: 40rem; margin-bottom: var(--cds-spacing-05); }
.qms-ar-card, .qms-ar-reveal { max-width: 52rem; background: var(--cds-layer-01); padding: var(--cds-spacing-06); }
.qms-ar-card__top { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-04); margin-bottom: var(--cds-spacing-05); }
.qms-ar-card__xp { margin-left: auto; font-family: 'IBM Plex Mono', monospace; font-size: .75rem; }
.qms-ar-card__scenario { margin: 0 0 var(--cds-spacing-05); max-width: 44rem; }
.qms-ar-card__q { margin-bottom: var(--cds-spacing-05); }
.qms-ar-options { display: grid; gap: var(--cds-spacing-03); border: 0; padding: 0; margin: 0; }
.qms-ar-option { position: relative; }
.qms-ar-option__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.qms-ar-option__label { display: flex; gap: var(--cds-spacing-04); align-items: flex-start; min-height: 3rem; padding: var(--cds-spacing-04) var(--cds-spacing-05);
  background: var(--cds-layer-02); border: 1px solid var(--cds-border-subtle-01); cursor: pointer; line-height: 1.4;
  transition: background-color var(--cds-duration-fast-02) var(--cds-easing-productive-standard), border-color var(--cds-duration-fast-02) var(--cds-easing-productive-standard); }
.qms-ar-option__label:hover { background: var(--cds-layer-hover-02); }
.qms-ar-option__input:focus-visible + .qms-ar-option__label { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.qms-ar-option.is-on .qms-ar-option__label, .qms-ar-option__input:checked + .qms-ar-option__label { border-color: var(--cds-layer-selected-inverse); box-shadow: inset 0 0 0 1px var(--cds-layer-selected-inverse); background: var(--cds-layer-selected-01); }
.qms-ar-options:disabled .qms-ar-option__label { cursor: default; color: var(--cds-text-secondary); }
.qms-ar-options:disabled .qms-ar-option__input:checked + .qms-ar-option__label { color: var(--cds-text-primary); }
.qms-ar-option__letter { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border: 1px solid var(--cds-border-strong-01); font-size: .75rem; }
.qms-ar-option__input:checked + .qms-ar-option__label .qms-ar-option__letter { background: var(--cds-layer-selected-inverse); color: var(--cds-text-inverse); border-color: var(--cds-layer-selected-inverse); }
.qms-ar-keys { margin: var(--cds-spacing-04) 0 0; }
.qms-ar-actions { max-width: 52rem; }
.qms-ar-answers { list-style: none; margin: 0 0 var(--cds-spacing-06); padding: 0; display: grid; gap: var(--cds-spacing-03); }
.qms-ar-answer { display: flex; gap: var(--cds-spacing-04); align-items: flex-start; padding: var(--cds-spacing-04) var(--cds-spacing-05); background: var(--cds-layer-02); border-left: 3px solid var(--cds-border-subtle-01); }
.qms-ar-answer.is-correct { border-left-color: var(--cds-support-success); }
.qms-ar-answer__body { display: flex; flex-direction: column; gap: var(--cds-spacing-02); min-width: 0; }
.qms-ar-answer__tags { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-02); }
.qms-ar-why { border-top: 1px solid var(--cds-border-subtle-01); padding-top: var(--cds-spacing-05); }
.qms-ar-why p { max-width: 44rem; }
.qms-ar-clause { display: inline-flex; gap: var(--cds-spacing-02); align-items: baseline; }
.qms-ar-code { margin: var(--cds-spacing-06) 0; padding: var(--cds-spacing-06); background: var(--cds-layer-01); max-width: 40rem; }
.qms-ar-code__value { margin: var(--cds-spacing-04) 0 0; font-size: var(--cds-heading-07-font-size, 3.375rem); line-height: 1.2; letter-spacing: .2em; font-weight: 400; }
.qms-ar-players { list-style: none; margin: var(--cds-spacing-04) 0 0; padding: 0; }

.qms-doc { display: grid; grid-template-columns: minmax(0, 11fr) minmax(16rem, 5fr); gap: var(--cds-spacing-06); align-items: start; }
.qms-doc__pad { display: block; width: 100%; height: min(75vh, 52rem); border: 1px solid var(--cds-border-subtle-01); background: var(--cds-layer-01); }
.qms-doc__text { min-height: 28rem; font-family: 'IBM Plex Mono', monospace; font-size: .875rem; line-height: 1.6; }
.qms-doc__side { display: grid; gap: var(--cds-spacing-05); }
.qms-doc__dl { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--cds-spacing-03) var(--cds-spacing-05); margin: 0; }
.qms-doc__dl dt { color: var(--cds-text-secondary); font-size: .875rem; }
.qms-doc__dl dd { margin: 0; min-width: 0; }
.qms-doc__clauses { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cds-spacing-02); }
.qms-doc__versions { list-style: none; }
.qms-doc__vactions { flex-wrap: nowrap; align-items: center; }
.qms-doc__version-text { white-space: pre-wrap; font-family: 'IBM Plex Mono', monospace; font-size: .875rem; line-height: 1.6; max-height: 55vh; overflow: auto; padding: var(--cds-spacing-05); background: var(--cds-layer-01); }
.qms-doc__clause-filter { width: 9rem; }
a.qms-doc-clause { text-decoration: none; }
@media (max-width: 66rem) { .qms-doc { grid-template-columns: minmax(0, 1fr); } .qms-doc__pad { height: 70vh; } }

.qms-assist-bar { display: flex; justify-content: flex-end; margin: calc(-1 * var(--cds-spacing-03)) 0 var(--cds-spacing-03); }
.qms-assist__head { display: flex; align-items: center; gap: var(--cds-spacing-04); margin-bottom: var(--cds-spacing-05); padding-bottom: var(--cds-spacing-04); border-bottom: 1px solid var(--cds-border-subtle-01); }
.qms-assist__explained { margin: 0 0 var(--cds-spacing-03); font-size: .75rem; color: var(--cds-text-secondary); }
.qms-assist__label [slot="body-text"] p { margin-bottom: var(--cds-spacing-03); }
.qms-assist__part { margin-bottom: var(--cds-spacing-05); }
.qms-assist__part .cds--checkbox-wrapper { margin-bottom: var(--cds-spacing-03); }
.qms-assist__h { margin: var(--cds-spacing-05) 0 var(--cds-spacing-03); }

.qms-addons { list-style: none; margin: 0; padding: 0; }
.qms-addon { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--cds-spacing-05); padding: var(--cds-spacing-05) 0; border-top: 1px solid var(--cds-border-subtle-01); }
.qms-addon__icon { color: var(--cds-icon-secondary); }
.qms-addon__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-04); margin-bottom: var(--cds-spacing-03); }
.qms-addon__head h3 { margin: 0; }
.qms-addon__body p { margin: 0 0 var(--cds-spacing-03); max-width: 48rem; }
.qms-addon__enable { display: grid; gap: var(--cds-spacing-02); margin-top: var(--cds-spacing-03); }
.qms-addon__enable code { justify-self: start; }
@media (max-width: 42rem) { .qms-addon { grid-template-columns: minmax(0, 1fr); } .qms-addon__icon { display: none; } .qms-ar-card, .qms-ar-reveal { padding: var(--cds-spacing-05); } .qms-ar-code__value { font-size: 2.25rem; } }
/* headings that receive focus from script (route changes) are not controls: no focus box */
h1[tabindex="-1"]:focus { outline: none; }
cds-table-header-cell.qms-num { font-family: inherit; }
/* Carbon's form item is a flex column aligned to the start: raw text areas would shrink to their cols */
.cds--form-item > .cds--text-area__wrapper, .cds--text-area__wrapper > .cds--text-area { width: 100%; }
.qms-doc__editor .cds--form-item { width: 100%; }

/* Dashboard lists: tags on the reference line, so the text gets the full width of a narrow tile */
.qms-list__main--full { flex: 1 1 auto; }
.qms-list__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-02) var(--cds-spacing-03); }
.qms-clamp-2 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }

/* Findings: the five "add" buttons as one group; on a phone two even columns, one kind of finding per row */
.qms-addset { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); }
@media (max-width: 41.98rem) {
  .qms-addset { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .qms-addset cds-button { width: 100%; max-width: none; }
  .qms-addset cds-button::part(button) { width: 100%; max-width: none; }
  .qms-addset [data-kind="ofi"] { grid-column: 1 / -1; }
}
.qms-clamp-3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
/* one of two renderings of the same data: the table from 672 px (Carbon md), the stacked list below it */
.qms-narrow-only { display: none; }
@media (max-width: 41.98rem) {
  .qms-wide-only { display: none; }
  .qms-narrow-only { display: block; }
}
.qms-ar-code__link { margin-top: var(--cds-spacing-05); color: var(--cds-text-secondary); }
.qms-ar-code__link .qms-mono { color: var(--cds-text-primary); word-break: break-all; }

/* Brand: the ISO logo in the header, in place of a wordmark (the name stays for screen readers) */
.qms-brand img { display: block; height: 2rem; width: auto; max-width: 2.25rem; }
cds-header-name.qms-brand::part(link), cds-header-name.qms-brand { padding-inline: 1rem; }
/* The Audit Room game's mark beside its titles */
.qms-ar-title { display: flex; align-items: center; gap: .75rem; }
.qms-ar-mark { flex: none; color: var(--cds-icon-primary); }

/* Settings → WhatsApp: the QR code that links a phone */
.qms-qr { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.qms-qr img { background: #fff; padding: .5rem; image-rendering: pixelated; }
.qms-qr p { max-width: 28rem; }

/* ---- audit workspaces and datarooms (web/workspaces, web/dataroom) ---------------------------------------- */
.qms-tabpanel { margin-top: var(--cds-spacing-05); }
.qms-dr-intro { margin: 0; flex: 1 1 32rem; }
.qms-dr-folder .qms-section__head { margin-bottom: var(--cds-spacing-03); }
.qms-dr-instructions { margin: 0 0 var(--cds-spacing-05); max-width: 60rem; color: var(--cds-text-secondary); white-space: pre-line; }
.qms-dr-limits { margin-top: var(--cds-spacing-05); }
.qms-row-tools { display: flex; justify-content: flex-end; gap: var(--cds-spacing-02); }
.qms-copy { display: flex; align-items: flex-end; gap: var(--cds-spacing-03); margin-top: var(--cds-spacing-05); margin-bottom: var(--cds-spacing-05); }
.qms-copy .qms-field { flex: 1; }
.qms-copy .cds--text-input { font-family: var(--cds-code-01-font-family, 'IBM Plex Mono', monospace); font-size: .8125rem; }
/* the public upload page: no side navigation, a reading width */
.qms-dr--inside .qms-dr__main { padding-top: 3rem; min-height: 100vh; box-sizing: border-box; outline: none; }
.qms-dr--inside .qms-view { max-width: 72rem; margin: 0 auto; }
.qms-dr-who { margin: 0; }
.qms-dr .cds--file { max-width: 40rem; margin-bottom: var(--cds-spacing-03); }
.qms-dr .cds--file-browse-btn { display: block; max-width: none; width: 100%; }
.qms-dr .cds--file__drop-container { display: flex; align-items: center; gap: var(--cds-spacing-03); block-size: auto; min-block-size: 6rem;
  max-width: none; padding: var(--cds-spacing-05); color: var(--cds-text-secondary); cursor: pointer;
  justify-content: flex-start; text-align: start; }
#dr-form { display: flex; flex-direction: column; gap: var(--cds-spacing-06); }
#dr-form > p, #dr-form .qms-gate__actions { margin: 0; }
.qms-dr .cds--file-browse-btn:focus-visible .cds--file__drop-container { outline: 2px solid var(--cds-focus); outline-offset: -2px; }
.qms-dr .cds--file-container { max-width: 40rem; }
.qms-dr .cds--file__selected-file { max-inline-size: none; grid-template-columns: minmax(0, 1fr) auto auto; }
.qms-dr .cds--file__selected-file--invalid { grid-template-columns: minmax(0, 1fr) auto; }
.qms-dr .cds--file__selected-file .qms-dr-meta { font-size: var(--cds-label-01-font-size, .75rem); padding-inline-end: var(--cds-spacing-03); }
.qms-dr .cds--file__selected-file .cds--form-requirement { grid-column: 1 / -1; }
.qms-dr .cds--file-container > .qms-dim { margin: var(--cds-spacing-03) 0 0; }

/* ---- meetings (web/meetings) ------------------------------------------------------------------------------ */
.qms-h2 { margin: var(--cds-spacing-07) 0 var(--cds-spacing-04); font-size: var(--cds-heading-03-font-size, 1.25rem); font-weight: var(--cds-heading-03-font-weight, 400); line-height: var(--cds-heading-03-line-height, 1.4); }
.qms-tags { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-02); margin-top: var(--cds-spacing-03); }
.qms-rec { background: var(--cds-layer-01); padding: var(--cds-spacing-06); margin-bottom: var(--cds-spacing-05); display: grid; gap: var(--cds-spacing-04); max-width: 40rem; border-inline-start: 3px solid var(--cds-border-subtle-01); }
.qms-rec.is-live { border-inline-start-color: var(--cds-support-error); }
.qms-rec__status { display: flex; align-items: center; gap: var(--cds-spacing-03); font-size: var(--cds-heading-compact-01-font-size, .875rem); font-weight: 600; }
.qms-rec__dot { inline-size: .75rem; block-size: .75rem; border-radius: 50%; background: var(--cds-icon-disabled); }
.qms-rec.is-live .qms-rec__dot { background: var(--cds-support-error); animation: qms-pulse 1.6s ease-in-out infinite; }
@keyframes qms-pulse { 50% { opacity: .35; } }
.qms-rec__time { font-family: var(--cds-code-02-font-family, 'IBM Plex Mono', monospace); font-size: var(--cds-heading-06-font-size, 2.625rem); font-weight: 300; line-height: 1.2; font-variant-numeric: tabular-nums; }
.qms-rec__meter { block-size: .5rem; background: var(--cds-layer-accent-01); overflow: hidden; }
.qms-rec__meter span { display: block; block-size: 100%; inline-size: 0; background: var(--cds-support-success); transition: inline-size 80ms linear; }
.qms-rec__error { color: var(--cds-text-error); margin: 0; }
.qms-rec .qms-actions { margin: 0; }
.qms-rec .qms-dim { margin: 0; }
.qms-field-wide { max-width: 60rem; }
.qms-consent { max-width: 60rem; margin-bottom: var(--cds-spacing-06); }
.qms-consent .qms-h2 { margin-top: 0; }
.qms-quote { margin: 0 0 var(--cds-spacing-04); padding: var(--cds-spacing-05); background: var(--cds-layer-01); border-inline-start: 3px solid var(--cds-border-interactive);
  font-size: var(--cds-body-02-font-size, 1rem); line-height: var(--cds-body-02-line-height, 1.5); }
.qms-struck { text-decoration: line-through; color: var(--cds-text-secondary); }
.qms-transcript-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-03); margin-bottom: var(--cds-spacing-04); }
.qms-transcript-bar p, .qms-transcript-bar .qms-actions { margin: 0; }
/* columns as wide as their content, so the text column keeps the room on a phone */
cds-table-header-cell.qms-col-fit, cds-table-cell.qms-col-fit { width: 1%; white-space: nowrap; }
cds-table-header-cell.qms-col-speaker, cds-table-cell.qms-col-speaker { width: 12rem; }
@media (max-width: 42rem) { cds-table-header-cell.qms-col-speaker, cds-table-cell.qms-col-speaker { width: 8.5rem; padding-inline: var(--cds-spacing-03); } }
/* the Record tab's attendance list */
.qms-who { margin-bottom: var(--cds-spacing-06); }
.qms-who__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--cds-spacing-03); }
.qms-who__head .qms-h2 { margin: 0; }
.qms-who .qms-tags { margin-top: var(--cds-spacing-03); }
.qms-who .qms-dim { margin-top: var(--cds-spacing-03); }
@media (max-width: 42rem) { cds-table-header-cell.qms-col-fit, cds-table-cell.qms-col-fit { padding-inline: var(--cds-spacing-03); } }
.qms-player { position: sticky; top: 3rem; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: var(--cds-spacing-04); padding: var(--cds-spacing-03) var(--cds-spacing-05);
  background: var(--cds-layer-02); margin-bottom: var(--cds-spacing-04); border-block-end: 1px solid var(--cds-border-subtle-01); }
.qms-player audio { inline-size: min(28rem, 100%); }
.qms-minutes { display: grid; gap: var(--cds-spacing-06); max-width: 60rem; margin-top: var(--cds-spacing-05); }
.qms-minutes .qms-actions { margin: 0; }
.qms-approve { margin-top: var(--cds-spacing-05); }
[data-form="send"] .cds--checkbox-wrapper { margin: 0; }
@media (prefers-reduced-motion: reduce) { .qms-rec.is-live .qms-rec__dot { animation: none; } .qms-rec__meter span { transition: none; } }
/* @-mentions: a small directory list under the field being typed in */
.qms-mention { position: fixed; z-index: 9500; max-height: 14rem; overflow: auto; background: var(--cds-layer-02);
  border: 1px solid var(--cds-border-subtle-01); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25); padding: var(--cds-spacing-02) 0; }
.qms-mention__item { display: flex; flex-direction: column; gap: 2px; padding: var(--cds-spacing-03) var(--cds-spacing-05); cursor: pointer; }
.qms-mention__item.is-on, .qms-mention__item:hover { background: var(--cds-background-selected, rgba(10, 10, 10, 0.12)); }
.qms-gap-bot { margin-block-end: var(--cds-spacing-04); }
/* the AI assistant chat page */
.qms-chat { display: flex; flex-direction: column; gap: var(--cds-spacing-05); max-width: 52rem; }
.qms-chat__log { display: flex; flex-direction: column; gap: var(--cds-spacing-05); }
.qms-chat__turn { padding: var(--cds-spacing-05); background: var(--cds-layer-01); border-inline-start: 3px solid var(--cds-border-subtle-01); }
.qms-chat__turn.is-me { border-inline-start-color: var(--cds-border-interactive); background: var(--cds-layer-02); }
.qms-chat__who { display: block; margin-block-end: var(--cds-spacing-02); }
.qms-chat__text { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.qms-chat__ask { display: flex; gap: var(--cds-spacing-03); align-items: end; }
.qms-chat__ask .qms-field { flex: 1; margin: 0; }
.qms-chat__ideas { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); }
/* the public game join page (no sign-in) */
.qms-ar-join .qms-gate__form { max-width: 34rem; }
.qms-ar-join__code { font-size: 2rem; letter-spacing: 0.35rem; margin: var(--cds-spacing-04) 0; }
.qms-ar-join__players { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-03); margin-block-start: var(--cds-spacing-04); }
.qms-invite-list { max-height: 16rem; overflow: auto; display: grid; gap: var(--cds-spacing-02); margin-block-end: var(--cds-spacing-04); }
/* the general AI assistant: a floating button on every page, opening a conversation */
.qms-ask { position: fixed; right: var(--cds-spacing-05); bottom: var(--cds-spacing-05); z-index: 8500; }
.qms-ask__log { max-height: 22rem; overflow: auto; display: grid; gap: var(--cds-spacing-04); margin: var(--cds-spacing-04) 0; }
.qms-ask__msg p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.qms-ask__msg--you { justify-self: end; max-width: 85%; background: var(--cds-layer-02); padding: var(--cds-spacing-03) var(--cds-spacing-04); border-radius: 8px; }
.qms-ask__msg--ai { justify-self: stretch; }
.qms-ask__tag { display: inline-flex; align-items: center; gap: var(--cds-spacing-02); color: var(--cds-text-secondary); font-size: .75rem; margin-block-end: var(--cds-spacing-02); }
.qms-ask__ai > div { white-space: pre-wrap; overflow-wrap: anywhere; }
/* the audit year planner */
.qms-cal { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: var(--cds-spacing-05); }
.qms-cal__month { border: 1px solid var(--cds-border-subtle-01); border-radius: 8px; padding: var(--cds-spacing-04); display: grid; gap: var(--cds-spacing-03); align-content: start; }
.qms-cal__month.is-empty { opacity: .75; }
.qms-cal__head { display: flex; justify-content: space-between; align-items: center; gap: var(--cds-spacing-03); }
.qms-cal__head h3 { margin: 0; font-size: 1rem; font-weight: 600; }
.qms-cal__audit { display: grid; gap: 2px; padding: var(--cds-spacing-03); border-radius: 6px; background: var(--cds-layer-02); color: inherit; text-decoration: none; }
.qms-cal__audit:hover { background: var(--cds-layer-hover-02); }
.qms-cal__undated { margin-block-start: var(--cds-spacing-05); }
/* game QR codes and the public "play on my own" block */
.qms-ar-qr { margin: var(--cds-spacing-04) 0 0; text-align: center; }
.qms-ar-qr svg { width: 11rem; height: 11rem; background: #ffffff; padding: 8px; border-radius: 8px; }
.qms-ar-qr figcaption { margin-block-end: var(--cds-spacing-02); }
.qms-ar-join__qr { display: flex; flex-wrap: wrap; gap: var(--cds-spacing-07); justify-content: center; margin-block-start: var(--cds-spacing-06); }
.qms-ar-solo { margin-block-start: var(--cds-spacing-07); padding-block-start: var(--cds-spacing-05); border-top: 1px solid var(--cds-border-subtle-01); }
.qms-ar-picks { margin-block-start: var(--cds-spacing-05); }
.qms-ar-pick { display: flex; align-items: baseline; gap: var(--cds-spacing-04); padding: var(--cds-spacing-03) 0; border-block-end: 1px solid var(--cds-border-subtle-01); }
.qms-ar-pick__name { min-width: 10rem; font-weight: 600; }

/* API console (BRD 9.7): endpoints left, try-it right */
.qms-apiconsole { display: grid; grid-template-columns: minmax(240px, 320px) 1fr; gap: 1px; background: var(--cds-border-subtle-01, #e0e0e0); border: 1px solid var(--cds-border-subtle-01, #e0e0e0); margin-bottom: var(--qms-gap); }
.qms-apiconsole__list { background: var(--cds-layer-01, #fff); padding: 12px; max-height: 72vh; overflow: auto; }
.qms-apiconsole__detail { background: var(--cds-layer-01, #fff); padding: 16px; min-height: 40vh; }
.qms-apiconsole__group { margin: 14px 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--cds-text-secondary, #525252); }
.qms-apiconsole__op { display: flex; gap: 8px; align-items: center; width: 100%; padding: 5px 6px; border: 0; background: transparent; cursor: pointer; text-align: left; color: inherit; font: inherit; }
.qms-apiconsole__op:hover, .qms-apiconsole__op.is-current { background: var(--cds-layer-selected-01, #e5f6ff); }
.qms-apiconsole__path { font-family: var(--qms-mono); font-size: 12px; word-break: break-all; }
.qms-apiconsole__path--big { font-size: 15px; }
.qms-apiconsole__head { display: flex; gap: 10px; align-items: center; margin-bottom: 6px; }
.qms-apiconsole__title { margin: 0 0 4px; }
.qms-apiconsole__out { margin-top: 18px; border-top: 1px solid var(--cds-border-subtle-01, #e0e0e0); padding-top: 12px; }
.qms-apiconsole__status { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.qms-apiconsole__body { max-height: 40vh; overflow: auto; background: var(--cds-layer-02, #f4f4f4); padding: 12px; font-family: var(--qms-mono); font-size: 12px; white-space: pre-wrap; word-break: break-word; margin: 0; }
@media (max-width: 900px) { .qms-apiconsole { grid-template-columns: 1fr; } .qms-apiconsole__list { max-height: 32vh; } }
