.public-body { background: #f5f3ee; }
.public-hero {
  padding-bottom: 42px;
  background:
    radial-gradient(circle at 78% 16%, rgb(183 145 87 / 22%), transparent 30%),
    linear-gradient(135deg, #071421 0%, #101f2f 52%, #182839 100%);
}
.public-admin-link { color: var(--navy); text-decoration: none; }
.public-hero .public-admin-link { color: #f8fafc; border-color: rgb(255 255 255 / 18%); background: rgb(255 255 255 / 8%); }
.demo-nav-actions { display: flex; gap: 9px; align-items: center; }
.public-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(360px, 470px); align-items: center; }
.public-hero h1 { max-width: 760px; }
.hero-actions { display: flex; gap: 10px; margin-top: 24px; flex-wrap: wrap; }
.public-cta { display: inline-flex; align-items: center; text-decoration: none; }
.secondary-cta { color: #f8fafc; background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 16%); }
.demo-proof-card {
  border: 1px solid rgb(255 255 255 / 14%);
  border-radius: 16px;
  background: rgb(255 255 255 / 8%);
  padding: 22px;
  box-shadow: 0 20px 50px rgb(0 0 0 / 13%);
  backdrop-filter: blur(12px);
}
.demo-proof-card h2 {
  color: #fff;
  font-family: Georgia, "Songti SC", serif;
  font-size: 25px;
  line-height: 1.35;
  font-weight: 500;
  margin-bottom: 16px;
}
.demo-proof-card ul {
  margin: 0;
  padding-left: 18px;
  color: #c7d2df;
  font-size: 13px;
  line-height: 1.75;
}
.public-stats {
  margin-top: 12px;
}
.public-layout {
  max-width: 1240px;
  margin: 0 auto;
  padding: 24px 0 54px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.public-disclaimer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  background: #ffffff;
}
.public-disclaimer p {
  max-width: 860px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}
.public-access {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  align-items: end;
  gap: 22px;
  border-color: #ccd7e3;
  background: linear-gradient(135deg, #ffffff, #f8fafc);
}
.public-access h2 { margin-bottom: 8px; }
.public-access p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}
.public-access-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 8px;
}
.client-session { display: inline-flex; align-items: center; gap: 9px; color: #d7e0ea; font-size: 13px; }
.client-session .secondary { padding: 7px 12px; }
.demo-overview {
  display: grid;
  grid-template-columns: 1.45fr repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.demo-module {
  min-height: 166px;
  border: 1px solid #ded8cd;
  border-radius: 14px;
  background: #fffdfa;
  padding: 20px;
  box-shadow: 0 14px 34px rgb(64 45 22 / 5%);
}
.demo-module.primary-module {
  grid-row: span 2;
  background: linear-gradient(135deg, #102132, #26384c);
  color: #fff;
}
.demo-module span {
  display: inline-flex;
  color: #a06d31;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .14em;
  margin-bottom: 12px;
}
.demo-module h2 {
  font-family: Georgia, "Songti SC", serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 1.3;
  margin-bottom: 14px;
}
.demo-module h3 { font-size: 17px; margin-bottom: 10px; }
.demo-module p {
  color: #667085;
  font-size: 13px;
  line-height: 1.7;
}
.demo-module.primary-module p { color: #d5dfeb; }
.demo-topic-panel { border-radius: 14px; }
.demo-topic-note { color: #667085; font-size: 13px; line-height: 1.65; margin-bottom: 14px; }
.demo-topic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.demo-topic-card {
  border: 1px solid #ded8cd;
  border-radius: 14px;
  background: #fffdfa;
  padding: 20px;
  box-shadow: 0 14px 34px rgb(64 45 22 / 5%);
}
.demo-topic-card.priority {
  border-color: #c58a46;
  background: linear-gradient(145deg, #fff7ea, #ffffff);
}
.demo-topic-card h3 { font-size: 18px; margin-top: 3px; }
.demo-topic-card p { color: #667085; font-size: 13px; line-height: 1.7; margin-top: 12px; }
.demo-topic-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 15px;
}
.demo-topic-metrics article {
  border-radius: 11px;
  background: #f5f0e8;
  padding: 12px;
}
.demo-topic-metrics strong { display: block; color: #11263a; font-size: 22px; }
.demo-topic-metrics span { display: block; color: #667085; font-size: 12px; margin-top: 4px; }
.demo-coverage-panel,
.demo-scenarios,
.demo-assistant,
.demo-updates {
  border-radius: 14px;
}
.demo-coverage {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.coverage-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.coverage-metrics article {
  border: 1px solid #e4ddd1;
  border-radius: 12px;
  background: #fffdfa;
  padding: 15px;
}
.coverage-metrics strong {
  display: block;
  color: #11263a;
  font-size: 25px;
  letter-spacing: -.02em;
}
.coverage-metrics span,
.coverage-bar-label,
.coverage-country-grid p {
  color: #667085;
  font-size: 12px;
  line-height: 1.55;
}
.coverage-bars {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.coverage-bar-label {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.coverage-statuses {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.coverage-statuses span {
  color: #21364c;
  background: #f4efe7;
  border: 1px solid #e4ddd1;
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 12px;
}
.coverage-country-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.coverage-country-grid article {
  border: 1px solid #e4ddd1;
  border-radius: 12px;
  padding: 14px;
  background: #fff;
}
.country-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}
.country-line span {
  color: #8a5b26;
  font-size: 12px;
  white-space: nowrap;
}
.updates-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.updates-note {
  border: 1px solid #e4ddd1;
  border-radius: 12px;
  background: #f8f4ec;
  color: #596579;
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.6;
}
.updates-headlines {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
.updates-headlines article {
  border: 1px solid #ded8cd;
  border-radius: 13px;
  background: #fffdfa;
  padding: 15px;
}
.updates-headlines strong {
  display: block;
  color: #102132;
  font-size: 23px;
  line-height: 1.2;
}
.updates-headlines span {
  display: block;
  color: #8a5b26;
  font-size: 12px;
  font-weight: 750;
  margin-top: 5px;
}
.updates-headlines small {
  display: block;
  color: #667085;
  font-size: 11px;
  line-height: 1.5;
  margin-top: 5px;
}
.updates-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.updates-grid section {
  border: 1px solid #ded8cd;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff, #fffdfa);
  padding: 16px;
}
.updates-grid h3 {
  color: #0b1f35;
  font-size: 16px;
  margin-bottom: 10px;
}
.update-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border-top: 1px solid #eee7dc;
  padding: 11px 0;
}
.update-item:first-of-type { border-top: 0; }
.update-item span,
.update-item small,
.pulse-list span {
  display: block;
  color: #667085;
  font-size: 12px;
  line-height: 1.5;
}
.update-item strong {
  display: block;
  color: #102132;
  font-size: 13px;
  line-height: 1.45;
  margin: 3px 0;
}
.pulse-list {
  display: grid;
  gap: 8px;
}
.pulse-list div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid #eee7dc;
  padding-top: 8px;
}
.pulse-list div:first-child {
  border-top: 0;
  padding-top: 0;
}
.pulse-list strong {
  color: #102132;
  font-size: 13px;
}
.risk-watch {
  margin: 0;
  padding-left: 18px;
  color: #596579;
  font-size: 13px;
  line-height: 1.75;
}
.scenario-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.scenario-card {
  text-align: left;
  border: 1px solid #e4ddd1;
  border-radius: 13px;
  background: linear-gradient(180deg, #fff, #fbf8f2);
  padding: 16px;
  min-height: 150px;
}
.scenario-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgb(64 45 22 / 7%);
}
.scenario-card span {
  display: inline-flex;
  color: #8a5b26;
  background: #f5eadb;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  margin-bottom: 12px;
}
.scenario-card strong {
  display: block;
  color: #0b1f35;
  line-height: 1.35;
  margin-bottom: 9px;
}
.scenario-card small {
  display: block;
  color: #667085;
  font-size: 12px;
  line-height: 1.55;
}
.assistant-grid {
  display: grid;
  grid-template-columns: minmax(300px, 430px) minmax(0, 1fr);
  gap: 16px;
}
.assistant-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.assistant-form label {
  color: #344054;
  font-size: 13px;
  font-weight: 650;
}
.assistant-actions {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.assistant-answer {
  min-height: 260px;
  border: 1px solid #ded8cd;
  border-radius: 14px;
  background: #fffdfa;
  padding: 18px;
  color: #344054;
  font-size: 13px;
  line-height: 1.7;
}
.assistant-answer h3,
.report-preview h3 {
  color: #0b1f35;
  font-size: 18px;
  line-height: 1.45;
  margin-bottom: 10px;
}
.answer-kicker {
  color: #8a5b26;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 10px;
  font-weight: 800;
  margin-bottom: 8px;
}
.answer-block {
  border-top: 1px solid #ebe4d8;
  padding-top: 12px;
  margin-top: 12px;
}
.answer-block ul {
  margin: 8px 0 0;
  padding-left: 18px;
}
.answer-block li span {
  color: #8a5b26;
  font-size: 12px;
}
.answer-footnote {
  margin-top: 12px;
  color: #667085;
  font-size: 12px;
}
.deliverable-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
}
.demo-report,
.demo-contract {
  border-radius: 14px;
}
.report-grid,
.contract-grid {
  display: grid;
  grid-template-columns: minmax(300px, 430px) minmax(0, 1fr);
  gap: 16px;
}
.report-form,
.contract-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.report-form label,
.contract-form label {
  color: #344054;
  font-size: 13px;
  font-weight: 650;
}
.report-preview,
.contract-preview {
  min-height: 360px;
  border: 1px solid #ded8cd;
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgb(255 255 255 / 72%), rgb(255 253 250 / 96%)),
    radial-gradient(circle at 100% 0%, rgb(183 145 87 / 18%), transparent 34%);
  padding: 18px;
  color: #344054;
  font-size: 13px;
  line-height: 1.7;
}
.contract-preview {
  min-height: 430px;
}
.report-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}
.report-meta-line span {
  color: #344054;
  background: #f4efe7;
  border: 1px solid #e4ddd1;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 12px;
}
.report-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.contract-issue-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.contract-issue-list article {
  border: 1px solid #eee7dc;
  border-radius: 12px;
  background: #fff;
  padding: 12px;
}
.contract-issue-list span {
  display: inline-flex;
  color: #8a5b26;
  background: #f5eadb;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 11px;
  margin-bottom: 7px;
}
.contract-issue-list strong {
  display: block;
  color: #102132;
  font-size: 14px;
  margin-bottom: 6px;
}
.contract-issue-list p,
.contract-issue-list small {
  display: block;
  color: #667085;
  font-size: 12px;
  line-height: 1.6;
}
.public-law-list .law-card { min-height: 250px; }
.public-progress {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}
.public-progress .progress-bar {
  flex: 1;
  min-width: 90px;
  margin: 0;
}
.public-detail .version-grid { align-items: start; }
.public-detail .text-pane {
  max-height: 440px;
  min-height: 180px;
}
.public-translation-pane {
  white-space: pre-wrap;
  background: white;
  border: var(--hairline);
  border-radius: 7px;
  padding: 12px;
  min-height: 180px;
  max-height: 440px;
  overflow: auto;
  font-size: 13px;
  line-height: 1.6;
}
.public-source-card {
  margin-top: 16px;
  border: var(--hairline);
  border-radius: 8px;
  padding: 13px;
  background: #f8fafc;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.65;
}
.public-section-status {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.public-empty-translation {
  color: var(--muted);
  background: #f8fafc;
}

@media (max-width: 980px) {
  .public-layout { padding: 16px; }
  .public-disclaimer { display: block; }
  .public-access { display: block; }
  .public-access-form { margin-top: 14px; }
  .public-hero-grid,
  .demo-overview,
  .coverage-bars,
  .demo-topic-grid,
  .updates-grid,
  .assistant-grid,
  .report-grid,
  .contract-grid,
  .report-columns {
    grid-template-columns: 1fr;
  }
  .coverage-metrics,
  .demo-topic-metrics,
  .updates-headlines,
  .coverage-country-grid,
  .scenario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .demo-nav-actions,
  .hero-actions,
  .assistant-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .coverage-metrics,
  .demo-topic-grid,
  .demo-topic-metrics,
  .updates-headlines,
  .updates-grid,
  .coverage-country-grid,
  .scenario-grid {
    grid-template-columns: 1fr;
  }
}
