.procurement-page {
  background: #f6f7f4;
}

.procurement-page .site-nav a.active {
  border-bottom-color: var(--procurement);
}

.procurement-hero {
  min-height: 112px;
  display: grid;
  grid-template-columns: minmax(220px, 0.5fr) minmax(400px, 1.12fr) minmax(460px, 0.98fr);
  align-items: center;
  gap: 24px;
  padding: 18px clamp(18px, 3vw, 46px);
  background: var(--procurement);
  color: #fff;
}

.procurement-hero h1 {
  margin: 0;
  font-family: var(--serif);
  font-size: 42px;
  line-height: 1.05;
}

.procurement-hero p {
  margin: 9px 0 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
}

.procurement-search {
  height: 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px;
  border-radius: 4px;
  background: #fff;
  overflow: hidden;
}

.procurement-search input,
.procurement-search button {
  min-width: 0;
  height: 44px;
  border: 0;
  border-radius: 0;
}

.procurement-quick-filters { display:flex; align-items:end; gap:9px; margin-top:12px; }
.procurement-quick-filters label { display:flex; flex-direction:column; gap:4px; color:rgba(255,255,255,.76); font-size:10px; }
.procurement-quick-filters select,.procurement-quick-filters button { height:34px; min-width:150px; border:1px solid rgba(255,255,255,.34); border-radius:4px; background:rgba(255,255,255,.96); color:#30363a; font:inherit; font-size:12px; }
.procurement-quick-filters button { min-width:auto; padding:0 12px; background:transparent; color:#fff; cursor:pointer; }

.procurement-search input {
  padding: 0 18px;
  outline: none;
}

.procurement-search button {
  background: #111;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
}

.procurement-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.procurement-kpis span {
  min-width: 0;
  padding: 0 12px;
  border-left: 1px solid rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.72);
  font-size: 10px;
  text-align: center;
}

.procurement-kpis strong {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-family: Georgia, serif;
  font-size: 30px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

.procurement-kpis span:last-child strong {
  color: #e2bf5d;
}

.procurement-main {
  width: min(1680px, 100%);
  margin: 0 auto;
  padding: 16px 18px 28px;
}

.bank-selector {
  border: 1px solid var(--line);
  background: #fff;
}

.bank-selector-head {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line);
}

.bank-selector-head h2 {
  margin: 0;
  color: var(--procurement);
  font-family: var(--serif);
  font-size: 18px;
}

.bank-selector-head button {
  height: 30px;
  padding: 0 12px;
  border: 1px solid #a4beb6;
  border-radius: 3px;
  background: #fff;
  color: var(--procurement);
  cursor: pointer;
  font-size: 10px;
}

.bank-buttons {
  display: grid;
  grid-template-columns: repeat(8, minmax(118px, 1fr));
  gap: 7px;
  padding: 12px 14px 14px;
}

.bank-button {
  min-width: 0;
  min-height: 38px;
  padding: 6px 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  color: #3f3b35;
  cursor: pointer;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bank-button:hover,
.bank-button:focus-visible {
  border-color: var(--procurement);
  color: var(--procurement);
  outline: none;
}

.bank-button.active {
  border-color: var(--procurement);
  border-bottom-color: var(--gold);
  background: var(--procurement);
  color: #fff;
  box-shadow: inset 0 -3px var(--gold);
}

.procurement-filters {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr)) 100px;
  gap: 9px;
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: #fff;
}

.procurement-filters label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  color: #716c64;
  font-size: 9px;
  white-space: nowrap;
}

.procurement-filters select,
.procurement-filters button,
#sortOrder {
  min-width: 0;
  height: 34px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: #fff;
  color: #4b4741;
  font-size: 10px;
}

.procurement-filters button {
  cursor: pointer;
}

.procurement-filters button:hover {
  border-color: var(--procurement);
  color: var(--procurement);
}

.procurement-workspace {
  display: grid;
  grid-template-columns: minmax(320px, 2fr) minmax(0, 3fr);
  gap: 12px;
  margin-top: 12px;
}

.procurement-rail,
.procurement-results,
.project-detail {
  min-width: 0;
  border: 1px solid var(--line);
  background: #fff;
}

.procurement-rail header {
  padding: 18px;
  border-top: 5px solid var(--procurement);
  border-bottom: 1px solid var(--line);
}

.procurement-rail header p {
  margin: 0;
  color: var(--procurement);
  font-size: 9px;
  font-weight: 750;
}

.procurement-rail header h2 {
  margin: 9px 0 0;
  font-family: var(--serif);
  font-size: 20px;
}

.procurement-rail header span {
  display: block;
  margin-top: 5px;
  color: #7f7a72;
  font-size: 10px;
}

.procurement-rail > div {
  padding: 16px;
}

.procurement-rail h3 {
  margin: 0 0 10px;
  color: var(--procurement);
  font-family: var(--serif);
  font-size: 15px;
}

.procurement-rail ol {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.procurement-rail li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid #ece9e3;
  color: #625e57;
  font-size: 10px;
}

.procurement-rail li b {
  color: #8c857a;
  font-weight: 500;
}

.procurement-results > header {
  min-height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}

.procurement-results > header p {
  margin: 0 0 2px;
  color: var(--procurement);
  font-size: 9px;
  font-weight: 750;
}

.procurement-results > header h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 20px;
}

.procurement-list-filters {
  min-height: 56px;
  display: grid;
  grid-template-columns: repeat(4, minmax(118px, 1fr)) 70px;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line);
  background: #f7f9f6;
}

.procurement-list-filters label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #69645d;
  font-size: 10px;
  white-space: nowrap;
}

.procurement-list-filters select {
  width: 100%;
  height: 34px;
  padding: 0 32px 0 12px;
  border: 1px solid #d5ddd8;
  border-radius: 3px;
  background: #fff;
  color: #35312c;
  font: inherit;
}

.procurement-list-filters select:focus-visible {
  border-color: var(--procurement);
  outline: 2px solid color-mix(in srgb, var(--procurement) 18%, transparent);
  outline-offset: 1px;
}

.procurement-list-filters button {
  width: 70px;
  margin-left: 0;
  padding: 7px 0;
  border: 0;
  background: transparent;
  color: var(--procurement);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.procurement-list-filters button:hover {
  text-decoration: underline;
}

.procurement-column-labels,
.project-row {
  display: grid;
  grid-template-columns: minmax(300px, 1.75fr) minmax(105px, 0.58fr) 110px minmax(110px, 0.62fr);
  gap: 12px;
  align-items: center;
}

.procurement-column-labels {
  padding: 9px 14px;
  border-bottom: 1px solid var(--line);
  background: #f6f7f3;
  color: #817c74;
  font-size: 9px;
}

.procurement-list {
  max-height: calc(100vh - 445px);
  min-height: 500px;
  overflow: auto;
}

.project-row {
  width: 100%;
  min-height: 66px;
  padding: 10px 14px;
  border: 0;
  border-bottom: 1px solid #ebe8e1;
  background: #fff;
  color: inherit;
  cursor: pointer;
  font-size: 10px;
  text-align: left;
}

.project-row:hover {
  background: #fafbf8;
}

.project-row.active {
  background: var(--procurement-soft);
  box-shadow: inset 3px 0 var(--procurement);
}

.project-row-title {
  min-width: 0;
}

.project-row-title strong {
  display: block;
  overflow: hidden;
  color: #26231f;
  font-family: var(--serif);
  font-size: 13px;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-row-title small {
  display: block;
  margin-top: 5px;
  color: #817c74;
  font-size: 9px;
}

.project-detail {
  display: none;
  position: sticky;
  top: 12px;
  align-self: start;
  max-height: calc(100vh - 92px);
  overflow: auto;
}

#detailContent {
  min-height: 620px;
  padding: 22px;
}

.project-detail-title {
  margin: 0;
  padding-left: 14px;
  border-left: 4px solid var(--procurement);
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.5;
}

.project-meta-grid {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 8px 12px;
  margin-top: 20px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-size: 10px;
}

.project-meta-grid dt {
  color: #77726a;
}

.project-meta-grid dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.project-section {
  margin-top: 20px;
}

.project-section h3 {
  margin: 0 0 7px;
  font-family: var(--serif);
  font-size: 15px;
}

.project-section p {
  margin: 0;
  white-space: pre-wrap;
  color: #5e5952;
  font-size: 11px;
  line-height: 1.8;
}

.project-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 22px;
}

.project-actions a,
.project-actions button {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border: 1px solid #a9bdb6;
  border-radius: 3px;
  background: #fff;
  color: var(--procurement);
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
}

.project-actions .primary {
  border-color: var(--gold);
  background: var(--gold);
  color: #fff;
}

/* Keep the source action in the template so it can be restored without rebuilding details. */
.source-action-temporarily-hidden { display: none !important; }

.share-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px;
  gap: 7px;
  margin-top: 12px;
}

.share-row input,
.share-row button {
  min-width: 0;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 3px;
  font-size: 9px;
}

.share-row input {
  padding: 0 9px;
  background: #f7f7f3;
  color: #68635c;
}

.share-row button {
  background: var(--procurement-soft);
  color: var(--procurement);
  cursor: pointer;
  font-weight: 700;
}

.project-empty,
.list-empty {
  min-height: 460px;
  display: grid;
  place-content: center;
  gap: 8px;
  padding: 30px;
  color: #817c74;
  text-align: center;
}

.project-empty strong,
.list-empty strong {
  color: #302d28;
  font-family: var(--serif);
  font-size: 18px;
}

.project-empty span,
.list-empty span {
  font-size: 10px;
}

/* Procurement uses the same structured detail language as the research and regulatory panels. */
.all-banks-button {
  width: 100%;
  display: grid;
  gap: 6px;
  padding: 18px;
  border: 0;
  border-top: 5px solid var(--procurement);
  border-bottom: 1px solid var(--line);
  background: #fff;
  color: inherit;
  cursor: pointer;
  text-align: left;
}

.all-banks-button > span { color: var(--procurement); font-size: 9px; font-weight: 750; }
.all-banks-button strong { font-family: var(--serif); font-size: 20px; font-weight: 500; }
.all-banks-button small { color: #7f7a72; font-size: 10px; }
.all-banks-button:hover,.all-banks-button.active { background: var(--procurement-soft); box-shadow: inset 3px 0 var(--procurement); }
.bank-directory { padding: 16px 12px; }
.procurement-load-more { width: calc(100% - 24px); min-height: 42px; margin: 12px; border: 1px solid #a8bbb4; border-radius: 3px; background: #fff; color: var(--procurement); cursor: pointer; font-weight: 700; }
.procurement-rail .bank-buttons { display: grid; grid-template-columns: 1fr; gap: 0; padding: 0; }
.procurement-rail .bank-buttons > .bank-group { display: block; padding: 0; border-bottom: 1px solid #e4e1da; }
.bank-group-toggle { width: 100%; min-height: 42px; display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; align-items: center; gap: 7px; padding: 9px 5px; border: 0; background: #fff; color: #393630; cursor: pointer; font: inherit; font-size: 11px; font-weight: 700; text-align: left; }
.bank-group-toggle:hover,.bank-group-toggle:focus-visible,.bank-group-toggle[aria-expanded="true"] { background: #f5f8f5; color: var(--procurement); outline: none; }
.bank-group-toggle b { color: #8c857a; font-size: 9px; font-weight: 500; white-space: nowrap; }
.bank-group-toggle i { color: var(--procurement); font-size: 15px; font-style: normal; text-align: center; }
.procurement-rail .bank-group-list { display: grid; margin: 0; padding: 0 0 5px 8px; border-left: 2px solid #d2e3dc; background: #fbfcfa; }
.procurement-rail .bank-group-list[hidden] { display: none; }
.procurement-rail .bank-group-list li { display: block; padding: 0; border-bottom: 1px solid #ece9e3; }
.procurement-rail .bank-button { width: 100%; min-height: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 5px; border: 0; border-radius: 0; background: transparent; color: #625e57; font-size: 11px; text-align: left; white-space: normal; }
.procurement-rail .bank-button b { color: #8c857a; font-weight: 500; }
.procurement-rail .bank-button:hover,.procurement-rail .bank-button.active { color: var(--procurement); font-weight: 700; }
.procurement-rail .bank-button.active { padding-left: 9px; background: var(--procurement-soft); box-shadow: inset 3px 0 var(--procurement); }

.project-detail #detailContent { min-height: 620px; padding: 0; }
.procurement-detail-open .procurement-results,.procurement-detail-open .procurement-rail { display: none; }
.procurement-detail-open .project-detail { display: block; grid-column: 1 / -1; position: static; max-height: none; overflow: visible; }
.procurement-insight-head { position: relative; padding: 22px 24px 18px; border-bottom: 1px solid var(--line); }
.detail-return { margin: 0 0 14px; padding: 0; border: 0; background: transparent; color: var(--procurement); cursor: pointer; font: inherit; font-size: 10px; font-weight: 700; }
.detail-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.detail-tag { display: inline-block; padding: 3px 7px; border: 1px solid #b9d5cb; border-radius: 3px; background: #f4faf7; color: var(--procurement); font-size: 9px; }
.detail-tag.neutral { border-color: #d8d4cc; background: #faf9f6; color: #625e57; }
.procurement-insight-head h2 { margin: 12px 0; font-family: var(--serif); font-size: 25px; line-height: 1.45; }
.procurement-insight-meta { display: flex; flex-wrap: wrap; gap: 7px 13px; color: #79746c; font-size: 10px; }
.procurement-insight-meta .status-open { color: var(--procurement); font-weight: 700; }
.procurement-insight-meta .status-closed { color: #946f18; font-weight: 700; }
.procurement-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: start; gap: 14px; padding: 14px; background: #f7f8f5; }
.procurement-insight-body { display: grid; gap: 12px; padding: 0; }
.detail-block,.procurement-insight-section,.procurement-evidence > section { border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.detail-block > h3,.procurement-insight-section h3,.procurement-evidence h3 { margin: 0; padding: 13px 16px; border-bottom: 1px solid var(--line); color: var(--procurement); font-family: var(--serif); font-size: 15px; }
.procurement-fact-grid { display: grid; grid-template-columns: 112px minmax(0, 1fr) 112px minmax(0, 1fr); margin: 0; font-size: 11px; }
.procurement-fact-grid dt,.procurement-fact-grid dd { min-width: 0; margin: 0; padding: 10px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.procurement-fact-grid dt { background: #fafbf8; color: #77726a; font-weight: 700; }
.procurement-fact-grid dd:nth-child(4n) { border-right: 0; }
.procurement-fact-grid dt:last-of-type,.procurement-fact-grid dd:last-child { border-bottom: 0; }
.procurement-fact-grid a { color: var(--procurement); font-weight: 700; }
.procurement-insight-section { display: grid; grid-template-columns: 150px minmax(0, 1fr); }
.procurement-insight-section h3 { border: 0; border-right: 1px solid var(--line); }
.procurement-insight-section p,.procurement-insight-section > ul,.procurement-insight-section > ol { margin: 0; padding: 13px 16px; color: #5d5851; font-size: 11px; line-height: 1.8; white-space: pre-wrap; }
.procurement-insight-section .section-content p,.procurement-insight-section .section-content ul { margin: 0; padding: 13px 16px; color: #5d5851; font-size: 11px; line-height: 1.8; white-space: pre-wrap; }
.procurement-insight-section .section-content ul { padding-left: 34px; white-space: normal; }
.procurement-insight-section > ul { padding-left: 34px; white-space: normal; }
.structured-source-text { min-width: 0; padding: 18px 22px 22px; color: #48443e; font-size: 13px; line-height: 2; }
.structured-source-text p { margin: 0 0 14px; padding: 0; white-space: normal; }
.structured-source-text p:last-child { margin-bottom: 0; }
.structured-source-text h4 { margin: 24px 0 11px; color: #153f34; font-family: var(--serif); font-size: 16px; line-height: 1.6; }
.structured-source-text h4:first-child { margin-top: 0; }
.structured-source-text ul { margin: 6px 0 12px; padding: 0 0 0 22px; }
.structured-source-text li { margin: 0 0 6px; padding-left: 3px; }
.source-table-scroll { width: 100%; margin: 10px 0 14px; overflow-x: auto; border: 1px solid var(--line); }
.source-table-scroll table { width: 100%; min-width: 520px; border-collapse: collapse; background: #fff; }
.source-table-scroll td { padding: 8px 10px; border: 1px solid var(--line); vertical-align: top; }
.announcement-text { display: block; }
.announcement-text > h3 { border-right: 0; border-bottom: 1px solid var(--line); }
.announcement-text .structured-source-text { max-width: 920px; padding: 24px 30px 30px; font-size: 14px; line-height: 2.05; }
.project-requirements { display: grid; gap: 12px; }
.procurement-reading-head { padding: 28px 36px 26px; border-top: 4px solid var(--procurement); }
.procurement-reading-head h2 { max-width: 940px; margin: 16px 0 9px; font-size: 30px; }
.procurement-reading-layout { background: #fff; }
.procurement-reading-section { padding: 30px 38px 36px; border-bottom: 1px solid var(--line); background: #fff; }
.procurement-reading-section > header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 17px; }
.procurement-reading-section > header > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; background: var(--procurement); color: #fff; font-size: 10px; font-weight: 700; }
.procurement-reading-section > header h3 { margin: 0; color: #164438; font-family: var(--serif); font-size: 21px; line-height: 28px; }
.procurement-reading-section > header p { margin: 4px 0 0; color: #77746e; font-size: 10px; }
.procurement-table-wrap { overflow-x: auto; }
.procurement-fact-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; }
.procurement-fact-table th,.procurement-fact-table td { padding: 14px 16px; border: 1px solid var(--line); line-height: 1.75; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.procurement-fact-table th { width: 135px; background: #f6f7f3; color: #686b64; font-weight: 700; }
.procurement-fact-table td { background: #fff; color: #31332f; }
.procurement-fact-table tr:nth-child(2) td:first-of-type { color: var(--procurement); font-weight: 700; }
.announcement-document .structured-source-text { max-width: 850px; margin: 0 auto; padding: 42px 46px 50px; border-top: 1px solid #bfc4bd; color: #33352f; font-size: 14px; line-height: 2.05; }
.announcement-document .structured-source-text p { margin-bottom: 15px; }
.announcement-document .structured-source-text h4 { margin: 28px 0 11px; font-size: 17px; }
.announcement-source-footer { display: grid; gap: 10px; max-width: 850px; margin: 0 auto; padding: 18px 0 4px; border-top: 1px solid var(--line); }
.announcement-link-row { display: grid; grid-template-columns: 70px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.announcement-link-row label { color: #555b55; font-size: 10px; font-weight: 700; }
.announcement-link-row input { min-width: 0; height: 38px; padding: 0 12px; border: 1px solid var(--line); background: #f7f8f5; color: #555b55; font-size: 10px; }
.announcement-link-row > div { display: flex; gap: 7px; }
.announcement-link-row button,.source-link-button { display: inline-grid; place-items: center; min-width: 82px; height: 38px; padding: 0 13px; border: 1px solid #8cb4a8; background: #fff; color: var(--procurement); font-size: 10px; font-weight: 700; line-height: 1; text-decoration: none; cursor: pointer; }
.source-link-button.primary { border-color: var(--procurement); background: var(--procurement); color: #fff; }
.source-link-button.disabled,.announcement-link-row button:disabled { border-color: #d9ddd9; background: #f4f5f3; color: #a0a49f; cursor: default; }
.announcement-attachments { display: flex; flex-wrap: wrap; gap: 8px 14px; max-width: 850px; margin: 18px auto 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 10px; }
.announcement-attachments strong { width: 100%; color: #55524c; }
.announcement-attachments a { color: var(--procurement); }
.announcement-missing { max-width: 850px; margin: 0 auto; padding: 40px; border-top: 1px solid var(--line); color: #8b6e40; text-align: center; }
.mobile-detail-jump,.mobile-section-toggle,.mobile-facts-toggle { display: none; }
.procurement-evidence { position: sticky; top: 12px; display: grid; gap: 12px; }
.procurement-evidence > section { overflow: hidden; }
.procurement-evidence dl { display: grid; grid-template-columns: 105px minmax(0, 1fr); margin: 0; font-size: 10px; }
.procurement-evidence dt,.procurement-evidence dd { margin: 0; padding: 10px 12px; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; }
.procurement-evidence dt { color: #77726a; }.procurement-evidence dd { text-align: right; }
.evidence-ok { color: var(--procurement); font-weight: 700; }.evidence-warn { color: #b36b1f; font-weight: 700; }
.source-url-panel { display: grid; gap: 8px; padding: 12px; border-top: 1px solid var(--line); }
.source-url-panel > span { color: #77726a; font-size: 9px; font-weight: 700; }
.source-url-panel > a { color: var(--procurement); font-size: 9px; line-height: 1.55; overflow-wrap: anywhere; }
.source-url-panel > div { display: grid; grid-template-columns: minmax(0, 1fr) 76px; gap: 7px; }
.source-url-panel input,.source-url-panel button { min-width: 0; height: 34px; border: 1px solid var(--line); border-radius: 3px; font-size: 9px; }
.source-url-panel input { padding: 0 8px; background: #f7f7f3; color: #68635c; }
.source-url-panel button { background: #fff; color: var(--procurement); cursor: pointer; font-weight: 700; }
.procurement-evidence .attachment-list { padding: 12px 14px; }
.lifecycle-summary { display: grid; gap: 8px; padding: 14px 16px; }
.lifecycle-summary strong { color: var(--procurement); font-family: var(--serif); font-size: 18px; }.lifecycle-summary span { font-size: 11px; }.lifecycle-summary small { color: #817c74; font-size: 9px; }
.project-actions { display: flex; flex-wrap: wrap; }.project-actions a,.project-actions button { min-width: 132px; border-color: #a7c6bb; color: var(--procurement); }.project-actions .primary { border-color: var(--procurement); background: var(--procurement); }.share-row button { background: #fff; }
.mobile-procurement-toolbar,.mobile-detail-back { display: none; }
.lifecycle-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.lifecycle-list li { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 9px; align-items: start; }
.lifecycle-list time { color: #878178; font-size: 9px; }
.lifecycle-list button { padding: 0; border: 0; background: transparent; color: var(--procurement); cursor: pointer; font: inherit; font-size: 10px; line-height: 1.55; text-align: left; }
.attachment-list { display: grid; gap: 8px; }
.attachment-list a { color: var(--procurement); font-size: 10px; line-height: 1.5; }
.attachment-list span { color: #5d5851; font-size: 10px; line-height: 1.5; }
.announcement-text p { max-height: 260px; overflow: auto; padding-right: 8px; }

@media (max-width: 1240px) {
  .procurement-hero {
    grid-template-columns: 0.72fr 1.5fr;
  }

  .procurement-kpis {
    grid-column: 1 / -1;
  }

  .bank-buttons {
    grid-template-columns: repeat(6, minmax(110px, 1fr));
  }

  .procurement-workspace {
    grid-template-columns: minmax(280px, 2fr) minmax(0, 3fr);
  }
}

@media (max-width: 1080px) {
  .procurement-workspace {
    grid-template-columns: minmax(260px, 2fr) minmax(0, 3fr);
  }

  .procurement-list-filters {
    grid-template-columns: 1fr 1fr;
  }

  .procurement-list-filters button {
    margin-left: 0;
  }

  .procurement-detail-open .project-detail { grid-column: 1 / -1; }

  .procurement-list {
    max-height: none;
  }
}

@media (max-width: 820px) {
  .bank-buttons {
    grid-template-columns: repeat(3, minmax(105px, 1fr));
  }

  .procurement-filters {
    grid-template-columns: 1fr 1fr;
  }

  .procurement-hero { min-height: 0; padding: 22px 16px; }
  .procurement-hero h1 { font-size: 32px; }
  .procurement-main { padding-top: 10px; }
  .mobile-procurement-toolbar { position: sticky; top: 0; z-index: 12; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 10px; border: 1px solid #cbd8d3; background: #cbd8d3; }
  .mobile-procurement-toolbar button { min-height: 42px; border: 0; background: #fff; color: var(--procurement); font-size: 11px; font-weight: 700; }
  .procurement-workspace { display: block; margin-top: 0; }
  .procurement-rail,.project-detail { display: none; }
  .mobile-show-banks .procurement-rail { display: block; }
  .mobile-show-banks .procurement-results { display: none; }
  .mobile-show-detail .procurement-results,.mobile-show-detail .procurement-rail { display: none; }
  .mobile-show-detail .project-detail { display: block; position: static; max-height: none; border: 0; }
  .mobile-detail-back { width: 100%; min-height: 44px; align-items: center; padding: 0 16px; border: 0; border-bottom: 1px solid var(--line); background: #fff; color: var(--procurement); font-size: 12px; font-weight: 700; text-align: left; }
  .mobile-show-detail .mobile-detail-back { display: flex; }
  .procurement-detail-open .site-header,.procurement-detail-open .procurement-hero,.procurement-detail-open .mobile-procurement-toolbar { display: none; }
  .procurement-detail-open .procurement-main { padding: 0; }
  .procurement-detail-open .mobile-detail-back { position: sticky; top: 0; z-index: 20; }
  .mobile-show-filters .procurement-list-filters { display: grid; }
  .procurement-results { border: 0; }
  .procurement-results > header { padding-inline: 12px; }
  .procurement-list { min-height: 420px; }
  .project-row { min-height: 78px; padding: 13px 12px; }
  .project-row-title strong { white-space: normal; font-size: 14px; }
  .project-row-title small { margin-top: 7px; }
  .procurement-insight-head { padding: 14px 16px 12px; }
  .detail-return { display: none; }
  .procurement-insight-head h2 { margin: 9px 0 7px; font-size: 19px; line-height: 1.4; }
  .detail-tags { flex-wrap: nowrap; gap: 5px; overflow-x: auto; scrollbar-width: none; }
  .detail-tag { flex: 0 0 auto; }
  .procurement-insight-meta { gap: 5px 10px; }
  .mobile-detail-jump { position: sticky; top: 44px; z-index: 18; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 12px -16px -12px; border-top: 1px solid var(--line); background: var(--line); }
  .mobile-detail-jump a { min-width: 0; padding: 11px 4px; background: #fff; color: var(--procurement); font-size: 10px; font-weight: 700; text-align: center; }
  .procurement-detail-layout { grid-template-columns: 1fr; padding: 10px 0 0; background: #fff; }
  .procurement-insight-body { padding: 0 12px; }
  .procurement-fact-grid { grid-template-columns: 94px minmax(0, 1fr); font-size: 11px; }
  .procurement-fact-grid dt,.procurement-fact-grid dd { border-right: 0; }
  .procurement-fact-grid dt { border-right: 1px solid var(--line); }
  .procurement-fact-grid dd:nth-child(4n) { border-right: 0; }
  .procurement-insight-section { grid-template-columns: 1fr; gap: 0; }
  .procurement-insight-section h3 { color: var(--procurement); }
  .procurement-insight-section h3 { border-right: 0; border-bottom: 1px solid var(--line); }
  .procurement-evidence { position: static; padding: 0 12px 18px; }
  .lifecycle-list li { grid-template-columns: 70px minmax(0, 1fr); }
  #project-overview,#announcement-body,#project-requirements,#project-evidence { scroll-margin-top: 92px; }
  .mobile-extra-fact { display: none; }
  .mobile-facts-expanded .mobile-extra-fact { display: block; }
  .mobile-facts-toggle,.mobile-section-toggle { width: 100%; display: block; min-height: 40px; border: 0; border-top: 1px solid var(--line); background: #f7faf8; color: var(--procurement); cursor: pointer; font: inherit; font-size: 10px; font-weight: 700; }
  .mobile-collapsible .section-content { position: relative; max-height: 150px; overflow: hidden; }
  .mobile-collapsible.mobile-expanded .section-content { max-height: none; }
  .announcement-text p { max-height: none; overflow: visible; padding-right: 16px; }
  .project-requirements { gap: 10px; }
  .procurement-reading-head { padding: 14px 16px 12px; border-top: 0; }
  .procurement-reading-head .mobile-detail-jump { grid-template-columns: repeat(2, 1fr); }
  .procurement-reading-layout { padding-top: 0; }
  .procurement-reading-section { padding: 20px 12px 24px; }
  .procurement-reading-section > header { margin-left: 4px; }
  .procurement-table-wrap { overflow: visible; }
  .procurement-fact-table,.procurement-fact-table tbody,.procurement-fact-table tr,.procurement-fact-table th,.procurement-fact-table td { display: block; width: 100%; }
  .procurement-fact-table tr { display: grid; grid-template-columns: 104px minmax(0,1fr); border: 1px solid var(--line); border-bottom: 0; }
  .procurement-fact-table tr:last-child { border-bottom: 1px solid var(--line); }
  .procurement-fact-table th,.procurement-fact-table td { width: auto; border: 0; border-bottom: 1px solid var(--line); }
  .procurement-fact-table td[colspan] { grid-column: 2; }
  .announcement-document .structured-source-text { padding: 28px 16px 34px; border-top: 1px solid #bfc4bd; font-size: 14px; line-height: 2; }
  .announcement-document .structured-source-text h4 { font-size: 16px; }
  .announcement-source-footer { gap: 14px; }
  .announcement-link-row { grid-template-columns: 1fr; gap: 6px; }
  .announcement-link-row > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .announcement-link-row button,.source-link-button { width: 100%; }
}

@media (max-width: 620px) {
  .procurement-hero {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .procurement-kpis {
    grid-column: auto;
  }

  .procurement-quick-filters {
    align-items: stretch;
    flex-direction: column;
  }

  .procurement-quick-filters select,
  .procurement-quick-filters button {
    width: 100%;
  }

  .procurement-main {
    padding-inline: 10px;
  }

  .procurement-list-filters {
    display: none;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .procurement-list-filters label {
    grid-template-columns: 70px minmax(0, 1fr);
    align-items: center;
  }

  .procurement-list-filters select {
    width: 100%;
  }

  .procurement-list-filters button {
    width: max-content;
    margin-left: 80px;
  }

  .bank-buttons,
  .procurement-filters {
    grid-template-columns: 1fr 1fr;
  }

  .procurement-column-labels {
    display: none;
  }

  .project-row {
    grid-template-columns: 1fr;
  }

  .project-row > span:nth-child(2),
  .project-row > span:nth-child(3),
  .project-row > span:nth-child(4) {
    display: none;
  }

  .project-actions,
  .project-meta-grid,
  .share-row {
    grid-template-columns: 1fr;
  }

  .project-actions { display: grid; }
  .project-actions a,.project-actions button { width: 100%; }
}
