:root {
  --ink: #162322;
  --muted: #687574;
  --line: #dce4e1;
  --soft-line: #e9eeec;
  --canvas: #f2f5f3;
  --surface: #ffffff;
  --deep: #102a2a;
  --deep-2: #183939;
  --teal: #217d73;
  --teal-soft: #e7f3f0;
  --gold: #d7973f;
  --gold-soft: #fdf3e3;
  --red: #b24f49;
  --red-soft: #fbecea;
  --blue: #4c718d;
  --blue-soft: #eaf1f6;
  --shadow: 0 8px 30px rgba(25, 47, 45, .07);
  /* Arabic needs more generous type than the compact English dashboard scale. */
  --erp-ar-caption: 12px;
  --erp-ar-meta: 12px;
  --erp-ar-body: 13.5px;
  --erp-ar-table: 13px;
  --erp-ar-control: 14px;
  --erp-ar-title: 14px;
  --erp-ar-leading: 1.65;
}
* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; color: var(--ink); background: var(--canvas); font-family: "DM Sans", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
.workflow-steps { display: grid; gap: 8px; margin-top: 22px; text-align: left; }
.workflow-step { display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 9px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; color: #65716f; font-size: 12px; background: #fbfcfb; }
.workflow-step span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: #e7eeeb; color: #64736f; font-size: 11px; font-weight: 700; }
.workflow-step.complete { border-color: #b8d9cf; background: #f2faf7; color: #1f6255; }
.workflow-step.complete span { background: #197761; color: white; }
.workflow-step small { grid-column: 2; color: #2b8a73; font-size: 10px; }
.generic-records { display: grid; gap: 8px; padding: 14px; }
/* A register is one column that is allowed to shrink. Without this the grid track is sized to the
   min-content width of what it holds — a table with a 780px minimum — so the card grew wider than
   its panel and the panel, which clips at its edge, cut the right of it off. Seen on the
   Confidentiality and Outsourcing screens at a narrow window. */
#generic-records { grid-template-columns: minmax(0, 1fr); }
#generic-records > * { min-width: 0; }
.visually-hidden { 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; }
/* Accreditation assessment: a position, a traceability model, and chapter-level requirement workspaces.
   The panel deliberately separates evidence mapping from the assessor's recorded judgement. */
.assessment-hero { display: grid; grid-template-columns: minmax(0,1fr) 118px; gap: 24px; align-items: center; padding: 25px 27px; border-radius: 15px; color: #fff; background: radial-gradient(circle at 86% 10%, rgba(215,151,63,.2), transparent 26%), linear-gradient(120deg, #123331, #173f3b); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 12px 30px rgba(11,36,34,.12); }
.assessment-kicker { display: block; color: var(--teal); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; margin-bottom: 7px; }
.assessment-hero .assessment-kicker { color: #e8b76d; }
.assessment-hero h2 { font: 700 23px/1.2 Manrope, sans-serif; letter-spacing: -.03em; margin: 0; }
.assessment-hero p { margin: 8px 0 0; max-width: 780px; color: #bed0cc; font-size: 12px; line-height: 1.58; }
.assessment-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 14px; color: #91aaa5; font-size: 9.5px; }
.assessment-meta span { position: relative; }
.assessment-meta span + span::before { content: "·"; position: absolute; left: -9px; color: #607d77; }
.assessment-progress-ring { --assessment-progress: 0deg; width: 104px; height: 104px; border-radius: 50%; padding: 8px; background: conic-gradient(#e1ae61 var(--assessment-progress), rgba(255,255,255,.12) 0); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.assessment-progress-ring > div { width: 100%; height: 100%; border-radius: 50%; background: #12302f; display: grid; place-content: center; text-align: center; }
.assessment-progress-ring strong { font: 700 23px Manrope, sans-serif; color: #fff; }
.assessment-progress-ring span { color: #93aca7; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.assessment-scope-card { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); gap: 20px; align-items: center; padding: 18px 20px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.assessment-scope-card > div:first-child > strong { display: block; color: var(--ink); font-size: 13px; }
.assessment-scope-card p { margin: 5px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.55; }
.assessment-scope-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.assessment-scope-pills span { padding: 4px 8px; border-radius: 999px; background: #eef5f2; color: #246b61; font-size: 9px; font-weight: 700; }
.assessment-scope-pills span.supplement { background: #fbf2e4; color: #8e5d1e; }
.assessment-source-coverage { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 9px; }
.assessment-source-coverage span { padding: 5px 8px; border: 1px solid #dce5e2; border-radius: 7px; background: #fff; color: #667470; font-size: 8.5px; }
.assessment-source-coverage b { color: var(--teal); margin-right: 5px; }
.assessment-chain { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr; align-items: center; gap: 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #f9fbfa; }
.assessment-chain > div { display: grid; grid-template-columns: 24px 1fr; gap: 1px 8px; min-width: 0; }
.assessment-chain b { grid-row: span 2; width: 24px; height: 24px; border-radius: 7px; display: grid; place-items: center; background: #e6f2ef; color: var(--teal); font-size: 10px; }
.assessment-chain strong { color: var(--ink); font-size: 10.5px; }
.assessment-chain span { color: var(--muted); font-size: 9px; line-height: 1.35; }
.assessment-chain > i { color: #aebbb8; font-style: normal; font-size: 12px; }
.assessment-quality-alert, .assessment-quality-ok { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; gap: 11px; align-items: center; padding: 12px 14px; border-radius: 11px; }
.assessment-quality-alert { border: 1px solid #e8cda7; background: #fff9ef; color: #83571d; }
.assessment-quality-alert > span, .assessment-quality-ok > span { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-weight: 800; }
.assessment-quality-alert > span { background: #f4dfbd; }
.assessment-quality-alert div, .assessment-quality-ok div { display: grid; gap: 2px; }
.assessment-quality-alert strong, .assessment-quality-ok strong { font-size: 11px; }
.assessment-quality-alert small, .assessment-quality-ok small { font-size: 9.5px; line-height: 1.4; }
.assessment-quality-ok { border: 1px solid #c6ded8; background: #f3faf7; color: #28695e; }
.assessment-quality-ok > span { background: #dceee9; }
.assessment-open-inputs { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 8px 14px; align-items: center; padding: 12px 14px; border: 1px solid #cbded8; border-radius: 11px; background: #f4f8fb; color: #3f6170; }
.assessment-open-inputs > div { display: grid; gap: 2px; }
.assessment-open-inputs strong { font-size: 11px; } .assessment-open-inputs small { font-size: 9.5px; line-height: 1.4; }
.assessment-open-inputs .text-button { padding: 5px 8px; border-radius: 6px; background: #fff; border: 1px solid #d7e2df; white-space: nowrap; }
.assessment-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.assessment-metrics.five { grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); }
.assessment-metrics article { min-height: 116px; padding: 15px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(25,47,45,.045); }
.assessment-metrics article.attention { border-color: #e5c7a6; background: #fffaf2; }
.assessment-metrics article > span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.assessment-metrics article > strong { display: block; margin-top: 13px; font: 700 25px Manrope, sans-serif; color: var(--ink); }
.assessment-metrics article > strong small { font-size: 11px; color: #9aa6a3; }
.assessment-metrics article p { margin: 5px 0 0; color: var(--muted); font-size: 9.5px; line-height: 1.4; }
.assessment-conclusion { display: grid; gap: 4px; padding: 15px 17px; border: 1px solid #e5c7a6; border-radius: 12px; background: #fff9ef; }
.assessment-conclusion > span { color: #9a6725; font-size: 8.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.assessment-conclusion strong { color: #6f4717; font: 700 15px Manrope, sans-serif; }
.assessment-conclusion p { margin: 0; color: #806b52; font-size: 10px; line-height: 1.5; }
.assessment-conclusion.conforming { border-color: #b9d9d0; background: #f1faf6; }
.assessment-conclusion.conforming > span, .assessment-conclusion.conforming strong { color: #226b5f; }
.assessment-conclusion.conforming p { color: #4f716b; }
.assessment-toolbar { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; gap: 9px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.assessment-search { display: grid; grid-template-columns: 16px 1fr; gap: 7px; align-items: center; min-height: 37px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #f9fbfa; }
.assessment-search:focus-within { border-color: #9ac8be; box-shadow: 0 0 0 3px rgba(33,125,115,.08); }
.assessment-search svg { width: 15px; height: 15px; fill: none; stroke: #758480; stroke-width: 1.8; stroke-linecap: round; }
.assessment-search input { min-width: 0; border: 0; outline: 0; background: transparent; font-size: 11px; color: var(--ink); }
.assessment-focus { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9.5px; font-weight: 700; }
.assessment-focus select { height: 37px; min-width: 155px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); padding: 0 9px; font-size: 10px; }
.assessment-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.assessment-actions .secondary-button { padding: 8px 10px; font-size: 9.5px; }
.assessment-chapter { border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(25,47,45,.045); overflow: hidden; }
.assessment-chapter > summary, .assessment-reference-library > summary { list-style: none; cursor: pointer; }
.assessment-chapter > summary::-webkit-details-marker, .assessment-reference-library > summary::-webkit-details-marker { display: none; }
.assessment-chapter > summary { display: grid; grid-template-columns: 42px minmax(160px,1fr) minmax(130px,190px) auto 16px; gap: 12px; align-items: center; padding: 13px 15px; }
.assessment-chapter > summary:hover { background: #fafcfb; }
.assessment-chapter-number { width: 39px; height: 39px; border-radius: 10px; display: grid; place-items: center; background: #e9f2f0; color: var(--teal); font: 700 13px Manrope, sans-serif; }
.assessment-chapter-name { display: grid; gap: 2px; min-width: 0; }
.assessment-chapter-name strong { font-size: 12px; color: var(--ink); }
.assessment-chapter-name small { color: var(--muted); font-size: 9px; }
.assessment-chapter-progress { display: grid; gap: 4px; }
.assessment-chapter-progress i { height: 4px; overflow: hidden; border-radius: 99px; background: #edf1ef; }
.assessment-chapter-progress b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--teal), #75b3a7); }
.assessment-chapter-progress small { color: var(--muted); font-size: 8.5px; text-align: right; }
.assessment-chapter-count { padding: 3px 7px; border-radius: 999px; background: #f3f6f5; color: #71807d; font-size: 8.5px; white-space: nowrap; }
.assessment-chapter-chevron, .assessment-reference-library summary > b { color: #8d9996; transition: transform .2s; }
.assessment-chapter[open] .assessment-chapter-chevron, .assessment-reference-library[open] summary > b { transform: rotate(180deg); }
.assessment-chapter-body { border-top: 1px solid var(--soft-line); }
.assessment-chapter-kpis { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 15px; background: #fbfcfb; border-bottom: 1px solid var(--soft-line); }
.assessment-chapter-kpis span { padding: 3px 7px; border-radius: 999px; background: #eff3f1; color: #65736f; font-size: 8.5px; }
.assessment-chapter-kpis span.attention { background: var(--red-soft); color: var(--red); }
.assessment-requirement-list { display: grid; gap: 10px; padding: 14px; background: #f4f7f6; }
.assessment-requirement-card { border: 1px solid #dfe8e5; border-radius: 11px; background: #fff; padding: 14px; box-shadow: 0 3px 12px rgba(25,47,45,.035); }
.assessment-requirement-card.has-assessment-exception { border-color: #e9cec4; background: #fffdfb; }
.assessment-requirement-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.assessment-requirement-card > header .assessment-requirement-head { margin: 0; }
.assessment-requirement-text { margin: 9px 0 0; color: #34423f; font-size: 11px; line-height: 1.58; }
.assessment-card-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(210px,.75fr); gap: 10px; margin-top: 12px; }
.assessment-card-panel { min-width: 0; padding: 11px 12px; border: 1px solid #e3ebe8; border-radius: 8px; background: #fbfcfb; }
.assessment-card-panel h4 { margin: 0 0 9px; color: #687975; font-size: 8px; text-transform: uppercase; letter-spacing: .1em; }
.assessment-card-panel .assessment-traceability { gap: 7px; }
.assessment-statement { background: #f5faf8; border-color: #d4e6e1; }
.assessment-statement p { margin: 0; color: #294d46; font-size: 10.5px; line-height: 1.6; }
.assessment-requirement-card > footer { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 12px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--soft-line); }
.assessment-requirement-card > footer .assessment-record-meta { margin: 0; }
.assessment-requirement-card > footer .text-button { margin-left: auto; }
.erp-register table.assessment-requirements-table { min-width: 970px; table-layout: fixed; }
.assessment-col-requirement { width: 29%; }
.assessment-col-traceability { width: 47%; }
.assessment-col-status { width: 15%; }
.assessment-col-action { width: 9%; }
.assessment-requirements-table td { vertical-align: top; padding: 14px; }
.assessment-requirement-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-bottom: 7px; }
.assessment-requirement-head strong { color: var(--teal); font: 700 11px Manrope, sans-serif; }
.assessment-requirement-head span { padding: 2px 6px; border-radius: 5px; background: #f0f4f2; color: #6b7976; font-size: 8px; line-height: 1.3; }
.assessment-source-detail { display: block; margin: -2px 0 7px; color: #7b8985; font-size: 8px; line-height: 1.35; }
.assessment-requirements-table td:first-child > p { margin: 0; color: #34423f; font-size: 10.5px; line-height: 1.55; }
.assessment-row-notes { margin-top: 7px; }
.assessment-row-notes summary { color: var(--teal); font-size: 8.5px; font-weight: 700; cursor: pointer; }
.assessment-row-notes p { margin: 5px 0 0; white-space: pre-line; color: var(--muted); font-size: 9px; line-height: 1.5; }
.assessment-traceability { display: grid; gap: 8px; }
.assessment-traceability > div { display: grid; gap: 3px; }
.assessment-traceability > div > span:first-child { color: #7c8985; font-size: 8px; text-transform: uppercase; letter-spacing: .07em; }
.assessment-traceability strong { color: #35423f; font-size: 9.5px; line-height: 1.4; }
.assessment-chip-row { display: flex; flex-wrap: wrap; gap: 4px; }
.assessment-evidence-chip, .assessment-reference-chip, .assessment-empty-chip { display: inline-block; padding: 2px 6px; border-radius: 5px; font-size: 8.5px; line-height: 1.35; }
.assessment-evidence-chip { background: #e7f3f0; color: #256c62; }
.assessment-reference-chip { background: #f2f4f3; color: #687673; }
.assessment-empty-chip { background: #fff2ed; color: #9a5b43; }
.assessment-gap-note { padding: 6px 7px; border-radius: 6px; background: #fff6f1; color: #93563f; font-size: 8.5px; line-height: 1.4; }
.assessment-gap-note.decision { background: #fffaf0; color: #876122; }
.assessment-gap-note.external { background: #f2f7fb; color: #476b82; }
.assessment-status { display: inline-block; white-space: normal; line-height: 1.3; }
.assessment-row-warning, .assessment-row-comment, .assessment-record-meta { display: block; margin-top: 6px; line-height: 1.4; }
.assessment-record-meta { color: #6d7b77; font-size: 8.5px; }
.assessment-row-warning { color: var(--red); font-size: 8.5px; font-weight: 700; }
.assessment-row-comment { color: var(--muted); font-size: 8.5px; }
.assessment-requirements-table tr.has-assessment-exception td { background: #fffaf5; }
.assessment-reference-library { border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.assessment-reference-library > summary { display: grid; grid-template-columns: minmax(0,1fr) auto 16px; align-items: center; gap: 14px; padding: 16px 18px; }
.assessment-reference-library > summary:hover { background: #fafcfb; }
.assessment-reference-library > summary > div { display: grid; }
.assessment-reference-library > summary strong { font-size: 12px; }
.assessment-reference-library > summary > span { color: var(--muted); font-size: 9.5px; }
.assessment-reference-library > div { border-top: 1px solid var(--soft-line); display: grid; gap: 18px; padding: 16px; background: #fbfcfb; }
.assessment-reference-block { display: grid; gap: 8px; }
.assessment-reference-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.assessment-reference-heading h3 { font: 700 15px Manrope, sans-serif; }
.assessment-reference-block .erp-register { background: #fff; border: 1px solid var(--line); border-radius: 9px; }
/* Marks and logos: the rules, the asset, the certificate conditions and the misuse register. */
.mark-hero { display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 18px; align-items: center; padding: 20px 22px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.mark-logo-preview { width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid #d5e2de; border-radius: 14px; background: #f1f7f5; color: var(--teal); font: 800 20px Manrope, sans-serif; overflow: hidden; }
.mark-logo-preview img { width: 100%; height: 100%; object-fit: contain; padding: 9px; }
.mark-hero h2 { margin: 0; color: var(--ink); font: 700 19px/1.25 Manrope, sans-serif; }
.mark-hero p:not(.eyebrow) { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.mark-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.mark-metrics article { padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.mark-metrics span { display: block; color: var(--muted); font-size: 8.5px; text-transform: uppercase; letter-spacing: .08em; }
.mark-metrics strong { display: block; margin-top: 7px; color: var(--ink); font: 700 22px Manrope, sans-serif; }
.mark-rules-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.mark-rule-card { padding: 13px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.mark-rule-card > span { color: var(--teal); font-size: 8px; font-weight: 800; letter-spacing: .04em; }
.mark-rule-card strong { display: block; margin-top: 5px; color: var(--ink); font-size: 11.5px; }
.mark-rule-card p { margin: 6px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
@media (max-width: 800px) { .mark-hero { grid-template-columns: 62px minmax(0,1fr); padding: 15px; }.mark-logo-preview { width: 56px; height: 56px; }.mark-metrics, .mark-rules-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .mark-metrics, .mark-rules-grid { grid-template-columns: 1fr; }.mark-hero { grid-template-columns: 1fr; }.mark-logo-preview { width: 52px; height: 52px; }.mark-hero .matrix-actions { display: grid; grid-template-columns: 1fr; } }
.generic-record { display: grid; grid-template-columns: 1fr auto; gap: 8px 14px; align-items: center; padding: 11px 12px; border: 1px solid var(--line); border-radius: 7px; background: #fbfcfb; }
.generic-record strong { color: #253532; font-size: 12px; }
.generic-record small { display: block; color: #7a8783; font-size: 10px; margin-top: 3px; }
.generic-record .status { justify-self: end; }
.register-empty { color: #7a8783; font-size: 12px; line-height: 1.5; }
.register-error { color: #9b5c45; background: #fff7f2; border: 1px solid #efd8ca; border-radius: 7px; padding: 11px; font-size: 12px; }
.register-panel { overflow: hidden; }
/* A register spans the full width of its panel without bleeding vertically: the negative
   vertical margin used to pull the table up over the text of the block above it and cut it
   (seen on the Technical areas screen). Horizontal bleed only, and none inside a card. */
.erp-register { overflow-x: auto; margin: 0; }
#generic-records > .erp-register { margin: 0 -14px; }
.evidence-card .erp-register, .ledger-list .erp-register { margin: 0; }
.erp-register table { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.erp-register th, .erp-register td { overflow-wrap: anywhere; word-break: break-word; }
/* Badges and id lines must wrap inside a fixed-layout cell, otherwise they widen the table. */
.erp-register td .status { white-space: normal; }
.erp-register td .register-main small { white-space: normal; overflow: visible; text-overflow: clip; max-width: none; }
.erp-register th { padding: 12px 14px; text-align: left; color: #74817f; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; background: #fafbfa; border-bottom: 1px solid var(--line); }
.erp-register td { padding: 13px 14px; border-bottom: 1px solid var(--soft-line); color: #35423f; font-size: 11px; vertical-align: middle; }
.erp-register tr:hover td { background: #fbfdfc; }
.erp-register td small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.erp-register table.client-findings-table { min-width: 1005px; }
.client-findings-table .finding-reference { width: 170px; }
.client-findings-table .finding-grade { width: 75px; }
.client-findings-table .finding-requirement { width: 105px; }
.client-findings-table .finding-statement { width: 360px; }
.client-findings-table .finding-state { width: 155px; }
.client-findings-table .finding-action { width: 135px; }
.erp-register td .portal-finding-state { display: inline-block; white-space: normal; word-break: normal; overflow-wrap: normal; line-height: 1.35; text-align: center; }
.erp-register td.portal-finding-action { white-space: normal; word-break: normal; overflow-wrap: normal; line-height: 1.45; }
.portal-back-button { justify-self: start; width: auto; }
.matrix-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.matrix-actions .secondary-button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
/* Person × scheme/function/area matrix: keep the headings readable and scroll sideways rather
   than squeezing every column until the words break one character per line. */
.erp-register table.matrix-grid { table-layout: auto; min-width: max-content; }
.erp-register table.matrix-grid th, .erp-register table.matrix-grid td { white-space: nowrap; vertical-align: middle; }
.erp-register table.matrix-grid th { text-transform: none; letter-spacing: 0; font-size: 10px; vertical-align: bottom; }
.erp-register table.matrix-grid th small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.erp-register table.matrix-grid td { font-size: 11px; }
.erp-register table.matrix-grid th:first-child, .erp-register table.matrix-grid td:first-child { position: sticky; left: 0; background: #fff; border-right: 1px solid var(--line); }
.erp-register table.matrix-grid thead th:first-child { background: #fafbfa; }
.erp-register table.matrix-grid tbody tr:hover td:first-child { background: #fbfdfc; }
/* Long clause-citing messages inside the drawer must wrap: a nowrap status chip widened the
   drawer body and made it scroll sideways. */
.drawer-body .status { white-space: normal; overflow-wrap: anywhere; }
/* Requirement statements: the source clause is provenance on its own line, not run into the text. */
.requirement-group li { margin-bottom: 6px; }
.requirement-group li small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }
.requirement-group h5 { margin: 8px 0 2px; font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
/* Readability: the cluster table keeps readable columns and scrolls sideways on a narrow
   window instead of squeezing every cell to one word per line. */
.erp-register.cluster-register table { min-width: 900px; }
.erp-register.cluster-register td { vertical-align: top; font-size: 11.5px; }
.erp-register.cluster-register th { font-size: 9.5px; }
.area-requirement-cards { display: grid; gap: 10px; }
.requirement-card { font-size: 11.5px; }
.requirement-card > strong { font-size: 12px; }
.requirement-card > span { font-size: 10.5px; }
.requirement-detail > summary { cursor: pointer; font-size: 11px; color: var(--teal); font-weight: 600; }
.requirement-group h4 { font-size: 11.5px; margin: 10px 0 2px; }
.requirement-group ol { margin: 4px 0 0 18px; padding: 0; }
.requirement-group li { font-size: 11.5px; line-height: 1.5; color: var(--ink); }
.requirement-group li small { font-size: 9.5px; color: var(--muted); }
.requirement-threshold { display: block; margin-top: 3px; font-size: 10px; font-weight: 600; color: var(--teal); }
.evaluation-row { border: 1px solid var(--soft-line); border-radius: 8px; padding: 10px; margin-bottom: 8px; display: grid; gap: 8px; background: var(--surface); }
.evaluation-statement { font-size: 11.5px; line-height: 1.45; }
.evaluation-statement strong { display: block; font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 3px; }
.evaluation-statement small { display: block; margin-top: 3px; font-size: 9.5px; color: var(--muted); }
.evaluation-statement .threshold { display: block; margin-top: 4px; font-size: 10.5px; color: var(--teal); font-weight: 600; }
.evaluation-row .form-row { gap: 10px; }

/* Competence evaluation: evidence first, grouped decisions, exceptions only where needed. */
#competence-modal { width: min(1120px, calc(100vw - 30px)); }
#competence-modal form { padding-top: 14px; }
.evaluation-stage { margin: 0 0 12px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfb; }
.evaluation-stage-work { margin-bottom: 0; border-radius: 11px 11px 0 0; }
.evaluation-stage-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.evaluation-stage-head > span { width: 25px; height: 25px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; background: var(--teal); color: #fff; font-size: 10px; font-weight: 800; }
.evaluation-stage-head > div { display: grid; gap: 2px; }
.evaluation-stage-head strong { color: var(--ink); font-size: 12.5px; }
.evaluation-stage-head small { color: var(--muted); font-size: 10.5px; line-height: 1.45; }
.evaluation-stage .form-row { margin-bottom: 0; }
.evaluation-stage label { margin-bottom: 0; }
.evaluation-progress { display: grid; gap: 8px; padding: 11px 12px; border-radius: 8px; background: #fff; border: 1px solid var(--soft-line); }
.evaluation-progress > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.evaluation-progress strong { color: var(--ink); font-size: 12px; }
.evaluation-progress span { color: var(--muted); font-size: 10.5px; text-align: right; }
.evaluation-progress-track { height: 6px; overflow: hidden; border-radius: 99px; background: #e7eeeb; }
.evaluation-progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--teal), #6bb5a6); transition: width .25s; }
.evaluation-requirements { border: 1px solid var(--line); border-top: 0; border-radius: 0 0 11px 11px; padding: 12px; background: #f4f7f6; }
.evaluation-smart-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; padding: 0 2px; }
.evaluation-smart-head > div { display: grid; gap: 3px; }
.evaluation-smart-head strong { color: var(--ink); font-size: 12px; }
.evaluation-smart-head span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.evaluation-smart-head > span { padding: 3px 8px; border-radius: 999px; background: var(--teal-soft); color: var(--teal); white-space: nowrap; font-weight: 800; }
.evaluation-group-list { display: grid; gap: 9px; }
.evaluation-group { border: 1px solid #dbe5e2; border-radius: 10px; background: #fff; overflow: hidden; }
.evaluation-group > header { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 13px; }
.evaluation-group > header > div { min-width: 0; }
.evaluation-group h4 { margin: 0; color: var(--ink); font-size: 13px; }
.evaluation-group > header p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.evaluation-group-progress { width: 116px; display: grid; grid-template-columns: 1fr auto; gap: 7px; align-items: center; }
.evaluation-group-progress i { display: block; height: 5px; max-width: 82px; border-radius: 99px; background: var(--teal); }
.evaluation-group-progress b { color: var(--teal); font-size: 10px; }
.evaluation-group-actions { display: grid; grid-template-columns: 150px minmax(180px,1fr) auto; gap: 8px; align-items: end; padding: 0 13px 12px; }
.evaluation-group-actions label { margin: 0; font-size: 9.5px; }
.evaluation-group-actions input, .evaluation-group-actions select { margin-top: 4px; padding: 8px 9px; font-size: 11px; }
.evaluation-group-actions .secondary-button { min-height: 34px; padding: 7px 10px; font-size: 10px; white-space: nowrap; }
.evaluation-group details { border-top: 1px solid var(--soft-line); }
.evaluation-group details > summary { cursor: pointer; padding: 9px 13px; color: var(--teal); font-size: 10.5px; font-weight: 700; background: #fbfcfb; }
.evaluation-group details > summary span { color: var(--muted); font-weight: 500; }
.evaluation-requirement-list { display: grid; }
.evaluation-requirement-item { display: grid; gap: 9px; padding: 11px 13px; border-top: 1px solid var(--soft-line); }
.evaluation-requirement-item:first-child { border-top: 0; }
.evaluation-requirement-copy { display: grid; grid-template-columns: 25px minmax(0,1fr); gap: 9px; align-items: start; }
.evaluation-requirement-copy > span { width: 24px; height: 24px; border-radius: 6px; display: grid; place-items: center; background: #edf4f1; color: var(--teal); font-size: 9px; font-weight: 800; }
.evaluation-requirement-copy p { margin: 0; color: #263936; font-size: 11px; line-height: 1.55; }
.evaluation-requirement-copy small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; }
.evaluation-requirement-copy b { display: inline-block; margin-top: 5px; padding: 3px 6px; border-radius: 5px; background: #eef7f4; color: var(--teal); font-size: 9px; }
.evaluation-requirement-grid { display: grid; grid-template-columns: 125px 130px 150px minmax(170px,1fr); gap: 8px; align-items: end; margin-left: 34px; }
.evaluation-requirement-grid label { margin: 0; color: var(--muted); font-size: 9px; }
.evaluation-requirement-grid input, .evaluation-requirement-grid select { margin-top: 3px; padding: 7px 8px; font-size: 10.5px; }
@media (max-width: 900px) {
  .evaluation-group-actions { grid-template-columns: 1fr 1fr; }
  .evaluation-group-actions .secondary-button { grid-column: 1 / -1; width: 100%; }
  .evaluation-requirement-grid { grid-template-columns: 1fr 1fr; margin-left: 0; }
}
@media (max-width: 540px) {
  .evaluation-stage { padding: 11px; }
  .evaluation-group-actions, .evaluation-requirement-grid { grid-template-columns: 1fr; }
  .evaluation-progress > div:first-child, .evaluation-smart-head { align-items: flex-start; flex-direction: column; }
}

/* Competence criteria: a searchable index and a selected requirement table replace the former stack
   of cards and numbered prose. */
.criteria-workspace { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 12px; align-items: start; }
.criteria-index, .criteria-detail { min-width: 0; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.criteria-index-head, .criteria-detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 15px 16px; border-bottom: 1px solid var(--soft-line); }
.criteria-index-head h3, .criteria-detail-head h3 { margin: 0; font-size: 16px; }
.criteria-index-head > span { padding: 4px 8px; border-radius: 999px; background: var(--teal-soft); color: var(--teal); font-size: 10px; font-weight: 800; white-space: nowrap; }
.criteria-detail-head p:last-child { margin: 5px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.criteria-filter-bar { display: grid; grid-template-columns: minmax(180px,1.3fr) minmax(140px,.8fr) minmax(130px,.8fr); gap: 8px; padding: 11px 12px; border-bottom: 1px solid var(--soft-line); background: #fbfcfb; }
.criteria-filter-bar label { display: grid; gap: 5px; color: var(--muted); font-size: 9.5px; font-weight: 700; }
.criteria-filter-bar input, .criteria-filter-bar select { width: 100%; min-width: 0; border: 1px solid #cfd9d6; border-radius: 7px; background: #fff; color: var(--ink); padding: 8px 9px; font-size: 11.5px; }
.criteria-table-wrap { max-height: 680px; overflow: auto; }
.criteria-index-table { min-width: 0 !important; table-layout: fixed; }
.criteria-index-table th { position: sticky; top: 0; z-index: 2; padding: 10px 11px; }
.criteria-index-table th:nth-child(1) { width: 40%; }
.criteria-index-table th:nth-child(2) { width: 32%; }
.criteria-index-table th:nth-child(3) { width: 11%; }
.criteria-index-table th:nth-child(4) { width: 17%; }
.criteria-index-table td { padding: 11px; vertical-align: middle; }
.criteria-index-table tbody tr { cursor: pointer; outline: 0; }
.criteria-index-table tbody tr:hover td, .criteria-index-table tbody tr.selected td { background: #eef7f4; }
.criteria-index-table tbody tr.selected td:first-child { box-shadow: inset 3px 0 0 var(--teal); }
.criteria-scheme-list { display: flex; flex-wrap: wrap; gap: 3px; }
.criteria-scheme-list span { padding: 2px 6px; border-radius: 5px; background: #f0f4f3; color: #52615e; font-size: 9px; white-space: nowrap; }
.criteria-count { display: inline-grid; min-width: 28px; height: 25px; place-items: center; border-radius: 7px; background: var(--teal-soft); color: var(--teal); font-size: 11px; font-weight: 800; }
.criteria-detail { position: sticky; top: 82px; max-height: calc(100vh - 104px); display: flex; flex-direction: column; }
.criteria-detail > .erp-register { min-height: 0; overflow: auto; }
.criteria-detail-loading { margin: 0; padding: 28px 18px; color: var(--muted); font-size: 11.5px; text-align: center; }
.criteria-requirements-table { border-radius: 0; border: 0; }
.criteria-requirements-table table { min-width: 0 !important; table-layout: fixed; }
.criteria-requirements-table th:nth-child(1) { width: 15%; }
.criteria-requirements-table th:nth-child(2) { width: 51%; }
.criteria-requirements-table th:nth-child(3) { width: 20%; }
.criteria-requirements-table th:nth-child(4) { width: 14%; }
.criteria-requirements-table th { position: sticky; top: 0; z-index: 2; }
.criteria-requirements-table td { vertical-align: top; font-size: 11px; line-height: 1.58; }
.criteria-requirements-table td:nth-child(3) { color: var(--teal); font-weight: 700; }
.criteria-requirements-table td:nth-child(4) small { color: var(--muted); font-size: 9.5px; line-height: 1.45; }
.criteria-category { display: inline-block; padding: 3px 6px; border-radius: 5px; background: #f1f5f3; color: #52615e; font-size: 9px; font-weight: 800; text-transform: capitalize; }
@media (max-width: 1300px) {
  .criteria-workspace { grid-template-columns: 1fr; }
  .criteria-detail { position: static; max-height: none; }
  .criteria-detail > .erp-register { max-height: 620px; }
  .criteria-table-wrap { max-height: 520px; }
}
@media (max-width: 760px) {
  .criteria-filter-bar { grid-template-columns: 1fr; }
  .criteria-index-head, .criteria-detail-head { flex-direction: column; }
}
/* The register uses a fixed table layout, so a hard minimum here pushed the person's address out of its
   own cell and into the column beside it. The cell decides the width; the address wraps inside it. */
.register-main { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.register-main strong { font-size: 12px; color: var(--ink); }
.register-main small { color: var(--muted); font-size: 9px; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-transition { border: 1px solid #c8d8d4; background: #fff; color: var(--teal); border-radius: 6px; padding: 6px 9px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.record-transition:hover { border-color: var(--teal); background: var(--teal-soft); }
.register-empty-state { min-height: 250px; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 26px; color: var(--muted); }
.register-empty-state strong { color: var(--ink); font: 700 18px Manrope; }
.register-empty-state p { max-width: 420px; line-height: 1.6; font-size: 12px; }
.data-source { color: #70807b; font-size: 11px; letter-spacing: .04em; white-space: nowrap; }
.data-source.live { color: #167c68; font-weight: 700; }
.auth-link { color: #167c68; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.connection-banner { max-width: 1404px; margin: 18px auto 0; padding: 12px 16px; border: 1px solid #cbded8; border-radius: 9px; background: #f5faf8; display: grid; grid-template-columns: 11px 1fr auto; gap: 12px; align-items: center; color: #315b54; }
.connection-banner > div { display: flex; flex-direction: column; gap: 2px; }
.connection-banner strong { font-size: 12px; }
.connection-banner span { font-size: 11px; color: #5f716e; }
.connection-dot { width: 9px; height: 9px; border-radius: 50%; background: #9aa6a3; box-shadow: 0 0 0 4px rgba(154,166,163,.15); }
.connection-banner button { border: 1px solid currentColor; border-radius: 6px; background: transparent; color: inherit; padding: 6px 11px; font-size: 10px; font-weight: 700; }
.connection-banner[data-state="live"] { color: #186c5d; border-color: #b9d9d0; background: #f0f9f6; }
.connection-banner[data-state="live"] .connection-dot { background: #218a74; box-shadow: 0 0 0 4px rgba(33,138,116,.13); }
.connection-banner[data-state="auth"] { color: #8b5c19; border-color: #efd7ad; background: #fff9ee; }
.connection-banner[data-state="auth"] .connection-dot { background: #d7973f; box-shadow: 0 0 0 4px rgba(215,151,63,.13); }
.connection-banner[data-state="error"] { color: #9f4641; border-color: #e7c4c1; background: #fff5f4; }
.connection-banner[data-state="error"] .connection-dot { background: var(--red); box-shadow: 0 0 0 4px rgba(178,79,73,.13); }
.connection-banner[data-state="demo"] { color: #4c6578; border-color: #cddae3; background: #f4f8fb; }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 288px; padding: 22px 14px 16px; background: radial-gradient(circle at 15% 0, rgba(55,105,99,.34), transparent 32%), linear-gradient(180deg, #102b2b 0%, #0d2525 100%); color: #fff; display: flex; flex-direction: column; z-index: 30; border-right: 1px solid rgba(255,255,255,.08); box-shadow: 12px 0 36px rgba(6,25,23,.08); }
.brand { display: flex; align-items: center; gap: 12px; padding: 2px 8px 18px; flex: 0 0 auto; }
.brand-mark { width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.22); border-radius: 11px; display: flex; align-items: center; justify-content: center; font: 800 20px Manrope; color: #fff; position: relative; background: rgba(255,255,255,.045); overflow: hidden; }
.brand-mark i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); right: 5px; top: 5px; }
/* Where the body has uploaded its mark, the shell carries the mark itself rather than its initials. */
.brand-mark img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.brand div:last-child { display: flex; flex-direction: column; min-width: 0; }
.brand strong { font: 700 16px/1.18 Manrope; letter-spacing: -.025em; }
.brand span { color: #9db5b1; font-size: 10.5px; margin-top: 4px; letter-spacing: .02em; }
.primary-nav { padding: 7px 2px 16px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.primary-nav::-webkit-scrollbar { width: 5px; }
.primary-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 99px; }

/* --- Find a screen: the panel has too many destinations to scan manually --------------------- */
.nav-search { flex: 0 0 auto; position: relative; display: grid; grid-template-columns: 16px minmax(0,1fr) 24px; align-items: center; gap: 7px; margin: 0 2px 5px; padding: 0 9px; min-height: 38px; border: 1px solid rgba(255,255,255,.1); border-radius: 9px; background: rgba(0,0,0,.12); transition: border-color .18s, background .18s, box-shadow .18s; }
.nav-search:focus-within { border-color: rgba(215,151,63,.58); background: rgba(0,0,0,.2); box-shadow: 0 0 0 3px rgba(215,151,63,.09); }
.nav-search > svg { width: 15px; height: 15px; fill: none; stroke: #829e9a; stroke-width: 1.8; stroke-linecap: round; }
.nav-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #fff; font-size: 11.5px; padding: 9px 0; }
.nav-search input::placeholder { color: #78918e; opacity: 1; }
.nav-search input::-webkit-search-cancel-button { display: none; }
.nav-search button { width: 24px; height: 24px; border: 0; border-radius: 6px; background: rgba(255,255,255,.07); color: #a9bfbc; font-size: 16px; line-height: 1; display: grid; place-items: center; }
.nav-search button:hover { color: #fff; background: rgba(255,255,255,.12); }
.nav-search-status { margin: 3px 8px 5px; color: #8fa7a3; font-size: 10px; line-height: 1.4; }

/* --- Foldable group tabs --------------------------------------------------------------------- */
.nav-group { margin-top: 6px; }
.nav-group-tab { width: 100%; display: grid; grid-template-columns: minmax(0,1fr) auto 20px; align-items: center; gap: 7px; margin: 0; padding: 7px 9px; background: none; border: 0; border-radius: 7px; color: #7f9c98; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; text-align: left; transition: color .18s, background .18s; }
.nav-group-tab:hover { color: #d3e1de; background: rgba(255,255,255,.035); }
.nav-toggle-symbol { width: 20px; height: 20px; border: 1px solid rgba(255,255,255,.13); border-radius: 6px; display: grid; place-items: center; color: #a9bfbc; font-size: 15px; line-height: 1; font-weight: 500; transition: color .18s, border-color .18s, background .18s; }
.nav-group-tab:hover .nav-toggle-symbol { color: #fff; border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.06); }
.nav-group-count { min-width: 20px; padding: 2px 5px; border-radius: 999px; background: rgba(255,255,255,.055); color: #829b97; font-size: 8.5px; font-weight: 700; letter-spacing: 0; text-align: center; }
.nav-group.folded .nav-toggle-symbol { color: #d4b071; border-color: rgba(215,151,63,.34); }
.nav-group.folded .nav-group-items { display: none; }
.nav-group.folded .nav-group-tab { color: #6b8482; }
.nav-group.folded .nav-group-tab:hover { color: #cfe0de; }
.nav-group-items { display: grid; gap: 2px; padding: 2px 0 5px; }
.nav-item { width: 100%; min-height: 36px; color: #b8cbc8; background: transparent; border: 1px solid transparent; border-radius: 8px; padding: 7px 9px; display: grid; grid-template-columns: 17px minmax(0,1fr) auto; align-items: center; gap: 9px; text-align: left; margin: 0; font-size: 12px; line-height: 1.3; letter-spacing: .005em; transition: color .18s, background .18s, border-color .18s, transform .18s; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.045); }
.nav-item.active { background: linear-gradient(90deg, rgba(37,75,72,.96), rgba(30,59,57,.84)); color: #fff; border-color: rgba(255,255,255,.06); box-shadow: inset 3px 0 0 var(--gold), 0 5px 14px rgba(0,0,0,.12); }
.nav-icon { width: 17px; height: 17px; display: grid; place-items: center; color: #78938f; transition: color .18s; }
.nav-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }
.nav-item:hover .nav-icon, .nav-item.active .nav-icon { color: #e6b56c; }
.nav-label { min-width: 0; }
.nav-item b { margin-left: 0; font-size: 9.5px; min-width: 20px; text-align: center; padding: 2px 5px; border-radius: 999px; background: rgba(255,255,255,.085); color: #c8d5d4; }
.nav-item b.alert-count { background: #84413d; color: #fff; }
.sidebar-footer { position: relative; flex: 0 0 auto; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.08); background: linear-gradient(180deg, rgba(13,37,37,0), rgba(13,37,37,.82) 18%); }
.support-card { width: 100%; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.035); color: #fff; border-radius: 9px; padding: 9px 10px; display: flex; gap: 9px; align-items: center; text-align: left; transition: background .18s, border-color .18s; }
.support-card:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.13); }
.support-card > span { width: 25px; height: 25px; border-radius: 8px; display: grid; place-items: center; background: rgba(215,151,63,.13); color: #e3ad5f; font-weight: 700; }
.support-card div, .profile-mini div:nth-child(2) { display: flex; flex-direction: column; }
.support-card strong, .profile-mini strong { font-size: 11.5px; }
.support-card small, .profile-mini span { color: #7f9995; font-size: 9.5px; margin-top: 2px; }
.profile-mini { margin-top: 8px; padding: 10px 5px 2px; border-top: 1px solid rgba(255,255,255,.08); display: flex; align-items: center; gap: 9px; }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: #d9a052; color: #17312f; display: grid; place-items: center; font-size: 10px; font-weight: 700; font-style: normal; }
.profile-mini button { margin-left: auto; background: none; border: 0; color: #8ba19f; }
.profile-mini button[aria-expanded="true"] { color: var(--gold); }
.profile-menu { position: absolute; z-index: 45; left: 8px; right: 8px; bottom: 65px; padding: 7px; border: 1px solid rgba(255,255,255,.13); border-radius: 10px; background: #173331; box-shadow: 0 16px 38px rgba(0,0,0,.32); }
.profile-menu-head { padding: 9px 10px 10px; margin-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,.09); display: grid; gap: 2px; }
.profile-menu-head strong { color: #fff; font-size: 12px; }
.profile-menu-head span { color: #91aaa5; font-size: 10px; }
.profile-menu > button { width: 100%; min-height: 34px; border: 0; border-radius: 7px; background: transparent; color: #d5e2df; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; text-align: left; font-size: 11.5px; }
.profile-menu > button:hover, .profile-menu > button:focus-visible { outline: 0; background: rgba(255,255,255,.075); color: #fff; }
.profile-menu > button b { color: var(--gold); font-size: 10px; font-weight: 700; }
.main { margin-left: 288px; min-height: 100vh; }
.topbar { height: 68px; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); padding: 0 34px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 20; backdrop-filter: blur(8px); }
.breadcrumb { display: flex; align-items: center; gap: 9px; font-size: 13px; }
.breadcrumb span { color: var(--muted); }.breadcrumb b { color: #bac3c1; font-weight: 400; }.breadcrumb strong { font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 7px; }
.icon-button, .help-button, .mobile-menu, .language-button { border: 0; background: transparent; color: #576563; height: 35px; border-radius: 7px; }
.icon-button { width: 35px; font-size: 21px; position: relative; }.icon-button:hover { background: #f0f4f2; }
.notification i { position: absolute; width: 6px; height: 6px; background: #cc6c54; border: 2px solid #fff; border-radius: 50%; right: 6px; top: 5px; }
.help-button { padding: 0 10px; font-size: 13px; }.mobile-menu { display: none; font-size: 20px; }
.language-button { padding: 0 9px; font-size: 11px; font-weight: 700; color: var(--teal); }.language-button:hover { background: #eef5f2; }
.content { padding: 38px 38px 55px; max-width: 1480px; margin: 0 auto; }
.hidden { display: none !important; }
.page-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 26px; }
.page-heading.compact { align-items: center; }
.eyebrow { margin: 0 0 7px; color: var(--teal); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; }
h1, h2, h3 { font-family: Manrope, sans-serif; margin: 0; letter-spacing: -.035em; }
h1 { font-size: clamp(27px, 3vw, 36px); line-height: 1.14; }
h2 { font-size: 19px; }
h3 { font-size: 15px; }
.page-heading > div > p:last-child { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
.primary-button, .secondary-button { border-radius: 7px; padding: 11px 16px; font-weight: 700; font-size: 13px; border: 1px solid transparent; }
.primary-button { background: var(--deep); color: #fff; box-shadow: 0 5px 14px rgba(16,42,42,.14); }.primary-button:hover { background: var(--deep-2); }.primary-button span { color: #f3bd6d; }
.secondary-button { background: #fff; border-color: var(--line); color: #34403f; }.secondary-button:hover { background: #f6f8f7; }
.attention-strip { background: #fffaf0; border: 1px solid #efd8af; border-left: 4px solid #d79436; border-radius: 8px; min-height: 65px; padding: 12px 16px; display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.attention-icon { width: 29px; height: 29px; border-radius: 50%; background: var(--gold-soft); color: #af6c16; display: grid; place-items: center; font-weight: 800; }
.attention-strip > div:nth-child(2) { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }.attention-strip strong { font-weight: 700; }.attention-strip span { color: #776c58; font-size: 12px; }
.attention-strip button { margin-left: auto; background: none; border: 0; color: #875b21; font-size: 12px; font-weight: 700; }
.metric-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 18px; }
.metric-card, .panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: var(--shadow); }
.metric-card { padding: 17px 18px; display: flex; flex-direction: column; }
.metric-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.metric-icon { width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; font-size: 17px; }.metric-icon.teal { background: var(--teal-soft); color: var(--teal); }.metric-icon.amber { background: var(--gold-soft); color: #b67622; }.metric-icon.red { background: var(--red-soft); color: var(--red); }.metric-icon.blue { background: var(--blue-soft); color: var(--blue); }
.metric-trend { font-size: 10px; font-weight: 700; padding: 3px 6px; border-radius: 9px; }.metric-trend.positive { color: #277362; background: #e8f5f0; }.metric-trend.negative { color: #a44943; background: #fbedeb; }.metric-trend.neutral { color: #65716f; background: #f0f3f2; }
.metric-card > strong { font: 700 27px Manrope; }.metric-card > strong .unit { font-size: 15px; margin-left: 1px; }.metric-card > span { font-size: 13px; font-weight: 600; margin-top: 2px; }.metric-card > small { color: var(--muted); margin-top: 8px; font-size: 11px; }
.dashboard-grid, .lower-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(370px,.75fr); gap: 18px; margin-bottom: 18px; }
.panel-header { min-height: 68px; padding: 17px 19px 13px; border-bottom: 1px solid var(--soft-line); display: flex; align-items: center; justify-content: space-between; }
.panel-header .eyebrow { margin-bottom: 3px; }.text-button { border: 0; background: none; color: var(--teal); font-size: 11px; font-weight: 700; }.text-button span { margin-left: 4px; }
.task-tabs { padding: 0 18px; display: flex; border-bottom: 1px solid var(--soft-line); }
.task-tabs button { padding: 12px 4px 10px; margin-right: 24px; border: 0; background: none; color: var(--muted); font-size: 11px; font-weight: 600; border-bottom: 2px solid transparent; }.task-tabs button.active { color: var(--ink); border-color: var(--teal); }.task-tabs b { font-size: 9px; background: #edf1ef; padding: 2px 5px; border-radius: 8px; margin-left: 3px; }
.task-list { padding: 3px 18px 7px; }.task-item { display: grid; grid-template-columns: 31px minmax(0,1fr) auto 16px; gap: 11px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--soft-line); cursor: pointer; }.task-item:last-child { border: 0; }.task-item:hover .task-copy strong { color: var(--teal); }.task-kind { width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; background: var(--teal-soft); color: var(--teal); }.task-kind.warning { color: #b87928; background: var(--gold-soft); }.task-kind.danger { color: var(--red); background: var(--red-soft); }
.live-empty { width: 100%; margin: 0; padding: 25px 12px; color: var(--muted); font-size: 11px; line-height: 1.55; text-align: center; }
.table-empty { color: var(--muted); text-align: center; padding: 32px !important; }
.task-copy { display: flex; flex-direction: column; min-width: 0; }.task-copy strong { font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: .2s; }.task-copy span { color: var(--muted); font-size: 10px; margin-top: 4px; }.task-due { text-align: right; display: flex; flex-direction: column; }.task-due strong { font-size: 10px; }.task-due span { color: var(--muted); font-size: 9px; margin-top: 3px; }.task-arrow { color: #aeb9b6; }
.schedule-list { padding: 5px 19px 8px; }.schedule-item { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--soft-line); }.schedule-item:last-child { border: 0; }.date-box { width: 40px; height: 44px; border: 1px solid #d7dfdc; border-radius: 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; }.date-box span { color: var(--teal); font-size: 8px; letter-spacing: .1em; font-weight: 800; }.date-box strong { font: 700 18px Manrope; }
.schedule-copy { display: flex; flex-direction: column; min-width: 0; }.schedule-copy > strong { font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.schedule-copy > span { color: var(--muted); font-size: 9px; margin-top: 3px; }.schedule-copy small { display: flex; align-items: center; color: #53615f; font-size: 9px; margin-top: 7px; }.avatar.tiny { display: inline-grid; width: 19px; height: 19px; font-size: 7px; margin-right: -4px; border: 2px solid #fff; }.avatar.tiny.alt { background: #8fb1ad; }.schedule-copy small .avatar + .avatar { margin-right: 7px; }
.status { border-radius: 10px; padding: 3px 7px; font-size: 9px; font-weight: 700; white-space: nowrap; }.status.ready { background: var(--teal-soft); color: #277164; }.status.pending { background: var(--gold-soft); color: #9b651f; }.status.blocked { background: var(--red-soft); color: #a94944; }
.lower-grid { grid-template-columns: 1fr 1fr; }.period-button { border: 1px solid var(--line); background: #fff; border-radius: 6px; padding: 7px 9px; color: #53605e; font-size: 10px; }
.pipeline-bars { padding: 18px 20px 9px; }.pipeline-bars > div { display: grid; grid-template-columns: 120px 1fr 22px; gap: 12px; align-items: center; margin: 12px 0; }.pipeline-bars span { color: #5b6866; font-size: 10px; }.pipeline-bars i { height: 7px; background: #edf1ef; border-radius: 5px; overflow: hidden; }.pipeline-bars b { display: block; height: 100%; background: var(--teal); border-radius: 5px; }.pipeline-bars strong { font-size: 10px; text-align: right; }.chart-note { margin: 5px 20px 17px; color: #87918f; font-size: 9px; }
.readiness-content { padding: 24px; display: flex; gap: 30px; align-items: center; justify-content: center; }.readiness-ring { width: 118px; height: 118px; position: relative; flex: 0 0 auto; }.readiness-ring svg { width: 100%; transform: rotate(-90deg); }.readiness-ring circle { fill: none; stroke: #e8eeeb; stroke-width: 9; }.readiness-ring circle.progress { stroke: var(--teal); stroke-dasharray: 295; stroke-dashoffset: 94; stroke-linecap: round; }.readiness-ring > div { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }.readiness-ring strong { font: 700 23px Manrope; }.readiness-ring span { color: var(--muted); font-size: 9px; }.readiness-legend { flex: 1; }.readiness-legend p { display: grid; grid-template-columns: 8px 1fr auto; gap: 8px; align-items: center; margin: 8px 0; }.readiness-legend span { color: #586462; font-size: 9px; }.readiness-legend strong { font-size: 10px; }.dot { width: 7px; height: 7px; border-radius: 50%; }.dot.verified { background: var(--teal); }.dot.records { background: #6ba69e; }.dot.implemented { background: #d9a24f; }.dot.prepared { background: #b6c3c0; }
.table-panel { overflow: hidden; }.table-toolbar { padding: 14px 17px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); }.search-box { width: min(360px, 42%); background: #f6f8f7; border: 1px solid var(--line); border-radius: 7px; padding: 8px 10px; color: var(--muted); display: flex; gap: 7px; }.search-box input { width: 100%; background: transparent; border: 0; outline: 0; font-size: 12px; }.filter-group { display: flex; gap: 4px; }.filter { border: 1px solid transparent; background: transparent; color: var(--muted); padding: 7px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; }.filter.active { color: var(--teal); background: var(--teal-soft); }
.data-table-wrap { overflow-x: auto; }.data-table { width: 100%; border-collapse: collapse; min-width: 780px; }.data-table th { text-align: left; color: #7d8987; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; padding: 12px 17px; background: #fafbfa; border-bottom: 1px solid var(--line); }.data-table td { padding: 14px 17px; border-bottom: 1px solid var(--soft-line); font-size: 11px; }.data-table tr { cursor: pointer; }.data-table tbody tr:hover { background: #fafcfb; }.client-cell { display: flex; flex-direction: column; }.client-cell strong { font-size: 12px; }.client-cell span { color: var(--muted); margin-top: 4px; font-size: 9px; }.owner-cell { display: flex; align-items: center; gap: 7px; }.owner-cell .avatar { width: 27px; height: 27px; }.row-menu { border: 0; background: none; color: #899391; }
/* The working register takes the majority of the width; the guidance panel is a side rail. */
.generic-layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 18px; align-items: start; }
/* Registers of content (competence criteria, technical areas) take the full width: the guidance
   rail on those screens was a visual workflow with no operational use and crowded the tables. */
.generic-layout.wide { grid-template-columns: minmax(0, 1fr); }
.generic-layout.wide > .empty-feature { display: none; }
/* The card that carries the exports and the issued records is tinted so it reads as the output area. */
/* Two classes so the tint wins over .evidence-card, which is declared later in this file. */
.evidence-card.download-bar { background: #e6f2ef; border-color: #c3ded7; }
.evidence-card.download-bar > strong { color: var(--teal); }
.evidence-card.download-bar .matrix-actions .secondary-button { background: #fff; }
.person-coverage .text-button { padding: 2px 0; font-size: 10.5px; }.empty-feature { min-height: 260px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 26px 22px; text-align: center; }.feature-symbol { width: 60px; height: 60px; border-radius: 16px; background: var(--teal-soft); color: var(--teal); display: grid; place-items: center; font-size: 26px; margin-bottom: 14px; }.empty-feature p { max-width: 390px; color: var(--muted); line-height: 1.5; font-size: 12.5px; }.mini-stats { display: grid; grid-template-columns: repeat(3,1fr); padding: 22px; gap: 10px; }.mini-stats p { margin: 0; padding: 15px; background: #f7f9f8; border-radius: 8px; display: flex; flex-direction: column; }.mini-stats strong { font: 700 22px Manrope; }.mini-stats span { color: var(--muted); font-size: 10px; margin-top: 3px; }.activity-feed { padding: 0 22px 20px; }.activity-feed p { display: flex; gap: 11px; margin: 0; padding: 13px 0; border-top: 1px solid var(--soft-line); }.activity-feed i { width: 8px; height: 8px; border: 2px solid var(--teal); border-radius: 50%; margin-top: 4px; }.activity-feed span { display: flex; flex-direction: column; font-size: 11px; }.activity-feed small { color: var(--muted); font-size: 9px; margin-top: 4px; }
.overlay { position: fixed; inset: 0; background: rgba(7,20,19,.42); backdrop-filter: blur(2px); z-index: 50; opacity: 0; visibility: hidden; transition: .25s; }.overlay.open { opacity: 1; visibility: visible; }
.detail-drawer { position: fixed; inset: 0 0 0 auto; width: min(550px, 95vw); background: #fff; z-index: 60; transform: translateX(100%); transition: .32s ease; display: flex; flex-direction: column; box-shadow: -15px 0 50px rgba(8,25,23,.15); }.detail-drawer.open { transform: translateX(0); }.drawer-header { padding: 25px 27px 20px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); }.drawer-header h2 { font-size: 23px; }.drawer-header > div > span { color: var(--muted); font-size: 11px; }.close-button { width: 34px; height: 34px; background: #f3f6f4; color: #5b6866; border: 0; border-radius: 50%; font-size: 22px; }.drawer-body { padding: 22px 27px; overflow-y: auto; }.case-state { padding: 15px 17px; border: 1px solid #cfe0dc; background: #f1f7f5; border-radius: 8px; display: flex; flex-direction: column; }.case-state span { color: var(--teal); text-transform: uppercase; font-size: 9px; letter-spacing: .1em; font-weight: 800; }.case-state strong { font: 700 15px Manrope; margin-top: 4px; }.case-state small { color: var(--muted); font-size: 9px; margin-top: 5px; }
.gate-progress { padding: 26px 0; border-bottom: 1px solid var(--line); }.gate-progress > div { min-height: 45px; display: grid; grid-template-columns: 27px 1fr; gap: 11px; position: relative; }.gate-progress > div:not(:last-child)::after { content: ""; width: 1px; background: #d9e0de; position: absolute; left: 13px; top: 27px; bottom: 0; }.gate-progress i { width: 27px; height: 27px; border-radius: 50%; background: #eef2f0; color: #87918f; display: grid; place-items: center; font-style: normal; font-size: 10px; font-weight: 700; z-index: 1; }.gate-progress .done i { background: var(--teal); color: #fff; }.gate-progress .current i { background: var(--gold); color: #fff; box-shadow: 0 0 0 4px var(--gold-soft); }.gate-progress span { font-size: 11px; display: flex; flex-direction: column; padding-top: 3px; }.gate-progress small { color: var(--muted); font-size: 9px; margin-top: 3px; }
.drawer-section { padding: 22px 0; border-bottom: 1px solid var(--line); }.drawer-section h3 { display: flex; justify-content: space-between; }.drawer-section h3 span { color: var(--muted); font: 600 10px "DM Sans"; }.gate-list p { display: flex; gap: 11px; margin: 14px 0; }.gate-list i { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 10px; font-weight: 800; flex: 0 0 auto; }.gate-list .pass i { color: var(--teal); background: var(--teal-soft); }.gate-list .warning i { color: #a66b20; background: var(--gold-soft); }.gate-list .blocked-gate i { color: var(--red); background: var(--red-soft); }.gate-list span { display: flex; flex-direction: column; }.gate-list strong { font-size: 11px; }.gate-list small { font-size: 9px; color: var(--muted); margin-top: 4px; }.case-profile { margin: 8px 0 0; }.case-profile div { display: grid; grid-template-columns: 130px 1fr; padding: 10px 0; }.case-profile dt { color: var(--muted); font-size: 10px; }.case-profile dd { margin: 0; font-size: 11px; font-weight: 600; }.drawer-footer { margin-top: auto; padding: 15px 27px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 8px; }
.drawer-live-evidence { display: grid; gap: 10px; }.evidence-card, .ledger-list { border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; padding: 12px; display: grid; gap: 6px; }.evidence-card strong, .ledger-list > strong { color: var(--ink); font-size: 11px; }.evidence-card span { color: var(--muted); font-size: 10px; line-height: 1.45; }.ledger-list p { margin: 0; padding: 9px 0; border-top: 1px solid var(--line); display: grid; gap: 3px; }.ledger-list p:first-of-type { border-top: 0; }.ledger-list b { color: var(--teal); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }.ledger-list span { color: var(--ink); font-size: 10px; }.ledger-list small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.indicator-recap { margin-top: 18px; padding: 0; overflow: hidden; gap: 0; }
.indicator-recap-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 16px 18px; border-bottom: 1px solid var(--line); background: #f5f8f7; }
.indicator-recap-head > div { display: grid; gap: 5px; max-width: 760px; }
.indicator-recap-head > b { flex: 0 0 auto; padding: 5px 9px; border: 1px solid #c9dcd7; border-radius: 999px; color: var(--teal); background: #fff; font-size: 9px; text-transform: uppercase; letter-spacing: .06em; }
.indicator-recap .erp-register { margin: 0; }
.erp-register table.indicator-recap-table { min-width: 980px; table-layout: fixed; }
.indicator-recap-table th:nth-child(1) { width: 15%; }
.indicator-recap-table th:nth-child(2) { width: 27%; }
.indicator-recap-table th:nth-child(3) { width: 18%; }
.indicator-recap-table th:nth-child(4) { width: 29%; }
.indicator-recap-table th:nth-child(5) { width: 11%; }
.indicator-recap-table td { vertical-align: top; line-height: 1.55; }
.indicator-recap-table td strong { display: block; color: var(--ink); font-size: 11px; line-height: 1.45; }
.indicator-recap-table td small { margin-top: 5px; font-size: 10px; line-height: 1.55; }
.indicator-gap-status { display: inline-block; margin-bottom: 7px; padding: 3px 7px; border-radius: 999px; color: #77521a; background: #fff4dd; font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.capa-workflow-intro { gap: 16px; }
.capa-stage-strip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.capa-stage-strip span { display: grid; justify-items: center; gap: 4px; padding: 8px 3px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 9px; text-align: center; line-height: 1.35; background: #fff; }
.capa-stage-strip b { width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--teal); font-size: 9px; text-transform: uppercase; }
.capa-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 14px 0 18px; }
.capa-metric { min-height: 104px; display: flex; flex-direction: column; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.capa-metric strong { color: var(--ink); font: 700 26px Manrope; }
.capa-metric span { color: var(--ink); font-size: 10px; font-weight: 700; line-height: 1.35; }
.capa-metric small { margin-top: auto; color: var(--muted); font-size: 9px; line-height: 1.4; }
.capa-metric.attention { border-color: #e7cfa7; background: #fffaf1; }
.capa-metric.pending { border-color: #c9dcd7; background: #f4f9f7; }
.capa-section { margin-top: 16px; }
.capa-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 18px; padding: 14px 16px 10px; background: #f7faf9; border: 1px solid var(--line); border-bottom: 0; border-radius: 11px 11px 0 0; }
.capa-section-head h3 { margin: 2px 0 3px; font-size: 17px; }
.capa-section-head span { display: block; max-width: 760px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.capa-section > .erp-register { border: 1px solid var(--line); border-top: 0; border-radius: 0 0 11px 11px; background: #fff; }
.erp-register table.capa-nc-table { min-width: 1050px; }
.erp-register table.capa-action-table { min-width: 1320px; }
.capa-nc-table td, .capa-action-table td { vertical-align: top; }
.capa-action-list { display: grid; gap: 5px; }
.capa-action-chip { display: inline-block; padding: 4px 7px; border-radius: 6px; color: var(--teal); background: var(--teal-soft); font-size: 9px; line-height: 1.35; }
.capa-action-chip.empty { color: var(--muted); background: #f1f4f3; }
.capa-step-button { display: block; margin-top: 8px; padding: 6px 9px; border: 1px solid #bdd3cd; border-radius: 7px; color: var(--teal); background: #fff; font: 700 9px "DM Sans"; cursor: pointer; }
.capa-step-button:hover { background: var(--teal-soft); }
.capa-complete { display: block; margin-top: 6px; color: var(--muted); }
@media (max-width: 1100px) { .capa-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); } .capa-stage-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 540px) { .capa-metrics { grid-template-columns: 1fr 1fr; } .capa-stage-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.modal { position: fixed; width: min(820px, calc(100vw - 30px)); max-height: min(92vh, 900px); left: 50%; top: 50%; transform: translate(-50%,-46%) scale(.98); z-index: 70; background: #fff; border-radius: 12px; box-shadow: 0 24px 80px rgba(5,20,18,.25); opacity: 0; visibility: hidden; transition: .22s; display: flex; flex-direction: column; overflow: hidden; }.modal.open { opacity: 1; visibility: visible; transform: translate(-50%,-50%) scale(1); }.modal-header { padding: 20px 25px 16px; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); flex: 0 0 auto; }.modal-header h2 { font-size: 23px; }.modal-header p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 11px; }.modal form { padding: 18px 25px 0; overflow-y: auto; overscroll-behavior: contain; }.modal label { display: flex; flex-direction: column; gap: 6px; font-size: 11px; font-weight: 700; margin-bottom: 15px; }.modal input, .modal select, .modal textarea { border: 1px solid #cfd9d6; border-radius: 7px; padding: 10px 11px; outline: 0; color: var(--ink); background: #fff; font-size: 12px; min-width: 0; }.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft); }.modal textarea { min-height: 78px; resize: vertical; }.form-section { margin: 6px 0 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #f8fbfa; display: flex; flex-direction: column; gap: 4px; }.form-section strong { color: var(--teal); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }.form-section span { color: var(--muted); font-size: 11px; line-height: 1.5; }.form-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 13px; }.form-notice { background: #f3f7f5; border-radius: 7px; padding: 11px 12px; display: flex; gap: 10px; }.form-notice > span { width: 21px; height: 21px; border-radius: 50%; background: #dbeae6; color: var(--teal); display: grid; place-items: center; font-weight: 700; }.form-notice p { margin: 0; display: flex; flex-direction: column; font-size: 10px; color: var(--muted); }.form-notice strong { color: var(--ink); margin-bottom: 3px; }.modal-actions { position: sticky; bottom: 0; background: linear-gradient(180deg, rgba(255,255,255,.82), #fff 35%); display: flex; justify-content: flex-end; gap: 8px; margin: 18px -25px 0; padding: 16px 25px 18px; border-top: 1px solid var(--line); }
/* A modal whose content is not a form has no scroll container of its own: its content sat in the flex
   column and was clipped by the modal's overflow — a long management review could not be scrolled, and
   the inputs below the fold could not be reached at all. The body scrolls; the header and the actions
   stay where they are. */
.modal-body { padding: 18px 25px 0; overflow-y: auto; overscroll-behavior: contain; flex: 1 1 auto; min-height: 0; }
.command { position: fixed; z-index: 70; width: min(560px, calc(100vw - 30px)); left: 50%; top: 100px; transform: translate(-50%,-10px); background: #fff; border-radius: 10px; box-shadow: 0 22px 70px rgba(5,20,18,.25); padding: 12px; opacity: 0; visibility: hidden; transition: .2s; }.command.open { opacity: 1; visibility: visible; transform: translate(-50%,0); }.command label { border: 1px solid var(--line); border-radius: 7px; padding: 11px; display: flex; gap: 8px; color: var(--muted); }.command input { border: 0; outline: 0; width: 100%; }.command p { margin: 15px 8px 6px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }.command button { width: 100%; padding: 10px; border: 0; background: transparent; border-radius: 6px; display: flex; justify-content: space-between; color: #3d4947; text-align: left; }.command button:hover { background: #f3f7f5; }
.gate-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 4px 0 15px; }
.gate-checks label { margin: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 7px; background: #fbfcfb; display: flex; flex-direction: row; align-items: center; gap: 8px; color: #43514e; font-size: 11px; }
.gate-checks input { width: auto; accent-color: var(--teal); }
.toast { position: fixed; right: 24px; bottom: 24px; z-index: 90; background: var(--deep); color: #fff; padding: 13px 16px; border-radius: 9px; box-shadow: 0 12px 30px rgba(5,20,18,.25); display: flex; gap: 11px; align-items: center; transform: translateY(100px); opacity: 0; transition: .3s; }.toast.show { transform: translateY(0); opacity: 1; }.toast > span { width: 23px; height: 23px; border-radius: 50%; background: var(--teal); display: grid; place-items: center; }.toast p { margin: 0; display: flex; flex-direction: column; }.toast strong { font-size: 11px; }.toast small { color: #a9bfbd; font-size: 9px; margin-top: 3px; }
.toast.attention > span { background: var(--gold); color: var(--deep); }.toast.attention { border-left: 3px solid var(--gold); }
.toast.attention strong { font-size: 11px; }
.source-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 18px; }
.source-summary article { padding: 15px 17px; border: 1px solid var(--line); border-radius: 9px; background: #fff; display: flex; flex-direction: column; box-shadow: var(--shadow); }
.source-summary span { color: var(--muted); font-size: 10px; }
.source-summary strong { font: 700 24px Manrope; margin: 4px 0 1px; }
.source-summary small { color: #8a9593; font-size: 9px; }
.source-panel { overflow: hidden; }
.legend-note { font-size: 9px; color: var(--muted); display: flex; align-items: center; gap: 6px; }
.legend-note i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }
.source-table td { cursor: default; }
.source-name { display: flex; flex-direction: column; min-width: 205px; }
.source-name strong { font-size: 11px; }
.source-name span { margin-top: 3px; color: var(--muted); font-size: 9px; }
.review-state { display: inline-flex; align-items: center; gap: 6px; font-size: 10px; color: #53605e; }
.review-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--teal); }
.review-state.amber i { background: var(--gold); }
.source-guidance { margin-top: 15px; padding: 14px 16px; background: #eaf2f0; border-radius: 8px; display: flex; gap: 12px; }
.source-guidance > span { width: 23px; height: 23px; border-radius: 50%; background: #d5e7e2; color: var(--teal); display: grid; place-items: center; font-size: 11px; font-weight: 800; flex: 0 0 auto; }
.source-guidance strong { font-size: 11px; }
.source-guidance p { margin: 4px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.client-intake-shell { max-width: 980px; margin: 0 auto; display: grid; gap: 18px; }
.client-intake-hero { padding: 28px 30px; border-radius: 18px; background: linear-gradient(135deg, #102a2a, #1e5b53); color: #fff; box-shadow: var(--shadow); }
.client-intake-hero .eyebrow { color: #e5a94f; }
.client-intake-hero h1 { color: #fff; font-size: clamp(30px, 5vw, 48px); max-width: 760px; }
.client-intake-hero p:last-child { max-width: 760px; color: #dceae7; line-height: 1.65; }
.client-intake-form { background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); padding: 24px; }
.client-intake-form label { display: flex; flex-direction: column; gap: 7px; font-size: 11px; font-weight: 800; margin-bottom: 15px; color: #263936; }
.client-intake-form input, .client-intake-form select, .client-intake-form textarea { border: 1px solid #cfd9d6; border-radius: 9px; padding: 11px 12px; font: inherit; font-size: 12px; color: var(--ink); outline: 0; background: #fff; }
.client-intake-form textarea { min-height: 92px; resize: vertical; }
.client-intake-form input:focus, .client-intake-form select:focus, .client-intake-form textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft); }
.client-intake-form select[multiple], .modal select[multiple] { min-height: 108px; line-height: 1.55; background: linear-gradient(180deg,#fff,#fbfcfb); }
.field-help { color: var(--muted); font-size: 10px; font-weight: 600; line-height: 1.4; }
/* A controlled list of several values: the activities, the schemes, the technical areas of an entity. The
   list scrolls rather than stretching the modal, and each choice is a full row so a long IAF description
   stays readable. */
.record-checks { border: 1px solid #cfd9d6; border-radius: 8px; padding: 10px 12px 4px; margin: 0 0 15px; max-height: 220px; overflow-y: auto; }
.record-checks legend { font-size: 11px; font-weight: 700; color: var(--ink); padding: 0 4px; }
.record-checks label.check { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; font-size: 11px; font-weight: 500; margin: 0 0 8px; color: #43514e; }
.record-checks label.check input { width: auto; margin-top: 2px; accent-color: var(--teal); }
.row-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.row-actions .muted { color: var(--muted); font-size: 10px; font-weight: 700; }
/* Deleting a record of the body removes evidence, so the action is set apart from the ordinary ones. */
.text-button.danger { color: var(--red); }
/* A hidden step stays hidden: .form-row and .modal label set display, which would otherwise win over
   the hidden attribute and leave a step on screen that the review has not reached yet. */
[hidden] { display: none !important; }
/* A value read from a record the case already carries (the standard, a site), not an empty control. */
.relation-value { color: var(--ink); font-size: 11px; font-weight: 600; line-height: 1.5; }
.relation-value em { display: block; color: var(--muted); font-style: normal; font-size: 10px; font-weight: 600; }
.scope-steps { margin: 7px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.scope-steps li { position: relative; padding-left: 12px; }
.scope-steps li::before { content: ""; position: absolute; left: 1px; top: 5px; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
/* The clients of an edition transition: read inside the panel, so the table follows the panel's width. */
.transition-clients { margin: 2px 0 14px; }
.transition-table { width: 100%; border-collapse: collapse; }
.transition-table th { text-align: left; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; padding: 7px 8px; border-bottom: 1px solid var(--line); }
.transition-table td { padding: 8px; border-bottom: 1px solid var(--soft-line); font-size: 11px; color: var(--ink); overflow-wrap: anywhere; }
.transition-table .status { justify-self: start; }
.register-toolbar { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 12px; }
/* The confidentiality screen: the body's own position, so the cards carry the facts and the text. */
.confidentiality-card { margin-bottom: 16px; padding-bottom: 6px; }
.confidentiality-card .case-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 14px 19px 4px; }
.confidentiality-card .case-facts dt { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.confidentiality-card .case-facts dd { margin: 4px 0 0; font-size: 12px; font-weight: 700; color: var(--ink); }
.confidentiality-card .case-facts dd, .confidentiality-card .case-facts dt { overflow-wrap: anywhere; }
.confidentiality-card .case-facts dd .status { white-space: normal; }
.confidentiality-card .case-facts dd .status { font-weight: 700; }
.confidentiality-text { margin: 0; padding: 12px 19px 14px; display: grid; gap: 10px; }
.confidentiality-text dt { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.confidentiality-text dd { margin: 3px 0 0; font-size: 11px; color: var(--ink); line-height: 1.55; overflow-wrap: anywhere; }
.confidentiality-card .scope-steps { margin: 0 19px 12px; }
.confidentiality-card .field-help, .confidentiality-card > p { margin: 0 19px 12px; }
.confidentiality-card .data-table-wrap { margin: 0 19px 14px; }
/* The page a person opens from their personal invitation link: no operator navigation, one form. */
body.commitment-mode .sidebar, body.commitment-mode .topbar, body.commitment-mode #connection-banner { display: none; }
body.commitment-mode .main { margin-left: 0; }
body.commitment-mode .content { max-width: 900px; margin: 0 auto; padding: 36px 24px 60px; }
@media (max-width: 900px) { .confidentiality-card .case-facts { grid-template-columns: 1fr 1fr; } }
.hidden-field { display: none !important; }
/* The panel's notice when there is nobody signed in: without it the navigation collapses to one
   entry and the platform reads as not responding rather than as signed out. */
.sidebar-notice { display: grid; gap: 7px; margin: 0 0 12px; padding: 11px 12px; border: 1px solid rgba(215,151,63,.45);
  border-radius: 8px; background: rgba(215,151,63,.10); }
.sidebar-notice strong { color: #f0c98a; font-size: 11.5px; }
.sidebar-notice span { color: #c8d5d4; font-size: 10.5px; line-height: 1.45; }
.sidebar-notice a { justify-self: start; display: inline-block; padding: 6px 12px; border-radius: 6px;
  background: var(--gold); color: #102a2a; font-size: 10.5px; font-weight: 700; text-decoration: none; }
.conditional-group { border: 1px dashed #b8cbc6; border-radius: 12px; background: #fbfcfb; padding: 14px; margin: -3px 0 15px; }
.transfer-group:before { content: "Transfer application details"; display: block; margin-bottom: 10px; color: var(--teal); font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.client-intake-form .form-section { margin-top: 22px; }
.client-intake-form .form-section:first-child { margin-top: 0; }
.client-intake-form .gate-checks { grid-template-columns: repeat(3, minmax(0,1fr)); }
.intake-readiness { position: sticky; top: 74px; z-index: 5; margin: -6px 0 18px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(5,20,18,.08); display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; }
.intake-readiness strong { color: var(--teal); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.declaration-text { margin: 4px 0 10px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--teal); border-radius: 10px; background: rgba(0,123,110,.04); color: var(--ink); font-size: 12px; line-height: 1.55; }
.completeness-card .readiness-score { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; font-size: 11px; }
.completeness-card .readiness-score.ready { background: rgba(0,123,110,.12); color: var(--teal); }
.completeness-card .readiness-score.pending { background: rgba(196,120,0,.14); color: #8a5300; }
.intake-readiness span { color: var(--muted); font-size: 11px; }
.intake-readiness b { color: #a66c16; font-size: 13px; }
.intake-readiness.ready { border-color: #b7ddd3; background: #f3fbf8; }
.intake-readiness.ready b { color: var(--teal); }
.scheme-detail-group { border-left: 3px solid var(--teal); padding-left: 14px; margin: 14px 0; }
.client-actions { margin: 22px 0 0; padding: 16px 0 0; }
.client-submit-result { margin: 14px 0 0; min-height: 20px; font-size: 12px; color: var(--muted); }
.client-submit-result.success { color: var(--teal); font-weight: 800; }
.client-submit-result.error { color: #a84d4d; font-weight: 800; }
@media (max-width: 1100px) { .metric-grid { grid-template-columns: repeat(2,1fr); }.dashboard-grid { grid-template-columns: 1fr; }.lower-grid { grid-template-columns: 1fr; }.source-summary { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 800px) { .sidebar { transform: translateX(-100%); transition: .3s; }.sidebar.open { transform: translateX(0); }.main { margin-left: 0; }.mobile-menu { display: block; }.breadcrumb span,.breadcrumb b { display:none; }.content { padding: 26px 18px 45px; }.topbar { padding: 0 18px; }.connection-banner { margin: 12px 18px 0; }.page-heading { align-items: flex-start; gap: 16px; }.page-heading .primary-button { white-space: nowrap; }.generic-layout { grid-template-columns: 1fr; }.table-toolbar { align-items: stretch; flex-direction: column; gap: 10px; }.search-box { width: 100%; }.filter-group { overflow-x: auto; }.support-card { display:none; } }
@media (max-width: 540px) { .metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.source-summary { grid-template-columns: 1fr 1fr; }.metric-card { padding: 14px; }.metric-card > strong { font-size: 23px; }.metric-trend { display: none; }.page-heading { flex-direction: column; }.page-heading .primary-button { width: 100%; }.attention-strip { align-items: flex-start; }.attention-strip button { display: none; }.readiness-content { flex-direction: column; }.pipeline-bars > div { grid-template-columns: 100px 1fr 20px; }.form-row { grid-template-columns: 1fr; gap: 0; }.modal { max-height: 94vh; overflow-y: auto; }.generic-layout .panel:first-child { min-height: 300px; padding: 28px; } }
@media (max-width: 1100px) {
  .assessment-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assessment-toolbar { grid-template-columns: minmax(200px,1fr) auto; }
  .assessment-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .assessment-scope-card { grid-template-columns: 1fr; }
  .assessment-scope-pills { justify-content: flex-start; }
  .assessment-source-coverage { justify-content: flex-start; }
}
@media (max-width: 800px) {
  .assessment-hero { grid-template-columns: 1fr; padding: 20px; }
  .assessment-progress-ring { width: 88px; height: 88px; }
  .assessment-chain { grid-template-columns: 1fr 1fr; }
  .assessment-chain > i { display: none; }
  .assessment-toolbar { grid-template-columns: 1fr; }
  .assessment-focus { justify-content: space-between; }
  .assessment-focus select { flex: 1; }
  .assessment-quality-alert { grid-template-columns: 28px 1fr; }
  .assessment-quality-alert .text-button { grid-column: 2; justify-self: start; padding: 0; }
  .assessment-open-inputs { grid-template-columns: 1fr; }
  .assessment-open-inputs .text-button { justify-self: start; white-space: normal; }
  .assessment-chapter > summary { grid-template-columns: 39px minmax(0,1fr) auto 14px; }
  .assessment-chapter-progress { display: none; }
  .assessment-card-grid { grid-template-columns: 1fr; }
  .assessment-reference-library > summary { grid-template-columns: 1fr 14px; }
  .assessment-reference-library > summary > span { display: none; }
}
@media (max-width: 540px) {
  .assessment-metrics, .assessment-chain { grid-template-columns: 1fr; }
  .assessment-actions { display: grid; grid-template-columns: 1fr; }
  .assessment-actions .secondary-button { width: 100%; }
  .assessment-chapter-count { display: none; }
}
[dir="rtl"] { direction: rtl; }
[dir="rtl"] .sidebar { left: auto; right: 0; }
[dir="rtl"] .main { margin-left: 0; margin-right: 288px; }
[dir="rtl"] .brand,
[dir="rtl"] .profile-mini,
[dir="rtl"] .profile-menu-head,
[dir="rtl"] .nav-search-status { text-align: right; }
[dir="rtl"] .nav-group-tab { text-align: right; }
[dir="rtl"] .nav-item { text-align: right; }
[dir="rtl"] .nav-item.active { box-shadow: inset -3px 0 0 var(--gold); }
[dir="rtl"] .attention-strip button { margin-left: 0; margin-right: auto; }
[dir="rtl"] .assessment-requirements-table th, [dir="rtl"] .assessment-requirements-table td,
[dir="rtl"] .assessment-traceability > div, [dir="rtl"] .assessment-chapter-name { text-align: right; }
[dir="rtl"] .assessment-chapter-progress small { text-align: left; }
[dir="rtl"] .drawer { right: auto; left: 0; }
@media (max-width: 800px) { [dir="rtl"] .sidebar { right: 0; left: auto; transform: translateX(100%); }.sidebar.open { transform: translateX(0); } [dir="rtl"] .main { margin-right: 0; } }

/* Structured intake rows (sites, shifts, exclusions) */
.structured-group { border-left: 3px solid var(--line); padding-left: 14px; margin: 16px 0; }
.structured-head { display: flex; align-items: center; gap: 12px; margin: 14px 0 8px; }
.structured-head strong { font-size: 14px; }
.structured-head span { color: var(--muted); font-size: 12px; margin-right: auto; }
.structured-row { border: 1px solid var(--soft-line); border-radius: 10px; padding: 12px; margin-bottom: 10px; display: grid; gap: 8px; background: var(--surface); }
.structured-row .form-row { gap: 10px; }
.structured-rows:empty::after { content: 'No rows added yet.'; display: block; color: var(--muted); font-size: 12px; padding: 6px 0; }

/* Drawer containment: the ordered workflow buttons must stay inside the panel. */
.detail-drawer { overflow: hidden; }
/* The drawer body is the scroll container of the case drawer; without a floor of zero a flex item cannot
   shrink below its content, and a long case pushed the last panels out of the drawer. */
.drawer-body { flex: 1 1 auto; min-height: 0; }
.drawer-body { flex: 1 1 auto; min-height: 0; overflow-x: hidden; }
.drawer-footer { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; }
.drawer-footer > button { width: 100%; min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; display: inline-flex; align-items: center; justify-content: center; gap: 6px; text-align: center; line-height: 1.25; }
.drawer-footer > .primary-button { grid-column: 1 / -1; }
.modal-actions { flex-wrap: wrap; }
.modal-actions > button { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.form-row > label { min-width: 0; }
.form-row input, .form-row select, .form-row textarea { min-width: 0; max-width: 100%; }
@media (max-width: 540px) {
  .detail-drawer { width: 100vw; }
  .drawer-footer { grid-template-columns: 1fr; }
}

/* Application review: the data the reviewer verifies before the next step. */
.review-data-panel { display: grid; gap: 10px; max-height: 340px; overflow-y: auto; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfb; }
.review-code { font-size: 12px; color: var(--muted); }
.review-code strong { color: var(--ink); font-size: 13px; }
.review-section { border: 1px solid var(--soft-line); border-radius: 8px; padding: 8px 10px; background: #fff; }
.review-section summary { cursor: pointer; font-size: 12px; font-weight: 700; }
.review-section dl { margin: 8px 0 0; display: grid; gap: 4px; }
.review-section dl div { display: grid; grid-template-columns: 170px 1fr; gap: 8px; }
.review-section dt { color: var(--muted); font-size: 11px; }
.review-section dd { margin: 0; font-size: 11px; overflow-wrap: anywhere; }
.review-section ul { margin: 8px 0 0 16px; padding: 0; }
.review-section li { font-size: 11px; color: var(--ink); margin-bottom: 4px; }
/* Printable controlled record. Hidden on screen; only this section prints. */
.print-document { display: none; }
.print-document .print-header { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid #111; padding-bottom: 10px; margin-bottom: 14px; }
.print-document h1 { font-size: 19px; margin: 0 0 4px; }
.print-document h2 { font-size: 13px; margin: 18px 0 6px; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid #999; padding-bottom: 3px; }
.print-document h3 { font-size: 12px; margin: 12px 0 4px; }
.print-document table { width: 100%; border-collapse: collapse; margin-bottom: 8px; }
.print-document th, .print-document td { border: 1px solid #999; padding: 5px 7px; font-size: 10.5px; text-align: left; vertical-align: top; }
.print-document th { background: #eee; width: 34%; font-weight: 700; }
.print-document .print-meta { font-size: 10.5px; }
.print-document .print-meta div { margin-bottom: 3px; }
.print-document .print-note { font-size: 10px; color: #333; margin: 6px 0 0; }
.print-document .print-signatures { margin-top: 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.print-document .print-blank { height: 26px; }
.heading-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.heading-actions select { max-width: 260px; }
/* Bare controls inside a page heading follow the same ERP control format as modals. */
.page-heading input:not([type="checkbox"]):not([type="radio"]), .page-heading select, .page-heading textarea {
  border: 1px solid var(--line); border-radius: 7px; padding: 11px 12px; font: inherit; font-size: 13px;
  color: var(--ink); background: #fff; outline: 0; min-width: 0;
}
.page-heading input:not([type="checkbox"]):focus, .page-heading select:focus, .page-heading textarea:focus {
  border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft);
}
.page-heading .heading-actions { align-items: stretch; }
.page-heading .heading-actions select, .page-heading .heading-actions .secondary-button, .page-heading .heading-actions .primary-button { min-height: 40px; }

/* Supplementary intake fields are collapsed by default so the applicant sees only the
   mandatory 9.1.1 minimum; InterCert expands and completes them at application review. */
.intake-supplementary { border: 1px solid var(--line); border-radius: 8px; margin: 14px 0; padding: 0 12px 12px; }
.intake-supplementary summary { cursor: pointer; font-weight: 700; font-size: 13px; color: var(--teal); padding: 12px 0; }
.intake-supplementary .form-section { margin-top: 0; }

/* Deployment notice: the shell is no-store, so a reload always loads the current build. */
.update-notice { position: fixed; right: 22px; bottom: 22px; z-index: 90; display: flex; align-items: center; gap: 16px; padding: 14px 16px; border-radius: 10px; background: #102a2a; color: #fff; box-shadow: 0 12px 34px rgba(8,25,23,.28); }
.update-notice strong { display: block; font-size: 13px; }
.update-notice span { display: block; font-size: 11.5px; color: #bcd3cf; margin-top: 3px; }
.update-notice .primary-button { background: #e5a94f; color: #102a2a; border: 0; white-space: nowrap; }

.print-document .print-signature { border-top: 1px solid #111; padding-top: 5px; font-size: 10.5px; }
.print-document .print-footer { margin-top: 20px; border-top: 1px solid #999; padding-top: 6px; font-size: 9.5px; color: #333; }

@media print {
  @page { size: A4 portrait; margin: 14mm 12mm; }
  body { background: #fff; }
  body > *:not(.print-document) { display: none !important; }
  .print-document { display: block !important; color: #000; background: #fff; font-family: -apple-system, "Segoe UI", Arial, sans-serif; }
  .print-document h2 { break-after: avoid; }
  .print-document table { break-inside: auto; }
  .print-document tr { break-inside: avoid; }
}

/* The position of the body against the requirements of the standard: what is met, what is outstanding
   and for whom, and the records that answer each requirement. Nothing in it is written by hand — it is
   read from the records when the screen is opened. */
.position-panel { border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; padding: 16px 18px; display: grid; gap: 12px; }
.position-panel.compact { padding: 12px 14px; background: #fff; }
.position-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; }
.position-head h3 { font-size: 14px; margin: 2px 0 5px; }
.position-summary { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; max-width: 780px; }
.position-list { display: grid; gap: 8px; }
.position-item { border: 1px solid var(--soft-line); border-radius: 10px; background: #fff; padding: 10px 12px; }
.position-item[open] { border-color: #cfe0dc; }
.position-item > summary { cursor: pointer; display: flex; gap: 10px; align-items: baseline; font-size: 11.5px; list-style: none; }
.position-item > summary::-webkit-details-marker { display: none; }
.position-item > summary::after { content: "+"; color: var(--muted); font-weight: 700; }
.position-item[open] > summary::after { content: "–"; }
.position-item .clause { font-weight: 800; color: var(--teal); font-size: 10px; letter-spacing: .06em; flex: 0 0 96px; }
.position-item .position-title { font-weight: 700; color: var(--ink); flex: 1 1 auto; }
.position-item .status { flex: 0 0 auto; white-space: nowrap; }
.position-count { flex: 0 0 auto; color: var(--muted); font-size: 10px; white-space: nowrap; }
/* The two actions belong on one line beside the heading, not stacked under it. */
.position-head .matrix-actions { flex: 0 0 auto; flex-wrap: nowrap; margin-top: 0; }
.position-head .matrix-actions .secondary-button { white-space: nowrap; }
.position-body { margin-top: 10px; display: grid; gap: 7px; padding-left: 106px; }
.position-body p { margin: 0; font-size: 11px; color: var(--ink); line-height: 1.55; }
.position-body .position-note { color: var(--muted); }
.position-record { color: var(--muted); font-size: 10px; }
.position-coverage { display: flex; flex-wrap: wrap; gap: 6px; }
.position-coverage span { border: 1px solid var(--soft-line); border-radius: 999px; padding: 3px 9px; font-size: 10px; color: var(--ink); background: #f7f9f8; }
.position-outstanding { margin: 0; padding-left: 18px; font-size: 11px; line-height: 1.5; }
.position-outstanding li { margin-bottom: 5px; }
.position-outstanding .text-button { padding: 1px 0; font-size: 11px; }
.position-consider { margin: 0; padding-left: 18px; font-size: 10.5px; color: var(--muted); line-height: 1.5; }
@media (max-width: 1100px) { .position-body { padding-left: 0; } .position-item .clause { flex: 0 0 auto; } }

/* Operational context: the context register is read with countries, entities, outsourcing and risk. */
.context-overview { display: grid; gap: 12px; }
.context-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; }
.context-metric { min-height: 112px; padding: 14px 15px; border: 1px solid var(--line); border-radius: 11px; background: #fff; display: flex; flex-direction: column; }
.context-metric strong { color: var(--ink); font: 700 25px/1 Manrope, sans-serif; }
.context-metric span { margin-top: 12px; color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.4; }
.context-metric small { margin-top: 4px; color: var(--muted); font-size: 10.5px; line-height: 1.4; }
.context-operating-panel { display: grid; grid-template-columns: minmax(280px, 1fr) minmax(0, 1.35fr); gap: 18px; align-items: center; padding: 18px 19px; border: 1px solid #cfe1dc; border-radius: 12px; background: linear-gradient(120deg, #f1f8f5, #fbfcfb); }
.context-operating-panel h3 { margin: 0; color: var(--ink); font-size: 17px; }
.context-operating-panel p:not(.eyebrow) { margin: 7px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.6; }
.context-operating-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.context-operating-link { min-width: 0; padding: 11px 12px; border: 1px solid #d6e3df; border-radius: 9px; background: #fff; color: var(--ink); text-align: left; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 10px; align-items: center; }
.context-operating-link strong { grid-row: span 2; color: var(--teal); font: 700 24px Manrope, sans-serif; }
.context-operating-link span { font-size: 11px; font-weight: 700; line-height: 1.35; }
.context-operating-link b { color: var(--teal); font-size: 9.5px; }
.context-operating-link:hover { border-color: #a9cdc5; background: #f8fcfa; }
.context-analysis-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 10px; }
.context-coverage { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }
.context-coverage span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; border: 1px solid var(--line); font-size: 9.5px; line-height: 1.35; }
.context-coverage span.covered { color: #226b5f; border-color: #bfd9d2; background: #eef8f4; }
.context-coverage span.needed { color: #8a5c1c; border-color: #ead1aa; background: #fff9ef; }
.context-coverage i { width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center; background: rgba(0,0,0,.055); font-style: normal; font-weight: 800; }
.context-gap-card { align-content: start; }
.context-gaps { margin: 5px 0 0; padding-left: 18px; display: grid; gap: 6px; color: #7f513d; font-size: 10.5px; line-height: 1.5; }
.context-clear { margin: 5px 0 0; color: #226b5f; font-size: 11px; line-height: 1.5; }
.context-library { border: 1px solid var(--line); border-radius: 12px; background: #fff; overflow: hidden; }
.context-library > summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 18px; }
.context-library > summary::-webkit-details-marker { display: none; }
.context-library > summary h3 { margin: 0; font-size: 17px; }
.context-library > summary > span { padding: 4px 9px; border-radius: 999px; background: var(--teal-soft); color: var(--teal); font-size: 10px; font-weight: 800; white-space: nowrap; }
.context-library-intro { margin: 0; padding: 0 18px 14px; color: var(--muted); font-size: 11.5px; line-height: 1.6; }
.context-consideration-list { border-top: 1px solid var(--soft-line); }
.context-consideration { border-bottom: 1px solid var(--soft-line); }
.context-consideration:last-child { border-bottom: 0; }
.context-consideration > summary { cursor: pointer; list-style: none; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: start; padding: 13px 18px; }
.context-consideration > summary::-webkit-details-marker { display: none; }
.context-consideration > summary:hover { background: #fafcfb; }
.context-consideration > summary div { display: grid; gap: 4px; }
.context-consideration > summary strong { color: var(--ink); font-size: 12px; }
.context-consideration > summary span { color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.context-consideration > summary b { padding: 3px 7px; border-radius: 999px; font-size: 9px; white-space: nowrap; }
.context-consideration > summary b.covered { color: #226b5f; background: #e9f6f1; }
.context-consideration > summary b.needed { color: #8b5d1b; background: #fff5e5; }
.context-consideration-body { padding: 0 18px 15px; display: grid; gap: 11px; background: #fbfcfb; }
.context-consideration-body > p { margin: 0; padding-top: 12px; color: #3f4d4a; font-size: 11px; line-height: 1.6; }
.context-consideration-parties { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.context-consideration-parties strong { margin-right: 4px; color: var(--ink); font-size: 10.5px; }
.context-consideration-parties span { padding: 3px 7px; border-radius: 999px; border: 1px solid #d7e3df; background: #fff; color: #45635d; font-size: 9.5px; }
.context-consideration-prompts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.context-consideration-prompts > div { padding: 10px 11px; border: 1px solid var(--soft-line); border-radius: 8px; background: #fff; }
.context-consideration-prompts strong { color: var(--ink); font-size: 10.5px; }
.context-consideration-prompts ul { margin: 6px 0 0; padding-left: 17px; display: grid; gap: 5px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.context-consideration-body > .secondary-button { justify-self: start; }
.context-register-table table { min-width: 1380px; }
.context-register-table th:nth-child(1) { width: 15%; }
.context-register-table th:nth-child(2) { width: 10%; }
.context-register-table th:nth-child(3) { width: 13%; }
.context-register-table th:nth-child(4) { width: 15%; }
.context-register-table th:nth-child(5) { width: 19%; }
.context-register-table th:nth-child(6) { width: 12%; }
.context-register-table th:nth-child(7) { width: 16%; }
.context-long-copy { display: block; color: #35423f; font-size: 11px; line-height: 1.55; }
.context-linked-risks { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; }
.context-unlinked { display: block; margin-bottom: 6px; color: #9a5b43; font-size: 10px; }
.context-register-table td .text-button { display: block; margin-top: 5px; padding: 1px 0; text-align: left; }
.risk-overview { display: grid; gap: 10px; padding: 16px; border: 1px solid #d5e3df; border-radius: 12px; background: linear-gradient(125deg, #f1f8f5, #fbfcfb); }
.risk-overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.risk-overview-head h3 { margin: 0; color: var(--ink); font-size: 17px; }
.risk-overview-head p:not(.eyebrow) { max-width: 860px; margin: 6px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.6; }
.risk-overview-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.risk-overview-metric { min-height: 98px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.risk-overview-metric.attention { border-color: #e7cab0; background: #fff9f2; }
.risk-overview-metric strong { display: block; color: var(--ink); font: 700 23px/1 Manrope, sans-serif; }
.risk-overview-metric span { display: block; margin-top: 9px; color: var(--ink); font-size: 10.5px; font-weight: 700; line-height: 1.35; }
.risk-overview-metric small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.risks-register table { min-width: 1260px; }
@media (max-width: 1200px) {
  .context-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .context-operating-panel, .context-analysis-grid { grid-template-columns: 1fr; }
  .risk-overview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .context-consideration-prompts { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .context-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .context-operating-links { grid-template-columns: 1fr; }
  .risk-overview-head { flex-direction: column; }
  .risk-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Arabic type sizes: Arabic ascenders, descenders and diacritics need more size and line height
   than Latin microcopy. The existing font stack is retained; only the size scale changes. */
[dir="rtl"] body { font-size: var(--erp-ar-control); line-height: var(--erp-ar-leading); }

/* Navigation and shell. */
[dir="rtl"] :is(.nav-item, .nav-search input) { font-size: var(--erp-ar-control); }
[dir="rtl"] :is(.nav-group-tab, .nav-search-status, .brand span, .support-card small, .profile-mini span) {
  font-size: var(--erp-ar-meta);
  line-height: 1.5;
}
[dir="rtl"] :is(.nav-group-count, .nav-item b) { font-size: var(--erp-ar-caption); }
[dir="rtl"] :is(.help-button, .language-button, .breadcrumb) { font-size: var(--erp-ar-control); }
[dir="rtl"] :is(.support-card strong, .profile-mini strong) { font-size: var(--erp-ar-title); }
[dir="rtl"] :is(.profile-menu-head strong, .profile-menu-head span, .profile-menu > button) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
  text-align: right;
}
[dir="rtl"] .profile-mini button { margin-left: 0; margin-right: auto; }
[dir="rtl"] :is(.connection-banner strong, .connection-banner span, .connection-banner button) {
  font-size: var(--erp-ar-meta);
  line-height: 1.5;
}

/* Page copy, actions and status text. */
[dir="rtl"] :is(.primary-button, .secondary-button, .text-button, .filter, .record-transition) {
  font-size: var(--erp-ar-control);
  line-height: 1.45;
}
[dir="rtl"] :is(.page-heading > div > p:last-child, .attention-strip > div:nth-child(2),
  .metric-card > span, .empty-feature p, .register-empty, .register-error, .register-empty-state p) {
  font-size: var(--erp-ar-body);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.eyebrow, .attention-strip span, .attention-strip button, .metric-trend,
  .metric-card > small, .task-tabs button, .filter, .data-source, .auth-link) {
  font-size: var(--erp-ar-meta);
  line-height: 1.5;
}
[dir="rtl"] :is(.status, .task-tabs b, .date-box span) { font-size: var(--erp-ar-caption); }

/* Dashboard cards and schedules. */
[dir="rtl"] :is(.task-copy strong, .schedule-copy > strong, .client-cell strong, .generic-record strong) {
  font-size: var(--erp-ar-title);
  line-height: 1.5;
}
[dir="rtl"] :is(.task-copy span, .task-due strong, .task-due span, .live-empty, .schedule-copy > span,
  .schedule-copy small, .pipeline-bars span, .pipeline-bars strong, .chart-note,
  .readiness-legend span, .readiness-legend strong, .mini-stats span, .activity-feed span) {
  font-size: var(--erp-ar-meta);
  line-height: 1.5;
}
[dir="rtl"] :is(.generic-record small, .client-cell span, .activity-feed small) {
  font-size: var(--erp-ar-caption);
  line-height: 1.5;
}

/* Registers, evidence and clause traceability. */
[dir="rtl"] :is(.erp-register th, .data-table th, .transition-table th,
  .erp-register table.matrix-grid th) {
  font-size: var(--erp-ar-caption);
  line-height: 1.45;
  letter-spacing: 0;
}
[dir="rtl"] :is(.erp-register td, .data-table td, .transition-table td,
  .erp-register table.matrix-grid td) {
  font-size: var(--erp-ar-table);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.erp-register td small, .erp-register th small,
  .register-main small, .client-cell span, .evidence-card span, .ledger-list small) {
  font-size: var(--erp-ar-meta);
  line-height: 1.55;
}
[dir="rtl"] :is(.register-main strong, .evidence-card strong, .ledger-list > strong,
  .ledger-list span, .generic-record strong) {
  font-size: var(--erp-ar-title);
  line-height: 1.5;
}
[dir="rtl"] :is(.evidence-card strong, .ledger-list b) { line-height: 1.5; }
[dir="rtl"] :is(.evidence-card, .ledger-list) { gap: 8px; }

/* Certificates, marks, technical areas and requirement cards. */
[dir="rtl"] :is(.mark-hero p:not(.eyebrow), .mark-rule-card p, .mark-rule-card strong,
  .requirement-card, .requirement-card > strong, .requirement-card > span,
  .requirement-detail > summary, .requirement-group h4, .requirement-group h5,
  .requirement-group li, .evaluation-statement, .evaluation-statement small,
  .evaluation-statement .threshold, .relation-value) {
  font-size: var(--erp-ar-body);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.mark-metrics span, .mark-rule-card > span, .requirement-threshold,
  .requirement-group li small, .relation-value em, .evaluation-statement strong,
  .structured-head span, .structured-rows:empty::after) {
  font-size: var(--erp-ar-meta);
  line-height: 1.5;
  letter-spacing: 0;
}
[dir="rtl"] :is(.mark-rule-card strong, .structured-head strong) { font-size: var(--erp-ar-title); }
[dir="rtl"] :is(.criteria-index-head h3, .criteria-detail-head h3,
  .criteria-index-head > span, .criteria-detail-head p:last-child,
  .criteria-filter-bar label, .criteria-filter-bar input, .criteria-filter-bar select,
  .criteria-index-table th, .criteria-index-table td, .criteria-scheme-list span,
  .criteria-count, .criteria-detail-loading, .criteria-requirements-table td,
  .criteria-requirements-table td:nth-child(4) small, .criteria-category,
  .criteria-detail-head .secondary-button) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
  letter-spacing: 0;
}
[dir="rtl"] .criteria-index-table tbody tr.selected td:first-child {
  box-shadow: inset -3px 0 0 var(--teal);
}

/* Operational context additions follow the Arabic size scale without changing the font. */
[dir="rtl"] :is(.context-metric span, .context-operating-panel h3, .context-operating-link span,
  .context-coverage span, .context-gaps, .context-clear, .context-long-copy,
  .context-unlinked, .context-register-table th, .context-register-table td,
  .context-register-table td .text-button) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
  letter-spacing: 0;
}
[dir="rtl"] :is(.context-metric small, .context-operating-panel p:not(.eyebrow),
  .context-operating-link b) {
  font-size: var(--erp-ar-body);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.context-operating-link, .context-register-table td .text-button) {
  text-align: right;
}
[dir="rtl"] :is(.evaluation-stage-head strong, .evaluation-stage-head small,
  .evaluation-progress strong, .evaluation-progress span, .evaluation-smart-head strong,
  .evaluation-smart-head span, .evaluation-group h4, .evaluation-group > header p,
  .evaluation-group-actions label, .evaluation-group-actions input, .evaluation-group-actions select,
  .evaluation-group-actions .secondary-button, .evaluation-group details > summary,
  .evaluation-requirement-copy p, .evaluation-requirement-copy small,
  .evaluation-requirement-copy b, .evaluation-requirement-grid label,
  .evaluation-requirement-grid input, .evaluation-requirement-grid select) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
  letter-spacing: 0;
}
[dir="rtl"] :is(.evaluation-stage-head strong, .evaluation-group h4,
  .evaluation-requirement-copy p) {
  font-size: var(--erp-ar-title);
}
[dir="rtl"] :is(.context-library > summary h3, .context-library-intro,
  .context-consideration > summary strong, .context-consideration > summary span,
  .context-consideration > summary b, .context-consideration-body > p,
  .context-consideration-parties strong, .context-consideration-parties span,
  .context-consideration-prompts strong, .context-consideration-prompts ul,
  .context-consideration-body .secondary-button) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.risk-overview-head h3, .risk-overview-head p:not(.eyebrow),
  .risk-overview-metric span, .risk-overview-metric small, .risks-register th,
  .risks-register td) {
  font-size: var(--erp-ar-meta);
  line-height: var(--erp-ar-leading);
  letter-spacing: 0;
}

/* Accreditation assessment. */
[dir="rtl"] :is(.assessment-hero p, .assessment-scope-card p, .assessment-requirement-text,
  .assessment-requirements-table td:first-child > p, .assessment-statement p,
  .assessment-conclusion p, .assessment-metrics article p, .position-summary, .position-body p,
  .position-outstanding li, .position-consider) {
  font-size: var(--erp-ar-body);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.assessment-kicker, .assessment-meta, .assessment-progress-ring span,
  .assessment-scope-pills span, .assessment-source-coverage span, .assessment-chain strong,
  .assessment-chain span, .assessment-quality-alert strong, .assessment-quality-ok strong,
  .assessment-quality-alert small, .assessment-quality-ok small, .assessment-open-inputs strong,
  .assessment-open-inputs small, .assessment-metrics article > span, .assessment-conclusion > span,
  .assessment-focus, .assessment-focus select, .assessment-actions .secondary-button,
  .assessment-chapter-name strong, .assessment-chapter-name small, .assessment-chapter-progress small,
  .assessment-chapter-count, .assessment-chapter-kpis span, .assessment-card-panel h4,
  .assessment-requirement-head strong, .assessment-requirement-head span,
  .assessment-source-detail, .assessment-row-notes summary, .assessment-row-notes p,
  .assessment-traceability > div > span:first-child, .assessment-traceability strong,
  .assessment-evidence-chip, .assessment-reference-chip, .assessment-empty-chip,
  .assessment-gap-note, .assessment-record-meta, .assessment-row-warning, .assessment-row-comment,
  .assessment-reference-library > summary strong, .assessment-reference-library > summary > span,
  .position-head h3, .position-item > summary, .position-item .clause, .position-count,
  .position-record, .position-coverage span, .position-outstanding .text-button) {
  font-size: var(--erp-ar-meta);
  line-height: 1.55;
  letter-spacing: 0;
}
[dir="rtl"] :is(.assessment-scope-card > div:first-child > strong, .assessment-chain strong,
  .assessment-metrics article > strong small, .assessment-chapter-name strong,
  .assessment-requirement-head strong, .assessment-reference-library > summary strong,
  .position-head h3, .position-item > summary) {
  font-size: var(--erp-ar-title);
}
[dir="rtl"] :is(.assessment-requirement-card, .assessment-card-panel, .position-item) { overflow-wrap: anywhere; }

/* Forms, dialogs and person-authorisation screens. */
[dir="rtl"] :is(.modal-header p:last-child, .modal label, .modal input, .modal select, .modal textarea,
  .client-intake-form label, .client-intake-form input, .client-intake-form select,
  .client-intake-form textarea, .page-heading input:not([type="checkbox"]):not([type="radio"]),
  .page-heading select, .page-heading textarea, .form-section strong, .form-section span,
  .form-notice p, .gate-checks label, .record-checks legend, .record-checks label.check,
  .structured-head strong, .structured-row, .field-help, .declaration-text,
  .client-submit-result, .review-code, .review-section summary, .review-section dt,
  .review-section dd, .review-section li, .intake-readiness strong, .intake-readiness span,
  .completeness-card .readiness-score) {
  font-size: var(--erp-ar-control);
  line-height: 1.55;
}
[dir="rtl"] :is(.form-section span, .form-notice p, .field-help, .declaration-text,
  .review-section dt, .review-section dd, .review-section li, .intake-readiness span,
  .structured-head span, .client-submit-result) {
  font-size: var(--erp-ar-body);
  line-height: var(--erp-ar-leading);
}
[dir="rtl"] :is(.modal input, .modal select, .modal textarea, .client-intake-form input,
  .client-intake-form select, .client-intake-form textarea, .page-heading input,
  .page-heading select, .page-heading textarea) {
  min-height: 44px;
}

/* Drawer workflow and confidentiality registers. */
[dir="rtl"] :is(.drawer-header > div > span, .case-state span, .case-state small,
  .gate-progress span, .gate-progress small, .drawer-section h3 span, .gate-list strong,
  .gate-list small, .case-profile dt, .case-profile dd, .confidentiality-card .case-facts dt,
  .confidentiality-card .case-facts dd, .confidentiality-text dt, .confidentiality-text dd,
  .source-summary span, .source-summary small, .legend-note, .source-name strong,
  .source-name span, .review-state, .source-guidance strong, .source-guidance p) {
  font-size: var(--erp-ar-meta);
  line-height: 1.55;
}
[dir="rtl"] :is(.case-state strong, .gate-list strong, .case-profile dd,
  .confidentiality-card .case-facts dd, .source-name strong, .source-guidance strong) {
  font-size: var(--erp-ar-title);
}
[dir="rtl"] :is(.confidentiality-text dt, .confidentiality-card .case-facts dt) {
  font-size: var(--erp-ar-caption);
  letter-spacing: 0;
}

/* Let Arabic labels wrap naturally instead of being ellipsised or clipped as compact Latin text. */
[dir="rtl"] :is(.task-copy strong, .schedule-copy > strong, .register-main small,
  .assessment-requirement-head span, .status) {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
}
