.legal-status,
.legal-callout {
  margin: 24px 0;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-left: 5px solid var(--yellow-dark);
  border-radius: 14px;
  background: var(--white);
  color: var(--ink-soft);
}

.legal-status[data-state="unavailable"] {
  border-left-color: var(--danger);
  background: #fbecea;
}

.legal-status[data-state="available"] {
  border-left-color: var(--success);
  background: #e5f2ea;
}

.legal-status strong,
.legal-callout strong { color: var(--ink); }

.legal-status p,
.legal-callout p { margin-top: 5px; }

.legal-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin: 24px 0 34px;
  font-weight: 700;
}

.legal-nav a,
.legal a:not(.button) { text-decoration: underline; text-underline-offset: 3px; }

.legal address { color: var(--ink-soft); font-style: normal; }
.legal ol { padding-left: 22px; }
.legal li + li { margin-top: 9px; }

.contract-action-shell {
  width: min(calc(100% - 40px), 850px);
  margin: 70px auto 110px;
}

.contract-action-shell [hidden] { display: none !important; }

.contract-action-shell h1 {
  font-size: clamp(2.8rem, 6vw, 5rem);
  margin: 14px 0 24px;
}

.contract-action-shell > p { color: var(--ink-soft); }

.contract-action-panel {
  margin-top: 28px;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--white);
  box-shadow: 0 16px 45px rgba(22,25,20,.05);
}

.contract-action-panel h2 { margin-bottom: 9px; }
.contract-action-panel > p { color: var(--muted); margin-bottom: 24px; }

.contract-review {
  display: grid;
  gap: 14px;
  margin: 22px 0;
  padding: 20px;
  border-radius: 14px;
  background: var(--paper);
}

.contract-review div {
  display: grid;
  grid-template-columns: minmax(135px, .45fr) 1fr;
  gap: 16px;
}

.contract-review dt { color: var(--muted); font-size: .8rem; font-weight: 700; }
.contract-review dd { margin: 0; overflow-wrap: anywhere; }

.contract-action-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

fieldset.field {
  margin: 0;
  padding: 0;
  border: 0;
}

fieldset.field legend { margin-bottom: 4px; padding: 0; }

.button[aria-disabled="true"] {
  opacity: .5;
  pointer-events: none;
}

.legal-template {
  margin-top: 20px;
  padding: 22px;
  border: 1px dashed var(--line);
  border-radius: 14px;
  background: #fbfbf8;
  white-space: pre-line;
}

.receipt-download { margin-top: 18px; }

@media (max-width: 640px) {
  .contract-action-shell { width: min(calc(100% - 24px), 850px); margin-top: 42px; }
  .contract-action-shell h1 { font-size: 2.45rem; }
  .contract-action-panel { padding: 23px 18px; }
  .contract-review div { grid-template-columns: 1fr; gap: 2px; }
  .contract-action-buttons .button { width: 100%; }
}
