:root {
  --bg:#f8f8f6;
  --paper:#ffffff;
  --ink:#292d2b;
  --muted:#656b67;
  --line:#dedfda;
  --accent:#354b40;
  --soft:#e9eeea;
  --attention:#85531C;
  font-family:'Source Sans 3',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);
  font-size:16px;
  line-height:1.5}
* {
  box-sizing:border-box}
body {
  margin:0;
  background:var(--bg)}
a {
  color:inherit;
  text-decoration:none}
a:hover {
  text-decoration:underline}
button,input,textarea,select {
  font:inherit;
  color:inherit}
button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  min-height:44px;
  padding:10px 16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:transparent;
  font-weight:500;
  cursor:pointer;
  text-align:center}
button:hover,.button:hover {
  background:var(--soft);
  text-decoration:none}
.primary {
  background:var(--accent);
  border-color:var(--accent);
  color:#ffffff}
.primary:hover {
  background:#293d33}
.text-button {
  border-color:transparent;
  padding:8px;
  color:var(--muted);
  font-size:13px}
.text-button:hover {
  color:var(--ink)}
button:disabled {
  opacity:.6;
  cursor:wait}
:focus-visible {
  outline:2px solid #354b40;
  outline-offset:2px}
h1,h2,h3,p {
  margin:0}
h1,h2,.wordmark {
  font-family:'Source Sans 3',sans-serif;
  font-weight:600}
h1 {
  font-size:32px;
  line-height:1.25;
  letter-spacing:-.5px;
  max-width:780px}
h2 {
  font-size:26px;
  line-height:1.3;
  letter-spacing:-.3px}
h3 {
  font-size:16px;
  font-weight:550}
p {
  margin:12px 0}
small {
  display:block;
  color:var(--muted);
  font-size:12px;
  line-height:1.6}
.muted {
  color:var(--muted);
  font-size:14px}
.eyebrow {
  font-size:11px;
  letter-spacing:1.7px;
  color:var(--muted);
  font-weight:550;
  margin-bottom:18px}
.intro {
  font-size:16px;
  color:var(--muted);
  max-width:620px;
  margin:18px 0 40px}
.wordmark {
  font-size:32px;
  letter-spacing:.04em;
  line-height:1}
.wordmark:hover {
  text-decoration:none}
.rail {
  position:fixed;
  inset:0 auto 0 0;
  width:220px;
  display:flex;
  flex-direction:column;
  padding:36px 24px;
  background:#eeefeb;
  border-right:1px solid var(--line)}
.rail nav {
  display:flex;
  flex-direction:column;
  gap:9px;
  margin-top:42px}
.rail nav a {
  display:flex;
  gap:14px;
  align-items:center;
  min-height:44px;
  padding:10px 8px;
  font-size:13px;
  color:var(--muted);
  border-radius:8px}
.rail nav a span {
  font-size:10px;
  font-variant-numeric:tabular-nums;
  color:var(--muted)}
.rail nav a[aria-current] {
  background:var(--soft);
  color:var(--accent);
  font-weight:600}
.rail-home {
  margin-top:auto;
  font-size:12px;
  color:var(--muted);
  padding:12px 0}
.workspace {
  margin-left:220px}
.topline {
  height:79px;
  padding:18px 40px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:12px}
.topline>span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:70%}
.topline button {
  white-space:nowrap}
.content {
  max-width:1440px;
  padding:40px 40px 80px;
  margin:0 auto}
.content:has(.results-table) {
  max-width:1440px}
.back-link {
  display:inline-block;
  font-size:13px;
  color:var(--muted);
  margin-bottom:25px}
.section-bar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:13px;
  color:var(--muted);
  margin:26px 0 16px}
.section-bar .eyebrow {
  margin:0}
.section-bar a {
  min-height:44px;
  display:flex;
  align-items:center}
.section-bar button {
  font-size:12px}
.rule {
  height:1px;
  background:var(--line);
  margin:30px 0}
form {
  max-width:750px}
fieldset {
  padding:0;
  margin:0;
  border:0;
  min-width:0}
.field {
  margin:24px 0}
.field>label {
  font-size:14px;
  font-weight:550;
  display:block;
  margin-bottom:8px}
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea {
  width:100%;
  max-width:100%;
  border:1px solid #a5aaa3;
  border-radius:8px;
  background:var(--paper);
  padding:11px 12px;
  min-height:46px;
  line-height:1.55}
.field textarea {
  resize:vertical;
  min-height:90px}
.field input[type=checkbox],.field input[type=radio] {
  width:18px;
  height:18px;
  flex:0 0 18px;
  accent-color:var(--accent)}
.field div:has(>label>input[type=checkbox])>label,.field div:has(>label>input[type=radio])>label {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  font-size:14px}
.field small {
  margin-top:8px}
.field-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px}
.form-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid var(--line);
  margin-top:32px;
  padding-top:22px;
  flex-wrap:wrap}
.form-actions [data-save-state] {
  font-size:12px;
  color:var(--muted);
  flex:1;
  min-width:160px}
.actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap}
.actions button {
  font-size:13px}
.page-actions {
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:24px;
  margin-top:36px;
  font-size:14px}
.next-link {
  display:inline-block;
  font-size:14px;
  margin-top:24px}
.notice {
  border-left:2px solid #B58640;
  background:#FFF2DD;
  padding:12px 16px;
  font-size:13px;
  color:#85531C;
  margin:20px 0}
.notice p {
  margin:8px 0}
.notice a {
  text-decoration:underline}
.errorlist {
  color:#943d33;
  font-size:13px;
  padding-left:20px}
.saved {
  font-size:13px;
  color:#237451;
  margin:20px 0}
.empty {
  padding:40px 0;
  color:var(--muted)}
details {
  border-top:1px solid var(--line);
  padding:16px 0;
  margin-top:10px}
summary {
  cursor:pointer;
  font-size:14px;
  min-height:30px}
details>p,details>dl {
  font-size:14px}
details article {
  border-top:1px solid var(--line);
  padding:22px 0;
  overflow-wrap:anywhere}
.audit {
  margin-top:45px;
  color:var(--muted)}
.audit details {
  color:var(--ink)}
.brief-facts,dl {
  display:grid;
  grid-template-columns:130px minmax(0,1fr);
  gap:12px;
  font-size:14px;
  margin:24px 0}
.brief-facts dt,dt {
  color:var(--muted)}
dd {
  margin:0;
  overflow-wrap:anywhere}
.requirement-title {
  font-size:26px;
  line-height:1.35;
  max-width:830px;
  letter-spacing:-.6px}
.requirement-list {
  border-top:1px solid var(--line)}
.requirement-row {
  display:grid;
  grid-template-columns:26px minmax(0,1fr) auto 15px;
  gap:18px;
  align-items:start;
  padding:26px 4px;
  border-bottom:1px solid var(--line)}
.requirement-row:hover {
  background:#e9eeea;
  text-decoration:none}
.row-number {
  font-size:11px;
  color:var(--muted);
  padding-top:5px}
.row-body strong {
  font-weight:500;
  font-size:16px;
  line-height:1.55;
  display:block}
.row-body small {
  margin-top:7px}
.row-status {
  max-width:150px;
  font-size:12px;
  color:var(--muted)}
.status {
  display:inline-flex;
  gap:7px;
  align-items:baseline;
  font-size:12px;
  line-height:1.5;
  color:var(--muted)}
.status:before {
  content:'';
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#949a8c;
  flex:0 0 6px;
  transform:translateY(-1px)}
.status.covered:before {
  background:#237451}
.status.gap:before {
  background:#85531C}
.status.unknown:before {
  background:#93948c}
.scope-summary {
  border-top:1px solid var(--line);
  padding-top:26px}
.scope-summary>p {
  color:var(--muted);
  font-size:14px}
.scope-line {
  display:flex;
  justify-content:space-between;
  gap:40px;
  border-bottom:1px solid var(--line);
  padding:20px 0;
  font-size:14px}
.scope-line>span:first-child {
  color:var(--muted);
  min-width:135px}
.scope-summary button {
  margin-top:24px}
.drawer {
  position:fixed;
  inset:0 0 0 auto;
  margin:0;
  width:min(640px,95vw);
  max-width:none;
  height:100dvh;
  max-height:100dvh;
  border:0;
  border-left:1px solid var(--line);
  background:var(--paper);
  padding:30px 32px;
  box-shadow:-8px 0 40px #24292012;
  overflow-y:auto;
  color:var(--ink)}
.drawer::backdrop {
  background:#24292252;
  backdrop-filter:blur(2px)}
.drawer-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:26px}
.drawer-heading button {
  font-size:12px}
.drawer p {
  font-size:14px;
  overflow-wrap:anywhere}
.drawer .hash {
  font-family:monospace;
  font-size:11px}
.source-image {
  width:100%;
  height:auto;
  display:block;
  margin-top:26px}
blockquote,.arabic {
  font-family:'Noto Sans Arabic','Geeza Pro',Tahoma,sans-serif;
  font-size:18px;
  line-height:2.1;
  overflow-wrap:anywhere}
blockquote {
  margin:26px 0;
  padding:20px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)}
.saved-assessment {
  margin-top:40px;
  padding-top:25px;
  border-top:1px solid var(--line)}
.results-head,.result-grid {
  display:grid;
  grid-template-columns:minmax(230px,2.5fr) minmax(120px,1fr) minmax(100px,1fr) minmax(110px,1fr);
  gap:22px}
.results-head {
  font-size:11px;
  color:var(--muted);
  border-bottom:1px solid var(--line);
  padding:14px 0}
.result-grid {
  padding:23px 0 10px;
  font-size:13px}
.result-grid>div {
  min-width:0;
  overflow-wrap:anywhere}
.result-entry {
  border-bottom:1px solid var(--line)}
.requirement-link {
  font-size:14px;
  font-weight:500}
.result-grid small {
  margin-top:8px}
.attention-text {
  color:var(--attention)}
.result-details {
  border:0;
  padding:6px 0 19px;
  margin:0}
.result-details>summary {
  font-size:12px;
  color:var(--muted);
  text-align:right}
.result-details[open]>summary {
  text-align:left;
  margin:10px 0 20px}
.result-details>blockquote {
  max-width:850px}
.result-boundary {
  margin-top:28px;
  font-size:12px;
  color:var(--muted)}
.export-menu {
  position:relative;
  border:0;
  margin:0;
  padding:0}
.export-menu a {
  display:block;
  font-size:13px;
  padding:10px 0}
.home header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:40px 6vw}
.home main {
  max-width:1040px;
  margin:80px auto;
  padding:0 36px}
.home h1 {
  font-size:55px}
.home .intro {
  margin-bottom:55px}
.current-assessment {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:44px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:36px 0}
.current-assessment h2 {
  font-size:28px;
  max-width:650px}
.current-assessment p {
  color:var(--muted);
  font-size:13px}
.current-assessment .button {
  flex-shrink:0;
  font-size:13px}
.other-runs {
  margin-top:50px;
  border:0}
.list-link {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:20px 0;
  border-bottom:1px solid var(--line);
  font-size:14px}
.skip {
  position:fixed;
  left:220px;
  top:-100px;
  z-index:100;
  background:var(--paper);
  padding:12px}
.skip:focus {
  top:10px}
.draft-notice {
  font-size:13px;
  color:var(--muted);
  margin:20px 0}
.draft-notice button {
  font-size:12px;
  min-height:36px}
.draft-notice pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font:inherit}
.draft-notice details {
  margin-bottom:12px}
[hidden] {
  display:none!important}

@media(max-width:1000px) {
  .rail {
  width:200px;
  padding:30px 18px}
.workspace {
  margin-left:200px}
.content {
  padding:42px 32px 70px}
.topline {
  padding:16px 26px}
.results-head {
  display:none}
.result-grid {
  grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.result-grid>div:nth-child(3):before {
  content:'Possible impact';
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-bottom:5px}
.result-grid>div:nth-child(4):before {
  content:'Follow-up';
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-bottom:5px}
.requirement-row {
  grid-template-columns:22px minmax(0,1fr) 15px}
.row-status {
  grid-column:2;
  max-width:none}
.requirement-row>span:last-child {
  grid-column:3;
  grid-row:1}
}

@media(max-width:680px) {
  .rail {
  position:static;
  width:auto;
  padding:22px 20px 0;
  border-right:0;
  border-bottom:1px solid var(--line)}
.rail .wordmark {
  font-size:32px}
.rail nav {
  flex-direction:row;
  overflow-x:auto;
  margin-top:24px;
  gap:4px;
  padding-bottom:10px}
.rail nav a {
  font-size:12px;
  white-space:nowrap;
  padding:8px}
.rail nav a span {
  display:none}
.rail-home {
  display:none}
.workspace {
  margin-left:0}
.topline {
  height:58px;
  padding:8px 20px;
  font-size:11px;
  gap:6px}
.topline button {
  font-size:11px}
.content {
  padding:36px 24px 60px}
h1 {
  font-size:28px}
.requirement-title {
  font-size:26px}
.intro {
  font-size:14px;
  margin-bottom:28px}
.field-pair {
  grid-template-columns:1fr;
  gap:0}
.form-actions {
  align-items:flex-start;
  flex-direction:column}
.form-actions .primary {
  width:100%}
.actions {
  width:100%}
.drawer {
  width:100vw;
  padding:24px 22px}
.drawer-heading h2 {
  font-size:23px}
.scope-line {
  flex-direction:column;
  gap:8px}
.home header {
  padding:28px 24px}
.home main {
  margin:52px auto;
  padding:0 24px}
.home h1 {
  font-size:42px}
.current-assessment {
  flex-direction:column;
  align-items:flex-start;
  gap:20px}
.current-assessment h2 {
  font-size:25px}
.current-assessment .button {
  width:100%}
.brief-facts,dl {
  grid-template-columns:90px minmax(0,1fr);
  gap:10px;
  font-size:13px}
.skip {
  left:20px}
.result-grid {
  gap:20px 16px}
.result-grid>div:first-child {
  grid-column:1/-1}
.result-grid>div:nth-child(2) {
  grid-column:1/-1}
.row-body strong {
  font-size:14px}
.section-bar {
  align-items:flex-start}
.section-bar .eyebrow {
  margin-top:11px}
}

@media(prefers-reduced-motion:reduce) {
  * {
  scroll-behavior:auto!important}
}


/* Regulation-first navigation and source-oriented review. */
.nav-group { margin: 27px 8px 5px; font-size: 12px; letter-spacing: 1.1px; color: var(--muted); font-weight: 600; }
.rail nav a { font-size: 16px; }
.nav-explanation { font-size: 14px; color: var(--muted); margin: 12px 8px; }
.rail { background: rgba(237, 242, 250, .94); }
.topline { font-size: 14px; }
.eyebrow { font-size: 13px; letter-spacing: 1.1px; }
small, .muted, .status, .row-status { font-size: 14px; }
.field > label, summary, details > p, details > dl, .brief-facts, dl { font-size: 16px; }
.field div:has(>label>input[type=checkbox]) > label { font-size: 16px; }
.form-actions [data-save-state] { font-size: 14px; }
.current-assessment, .export-choice { background: var(--paper); padding: 28px; border: 1px solid var(--line); border-radius: 12px; }
.export-choice h2 { font-size: 24px; }
.other-exports { margin-top: 36px; }
.other-exports h2 { font-size: 20px; margin-bottom: 18px; }
.coverage { margin: 25px 0; border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.coverage > p { font-size: 16px; }
.coverage details { border: 0; padding: 0; }
.coverage details p { color: var(--muted); }
.review-filter { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 20px 0; max-width: none; }
.review-filter label { font-size: 15px; }
.review-filter select { padding: 9px 12px; min-height: 44px; border: 1px solid #a5aaa3; border-radius: 8px; background: var(--paper); }
.requirement-list { border: 0; }
.requirement-group { margin: 20px 0; border: 1px solid var(--line); border-radius: 12px; padding: 0; overflow: clip; background: var(--paper); }
.requirement-group > summary { padding: 18px 22px; font-weight: 600; background: #eeefeb; }
.requirement-group > summary > span:last-child { float: right; font-size: 14px; font-weight: 400; color: var(--muted); }
.requirement-row { padding: 22px; margin: 0; }
.requirement-row:last-child { border-bottom: 0; }
.requirement-row[data-selected] { background: var(--soft); box-shadow: inset 0 0 0 1px #c8cbc5; }
.row-body strong { font-size: 18px; font-weight: 500; }
.row-number { font-size: 14px; }
.review-location { margin-top: 0; }
.review-location .back-link { margin: 0; }
.focused-review { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.focused-review.evidence-closed { grid-template-columns: minmax(0, 1fr); max-width: 850px; }
.requirement-work { min-width: 0; }
.evidence-pane { min-width: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 24px; box-shadow: 0 6px 24px #273D6210; position: sticky; top: 24px; max-height: calc(100dvh - 48px); overflow-y: auto; }
.evidence-pane > button:first-child { margin-bottom: 28px; }
.evidence-pane h2 { font-size: 22px; }
.evidence-pane .muted { font-size: 15px; }
.evidence-pane blockquote { border: 0; background: #f3f4f0; padding: 20px; border-radius: 8px; }
.evidence-pane .eyebrow { margin-top: 0; }
.requirement-work form { max-width: none; }
.requirement-work .section-bar { margin-top: 0; }
.requirement-work .form-actions { align-items: flex-start; flex-direction: column; }
.requirement-work .actions button { font-size: 16px; }
.secondary-actions { padding: 0; margin: 0; border: 0; }
.secondary-actions summary { padding: 10px 12px; }
.secondary-actions[open] { padding: 0 0 10px; }
.secondary-actions button { display: block; }
.jurisdiction { display: inline-flex; align-items: center; gap: 10px; }
.jurisdiction img { width: 26px; height: 18px; object-fit: cover; border-radius: 2px; }
@media (max-width: 1150px) {
  .focused-review { grid-template-columns: minmax(0, 1fr); }
  .evidence-pane { position: static; max-height: none; margin-top: 15px; }
}
@media (max-width: 680px) {
  .rail nav { flex-wrap: wrap; overflow: visible; gap: 4px 8px; margin-top: 20px; }
  .rail nav a { font-size: 15px; }
  .nav-group { flex-basis: 100%; margin: 12px 8px 0; font-size: 11px; }
  .nav-explanation { flex-basis: 100%; }
  .rail-home { display: none; }
  .requirement-group > summary > span:last-child { float: none; display: block; margin-left: 15px; }
  .requirement-row { padding: 18px 15px; }
  .row-body strong { font-size: 16px; }
  .evidence-pane { padding: 20px; }
  .evidence-pane .actions { display: flex; flex-wrap: wrap; }
  .content { padding: 30px 20px 60px; }
}
@media (prefers-reduced-transparency: reduce) {
  .rail { background: #eeefeb; }
  .drawer::backdrop { backdrop-filter: none; }
}
.wordmark { display: inline-block; font-weight: 600; font-size: 32px; letter-spacing: -.8px; }
.page-picker { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0; }
.page-picker .button { min-width: 44px; }
.source-text { font-family: 'Source Sans 3', 'Noto Sans Arabic', sans-serif; font-size: 18px; line-height: 1.8; overflow-wrap: anywhere; }
.hash { overflow-wrap: anywhere; font-size: 13px; color: var(--muted); }
.upload-entry { margin: 32px 0; padding: 22px 24px; border: 1px solid #a5aaa3; border-radius: 12px; background: var(--paper); }
.upload-entry > summary { color: var(--accent); font-size: 20px; font-weight: 600; min-height: 44px; display: flex; align-items: center; justify-content: space-between; }
.upload-entry > summary:hover { text-decoration: underline; }
.upload-entry[open] > summary { margin-bottom: 14px; }
.upload-entry form { margin-top: 20px; }

/* Navigation hierarchy: global library, active regulation, optional company work. */
.rail nav { gap: 24px; }
.nav-global { padding-bottom: 18px; border-bottom: 1px solid #dedfda; }
.rail nav a { border: 1px solid transparent; }
.rail nav a[aria-current] { border-color: #c8cbc5; background: #e9eeea; box-shadow: 0 1px 3px #294E8610; }
.nav-section { min-width: 0; }
.nav-regulation { padding: 14px 8px 8px; margin: 0 -8px; border-radius: 10px; background: #f8f8f6; }
.nav-section .nav-group { margin: 0 8px 9px; color: #545d55; font-size: 14px; font-weight: 600; letter-spacing: 0; line-height: 1.4; }
.nav-company { border-top: 1px solid #dedfda; padding-top: 22px; }
@media (max-width: 680px) {
  .rail nav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px 14px; padding-bottom: 20px; }
  .nav-global { grid-column: 1 / -1; padding-bottom: 12px; }
  .nav-regulation { margin: 0; padding: 12px 4px 4px; }
  .nav-company { border-top: 0; border-left: 1px solid #dedfda; padding: 12px 0 0 12px; }
  .nav-section .nav-group { font-size: 14px; margin: 0 8px 9px; }
  .nav-explanation { grid-column: 1 / -1; }
}

/* Focused practitioner feedback: quiet coverage, explicit controls, source context. */
.coverage-compact { background: transparent; border-left: 2px solid var(--line); padding: 8px 18px; margin: 20px 0; }
.coverage-compact > p { margin: 0; }
.coverage-compact details { margin: 8px 0 0; padding: 0; border: 0; }
.review-note { border: 1px solid var(--line); border-radius: 8px; padding: 12px 16px; }
.source-context h3 { font-size: 14px; color: var(--muted); margin: 20px 0 6px; }
.source-context .arabic { unicode-bidi: plaintext; }
progress { accent-color: var(--accent); width: 100%; max-width: 560px; height: 10px; }
.review-location .button, nav.page-actions .button { min-height: 44px; padding: 10px 18px; font-weight: 600; }

[data-scope-field]:not([hidden]) { display: inline-block; width: min(180px, 100%); margin-right: 16px; vertical-align: top; }
.comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 24px 0; align-items: start; }
.comparison-column { min-width: 0; padding: 24px; border: 1px solid var(--line, #d9dfdc); border-radius: 12px; background: #fff; }
.comparison-column h2 { margin-top: 0; }
.comparison-item { border-top: 1px solid var(--line, #d9dfdc); padding: 16px 0; }
.comparison-item h3 { font-size: 1.05rem; line-height: 1.4; }
.comparison-item [lang="ar"] { display: block; margin-top: 8px; text-align: right; line-height: 1.8; }
@media (max-width: 760px) { .comparison-grid { grid-template-columns: 1fr; } }

/* Unified workspace · approved October 4 reference. Shared by all server-rendered areas. */
:root {
  --bg:#f8f8f6; --paper:#fff; --ink:#292d2b; --muted:#656b67;
  --line:#dedfda; --accent:#354b40; --soft:#e9eeea;
  --serif:Georgia,'Times New Roman',serif;
  --brand-height:72px; --control-height:64px;
  --primary-width:176px; --secondary-width:216px;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  font-size:15px; line-height:1.6;
}
body { min-width:320px; }
[hidden] { display:none!important; }
h1,h2,.wordmark { font-family:var(--serif); font-weight:400; }
h1 { font-size:34px; line-height:1.2; letter-spacing:-.035em; }
h2 { font-size:25px; line-height:1.35; letter-spacing:-.02em; }
h3 { font-size:17px; font-weight:600; }
button,.button { background:var(--paper); border-radius:8px; gap:10px; }
button.primary,.button.primary { background:var(--accent); color:#fff; border-color:var(--accent); }
button.primary:hover,.button.primary:hover { background:#293d33; }
:focus-visible { outline:2px solid #496c59; outline-offset:3px; }
.brand-row { height:var(--brand-height); display:flex; align-items:center; justify-content:space-between; padding:0 24px; border-bottom:1px solid var(--line); background:var(--bg); }
.brand-row .wordmark { font-size:32px; letter-spacing:-2px; line-height:1; margin:0; padding:0; color:var(--ink); }
.brand-row .wordmark:hover { text-decoration:none; }
.unified-workspace { display:grid; grid-template-columns:var(--primary-width) var(--secondary-width) minmax(0,1fr); height:calc(100dvh - var(--brand-height)); min-height:0; margin:0; padding:0; }
.primary-rail,.secondary-rail { display:flex; flex-direction:column; min-width:0; height:100%; overflow:auto; border-right:1px solid var(--line); padding:0 12px 20px; }
.primary-rail { background:rgba(233,235,229,.86); backdrop-filter:blur(24px); }
.secondary-rail { background:rgba(244,245,240,.86); backdrop-filter:blur(22px); padding-inline:18px; }
.rail-heading { height:var(--control-height); min-height:var(--control-height); flex-shrink:0; display:flex; align-items:center; justify-content:flex-end; margin:0 0 24px; }
.secondary-heading { justify-content:space-between; }
.rail-caption { font-size:10px; text-transform:uppercase; letter-spacing:1px; color:var(--muted); }
.rail-toggle { width:36px; min-height:36px; padding:8px; border:0; background:transparent; color:var(--muted); }
.rail-toggle svg,.area-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; display:block; }
.areas { display:flex; flex-direction:column; gap:8px; }
.areas a,.primary-bottom a { display:flex; align-items:center; gap:10px; min-height:48px; padding:12px; border-radius:9px; line-height:1.45; font-size:14px; font-weight:600; color:#555e56; }
.areas a:hover,.primary-bottom a:hover { background:#ffffff70; text-decoration:none; }
.areas a[aria-current] { background:#fff; color:var(--ink); box-shadow:0 2px 8px #20251e09; }
.area-icon { display:none; flex:none; }
.primary-bottom { margin-top:auto; padding-top:24px; }
.primary-bottom a { font-size:13px; font-weight:400; min-height:44px; }
.area-intro { margin:4px 0 24px; }
.area-intro .eyebrow { margin:0 0 10px; font-size:10px; letter-spacing:1.2px; }
.area-intro h2 { font-family:inherit; font-size:17px; font-weight:600; letter-spacing:-.3px; }
.area-intro p:last-child { font-size:13px; color:var(--muted); line-height:1.6; margin:10px 0; }
.area-navigation { display:flex; flex-direction:column; gap:5px; }
.area-navigation a,.nav-unavailable { display:flex; align-items:center; gap:10px; min-height:44px; padding:9px 10px; margin-inline:-2px; border-radius:8px; font-size:14px; }
.area-navigation a:hover { background:#e9eeea90; text-decoration:none; }
.area-navigation a[aria-current] { background:var(--soft); color:var(--accent); font-weight:600; }
.step-number { width:22px; height:22px; border:1px solid #c8cbc5; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:11px; flex:none; }
[aria-current]>.step-number { background:var(--accent); border-color:var(--accent); color:#fff; }
.nav-unavailable { color:#727870; }
.regulation-context { margin-top:auto; padding-top:40px; font-size:13px; }
.regulation-context .eyebrow { font-size:10px; margin:0 0 12px; letter-spacing:1px; }
.regulation-context strong { display:block; font-size:13px; line-height:1.5; }
.regulation-context small { margin-top:10px; font-size:11px; }
.regulation-context>a { display:flex; align-items:center; min-height:44px; margin-top:14px; }
.work { min-width:0; height:100%; overflow:auto; display:flex; flex-direction:column; scroll-behavior:auto; }
.work>.topline { position:sticky; top:0; z-index:5; height:var(--control-height); min-height:var(--control-height); padding:10px 32px; border-bottom:1px solid var(--line); background:rgba(248,248,246,.95); backdrop-filter:blur(16px); display:flex; justify-content:space-between; gap:18px; }
.topline nav { display:flex; align-items:center; gap:14px; min-width:0; font-size:12px; }
.topline nav>span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:54vw; }
.topline .text-button { font-size:12px; white-space:nowrap; background:transparent; }
.work>.content { flex:1; width:100%; max-width:1280px; margin:0 auto; padding:48px clamp(24px,4vw,64px) 64px; }
.site-footer { padding:20px 32px; border-top:1px solid var(--line); color:var(--muted); font-size:11px; flex-shrink:0; }
.unified-workspace.primary-collapsed { --primary-width:64px; }
.primary-collapsed .primary-rail { padding-inline:10px; }
.primary-collapsed .primary-rail .area-label { display:none; }
.primary-collapsed .primary-rail .area-icon { display:block; }
.primary-collapsed .primary-rail a { justify-content:center; padding:10px; min-height:44px; }
.primary-collapsed .primary-rail .rail-heading { justify-content:center; }
.unified-workspace.secondary-collapsed { --secondary-width:56px; }
.secondary-collapsed .secondary-rail { padding-inline:10px; }
.secondary-collapsed #area-intro,.secondary-collapsed #area-navigation,.secondary-collapsed #regulation-context,.secondary-collapsed .rail-caption { display:none; }
.secondary-collapsed .secondary-heading { justify-content:center; }
.primary-collapsed [data-toggle-rail=primary] svg,.secondary-collapsed [data-toggle-rail=secondary] svg { transform:rotate(180deg); }
#nav-tooltip { position:fixed; z-index:1000; background:var(--ink); color:#fff; font-size:12px; padding:7px 11px; border-radius:6px; box-shadow:0 5px 15px #20251e20; pointer-events:none; max-width:230px; }
.account-menu { margin:0; padding:0; border:0; position:relative; z-index:20; }
.account-menu>summary { display:flex; align-items:center; gap:18px; list-style:none; min-height:44px; font-size:14px; }
.account-menu small { font-size:11px; }
.account-options { position:absolute; top:100%; right:0; min-width:210px; padding:10px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:0 12px 35px #20251e15; }
.account-options a,.account-options button { display:block; width:100%; min-height:44px; padding:10px; text-align:left; border:0; }
.eyebrow { font-size:11px; letter-spacing:1.3px; }
.intro { max-width:680px; color:var(--muted); font-size:16px; margin-top:16px; }
.requirement-group>summary { background:#eeefeb; }
.requirement-row[data-selected] { box-shadow:inset 0 0 0 1px #c8cbc5; }
.requirement-row { padding:20px; gap:18px; }
.row-body strong { font-size:16px; font-weight:500; }
.row-body small { font-size:12px; }
.row-status { font-size:12px; }
.evidence-pane { top:80px; max-height:calc(100dvh - 190px); box-shadow:0 12px 35px #20251e0c; }
.evidence-pane blockquote { background:#f3f4f0; }
.country-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; margin:28px 0; }
.country-card { display:flex; align-items:center; gap:16px; border:1px solid var(--line); background:white; padding:20px; min-height:96px; border-radius:10px; box-shadow:0 2px 8px #20251e04; }
.country-card:hover { border-color:#a5aaa3; text-decoration:none; box-shadow:0 8px 20px #20251e08; }
.country-flag { width:38px; height:38px; border-radius:50%; object-fit:cover; flex:none; border:1px solid #292d2b12; }
.country-card strong { display:block; font-size:16px; font-weight:600; }
.country-card small { font-size:12px; }
.country-card>.arrow { margin-left:auto; }
.upload-entry { border-color:var(--line); background:#ffffff90; padding:22px 24px; }
.upload-entry>summary { color:var(--ink); font-size:17px; }
.requirement-filters { display:grid; grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr)) auto; gap:12px; align-items:end; margin:28px 0; max-width:none; }
.requirement-filters label { display:block; font-size:12px; margin-bottom:6px; color:var(--muted); }
.requirement-filters input,.requirement-filters select { width:100%; min-height:44px; padding:9px 12px; background:white; border:1px solid #a5aaa3; border-radius:8px; }
.row-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.tag { display:inline-block; font-size:11px; line-height:1.5; padding:3px 8px; background:#eeefeb; border-radius:5px; color:#515a53; }
.scope-switch { display:flex; gap:12px; margin:24px 0; }
.scope-switch button { min-width:130px; }
.scope-switch button[aria-pressed=true] { background:var(--soft); border-color:#829689; color:var(--accent); }
.scope-kind { margin-bottom:16px; }
.source-summary { background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:24px; margin:24px 0; }
section.workflow-section { border-top:1px solid var(--line); padding-top:26px; margin-top:30px; }
.workflow-section h2 { margin-bottom:16px; }
@media(min-width:1700px) { :root { --primary-width:192px; --secondary-width:240px; } }
@media(max-width:1150px) { .requirement-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } .evidence-pane { position:static; max-height:none; } }
@media(min-width:701px) and (max-width:1000px) { :root { --primary-width:148px; --secondary-width:174px; } .primary-rail { padding-inline:8px; } .secondary-rail { padding-inline:12px; } .work>.content { padding:32px 24px 48px; } .topline { padding-inline:24px; } }
@media(max-width:700px) {
  :root { --brand-height:60px; --control-height:48px; }
  .brand-row { padding-inline:20px; }.brand-row .wordmark { font-size:29px; }
  .unified-workspace { display:flex; flex-direction:column; height:auto; min-height:calc(100dvh - 60px); }
  .primary-rail,.secondary-rail { height:auto; flex:none; border-right:0; border-bottom:1px solid var(--line); padding:0 16px 12px; overflow:visible; }
  .rail-heading { margin:0; height:44px; min-height:44px; }
  .primary-rail { position:relative; padding-right:58px; min-height:52px; }
  .primary-rail .rail-heading { position:absolute; top:4px; right:12px; }
  .areas { flex-direction:row; flex-wrap:wrap; gap:4px; padding-top:5px; }
  .areas a { font-size:12px; min-height:40px; padding:8px; }
  .primary-bottom,.area-intro,.regulation-context { display:none; }
  .area-navigation { flex-direction:row; flex-wrap:wrap; gap:4px; }
  .area-navigation a,.nav-unavailable { font-size:12px; gap:6px; min-height:40px; padding:7px; }
  .step-number { width:19px; height:19px; font-size:10px; }
  .primary-collapsed .primary-rail { padding:0 58px 0 16px; }.primary-collapsed #areas { display:none; }
  .secondary-collapsed .secondary-rail { padding:0 16px; }
  .secondary-collapsed .secondary-heading { justify-content:flex-end; }
  .work { height:auto; overflow:visible; min-height:60vh; }
  .work>.topline { position:static; padding:8px 20px; }
  .work>.content { padding:28px 20px 48px; }
  .topline nav { gap:8px; font-size:11px; }.topline nav>span:last-child { max-width:50vw; }
  .site-footer { padding:18px 20px; }
  .requirement-row { gap:10px; }.row-number { display:none; }
  .requirement-filters { grid-template-columns:minmax(0,1fr); }
  .country-grid { grid-template-columns:1fr; }
  h1 { font-size:29px; }.account-menu>summary { font-size:12px; gap:8px; }
}
@media(prefers-reduced-transparency:reduce) { .primary-rail { background:#e9ebe5; }.secondary-rail { background:#f4f5f0; }.work>.topline { background:var(--bg); } }
@media print { .brand-row,.primary-rail,.secondary-rail,.topline,.site-footer { display:none; }.unified-workspace,.work { display:block; height:auto; overflow:visible; }.work>.content { max-width:none; padding:0; } }
/* Shared native-form and record primitives for questions and company work. */
.source-row { grid-template-columns:minmax(0,1fr) auto 15px; }
.source-row .row-status { grid-column:auto; }
.source-row>span:last-child { grid-column:3; }
form>p { margin:22px 0; }
form>p>label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
form>p>input:not([type=checkbox]):not([type=radio]):not([type=hidden]),form>p>textarea,form>p>select,
.review-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.review-form textarea,.review-form select {
  width:100%; max-width:100%; padding:11px 12px; min-height:44px; border:1px solid #a5aaa3; border-radius:8px; background:white;
}
form>p>textarea { min-height:110px; resize:vertical; }
form>p>input[type=checkbox] { width:18px; height:18px; accent-color:var(--accent); }
.helptext,.quiet { color:var(--muted); font-size:14px; }
.helptext { display:block; margin-top:7px; }
.errorlist { color:#853d2b; padding-left:20px; }
.page-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:20px; margin-bottom:24px; }
.label { font-size:11px; letter-spacing:1.2px; color:var(--muted); }
.panel { padding:22px 0; border-top:1px solid var(--line); margin-top:22px; }
.panel h2 { font-family:inherit; font-size:18px; font-weight:600; letter-spacing:0; }
.pill { display:inline-block; padding:3px 8px; border-radius:5px; font-size:12px; background:var(--soft); }
.content>section { margin-top:28px; }
.content pre { white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; }
.requirement-planning h3 { margin-top:22px; }
@media(max-width:700px) {
  .requirement-row { grid-template-columns:minmax(0,1fr) 18px; }
  .requirement-row .row-body { grid-column:1; }.requirement-row .row-status { grid-column:1; }
  .requirement-row>span:last-child { grid-column:2; grid-row:1; }
  .source-row { grid-template-columns:minmax(0,1fr) 18px; }
  .page-actions { justify-content:flex-start; flex-wrap:wrap; gap:12px; }
}
.correspondence-text { white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; font:inherit; }
input[readonly] { background:#f3f4f0!important; color:var(--muted); }
.scope-line { padding:22px 0; border-top:1px solid var(--line); }
.scope-line h2 { font-family:inherit; font-size:18px; font-weight:600; }
.requirement-filters { grid-template-columns:minmax(180px,2fr) repeat(4,minmax(105px,1fr)) auto; }
.question-attention { background:#f2eddf; color:#6b542b; }
@media(max-width:1350px) { .requirement-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1000px) { .requirement-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .requirement-filters { grid-template-columns:minmax(0,1fr); } }
/* Keep the working list in view; disclose controls and page-level recovery on demand. */
.requirements-heading .intro { margin:10px 0 0; font-size:14px; }
.requirements-heading + .coverage-compact { margin:18px 0 16px; padding:5px 14px; }
.incomplete-count { color:#805122; font-weight:600; white-space:nowrap; }
.recovery-links { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; }
.manual-review-disclosure { margin:10px 0 16px; padding:10px 14px; }
.manual-review-disclosure>article { padding-top:18px; }
.requirement-search { max-width:none; margin:16px 0 20px; }
.requirement-search-line { display:flex; align-items:flex-start; flex-wrap:wrap; gap:10px; }
.requirement-search-line>input { flex:1; min-width:170px; height:44px; padding:9px 12px; border:1px solid #a5aaa3; border-radius:8px; background:white; }
.filter-disclosure { margin:0; padding:0; border:0; min-width:160px; }
.filter-disclosure>summary { display:flex; align-items:center; justify-content:center; min-height:44px; border:1px solid var(--line); border-radius:8px; padding:9px 14px; font-size:14px; background:white; font-weight:600; }
.filter-disclosure[open] { flex-basis:100%; }
.filter-disclosure[open]>summary { justify-content:flex-start; width:max-content; }
.filter-disclosure .requirement-filters { margin:16px 0 0; padding:18px; background:#f0f2ed; border-radius:8px; grid-template-columns:repeat(4,minmax(105px,1fr)); }
.filter-actions { display:flex; align-items:center; gap:16px; grid-column:1/-1; }
.filter-active { margin-left:4px; color:var(--accent); }
.active-filter-summary { font-size:12px; color:var(--muted); margin:10px 0 0; }
.active-filter-summary a { text-decoration:underline; }
.row-tags:empty { display:none; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:1000px) { .filter-disclosure .requirement-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .filter-disclosure .requirement-filters { grid-template-columns:1fr; }.filter-disclosure { flex-basis:100%; }.filter-disclosure>summary { justify-content:flex-start; width:max-content; } }
.work>.content:has(.requirements-heading) { padding-top:32px; }
.requirements-heading~.section-bar { margin:4px 0 10px; }
.requirement-search + .requirement-list .requirement-group>summary { padding-block:12px; }
/* Interpretation review is distinct from planning priority and open questions. */
.requirement-group .requirement-row { grid-template-columns:minmax(0,1fr) 18px; align-items:center; }
.requirement-group .row-number { display:none; }
.requirement-group .row-body { grid-column:1; }
.requirement-group .requirement-row>span:last-child { grid-column:2; grid-row:1; }
.row-badges { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.review-badge { display:inline-flex; align-items:center; flex:none; padding:4px 9px; border-radius:5px; font-size:11px; line-height:1.5; color:#565c54; background:#eeefeb; }
.review-badge--accepted,.review-badge--edited { color:#344f3e; background:#e7eee7; }
.review-badge--unclear { color:#725926; background:#f1ecdE; }
.review-badge--rejected { color:#824f45; background:#f3e9e5; }
.priority-tags { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.priority-tags:empty { display:none; }
.priority-tag { color:#6c582c; background:#f2eddf; font-size:11px; padding:4px 9px; }
.row-badges .row-status { font-size:12px; }
@media(max-width:700px) { .row-badges { gap:8px; flex-wrap:wrap; }.priority-tags { justify-content:flex-start; } }
